packages feed

shentong 0.3.1 → 0.3.2

raw patch · 31 files changed

+22132/−17960 lines, 31 files

Files

Shentong/Backend/Core.hs view
@@ -1,4004 +1,5019 @@-{-# LANGUAGE BangPatterns #-}
-{-# LANGUAGE OverloadedStrings #-}
-{-# LANGUAGE Strict #-}
-{-# LANGUAGE StrictData #-}
-{-# LANGUAGE ViewPatterns #-}
-
-module Backend.Core where
-
-import Control.Monad.Except
-import Control.Parallel
-import Environment
-import Primitives as Primitives
-import Backend.Utils
-import Types as Types
-import Utils
-import Wrap
-import Backend.Toplevel
-
-{-
-Copyright (c) 2015, Mark Tarver
-All rights reserved.
-
-Redistribution and use in source and binary forms, with or without
-modification, are permitted provided that the following conditions are met:
-
-1. Redistributions of source code must retain the above copyright
-   notice, this list of conditions and the following disclaimer.
-2. Redistributions in binary form must reproduce the above copyright
-   notice, this list of conditions and the following disclaimer in the
-   documentation and/or other materials provided with the distribution.
-3. The name of Mark Tarver may not be used to endorse or promote products
-   derived from this software without specific prior written permission.
-
-THIS SOFTWARE IS PROVIDED BY Mark Tarver ''AS IS'' AND ANY
-EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
-WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
-DISCLAIMED. IN NO EVENT SHALL Mark Tarver BE LIABLE FOR ANY
-DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
-(INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
-LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND
-ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
-(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
-SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
--}
-
-kl_shen_shen_RBkl :: Types.KLValue ->
-                     Types.KLValue -> Types.KLContext Types.Env Types.KLValue
-kl_shen_shen_RBkl (!kl_V1186) (!kl_V1187) = do let !appl_0 = ApplC (Func "lambda" (Context (\(!kl_X) -> do kl_X `pseq` kl_shen_LBdefineRB kl_X)))
-                                               !appl_1 <- kl_V1186 `pseq` (kl_V1187 `pseq` klCons kl_V1186 kl_V1187)
-                                               let !appl_2 = ApplC (Func "lambda" (Context (\(!kl_X) -> do kl_V1186 `pseq` (kl_X `pseq` kl_shen_shen_syntax_error kl_V1186 kl_X))))
-                                               let !aw_3 = Types.Atom (Types.UnboundSym "compile")
-                                               appl_0 `pseq` (appl_1 `pseq` (appl_2 `pseq` applyWrapper aw_3 [appl_0,
-                                                                                                              appl_1,
-                                                                                                              appl_2]))
-
-kl_shen_shen_syntax_error :: Types.KLValue ->
-                             Types.KLValue -> Types.KLContext Types.Env Types.KLValue
-kl_shen_shen_syntax_error (!kl_V1190) (!kl_V1191) = do let !aw_0 = Types.Atom (Types.UnboundSym "shen.next-50")
-                                                       !appl_1 <- kl_V1191 `pseq` applyWrapper aw_0 [Types.Atom (Types.N (Types.KI 50)),
-                                                                                                     kl_V1191]
-                                                       let !aw_2 = Types.Atom (Types.UnboundSym "shen.app")
-                                                       !appl_3 <- appl_1 `pseq` applyWrapper aw_2 [appl_1,
-                                                                                                   Types.Atom (Types.Str "\n"),
-                                                                                                   Types.Atom (Types.UnboundSym "shen.a")]
-                                                       !appl_4 <- appl_3 `pseq` cn (Types.Atom (Types.Str " here:\n\n ")) appl_3
-                                                       let !aw_5 = Types.Atom (Types.UnboundSym "shen.app")
-                                                       !appl_6 <- kl_V1190 `pseq` (appl_4 `pseq` applyWrapper aw_5 [kl_V1190,
-                                                                                                                    appl_4,
-                                                                                                                    Types.Atom (Types.UnboundSym "shen.a")])
-                                                       !appl_7 <- appl_6 `pseq` cn (Types.Atom (Types.Str "syntax error in ")) appl_6
-                                                       appl_7 `pseq` simpleError appl_7
-
-kl_shen_LBdefineRB :: Types.KLValue ->
-                      Types.KLContext Types.Env Types.KLValue
-kl_shen_LBdefineRB (!kl_V1193) = do let !appl_0 = ApplC (Func "lambda" (Context (\(!kl_YaccParse) -> do let !aw_1 = Types.Atom (Types.UnboundSym "fail")
-                                                                                                        !appl_2 <- applyWrapper aw_1 []
-                                                                                                        !kl_if_3 <- kl_YaccParse `pseq` (appl_2 `pseq` eq kl_YaccParse appl_2)
-                                                                                                        case kl_if_3 of
-                                                                                                            Atom (B (True)) -> do let !appl_4 = ApplC (Func "lambda" (Context (\(!kl_Parse_shen_LBnameRB) -> do let !aw_5 = Types.Atom (Types.UnboundSym "fail")
-                                                                                                                                                                                                                !appl_6 <- applyWrapper aw_5 []
-                                                                                                                                                                                                                !appl_7 <- appl_6 `pseq` (kl_Parse_shen_LBnameRB `pseq` eq appl_6 kl_Parse_shen_LBnameRB)
-                                                                                                                                                                                                                let !aw_8 = Types.Atom (Types.UnboundSym "not")
-                                                                                                                                                                                                                !kl_if_9 <- appl_7 `pseq` applyWrapper aw_8 [appl_7]
-                                                                                                                                                                                                                case kl_if_9 of
-                                                                                                                                                                                                                    Atom (B (True)) -> do let !appl_10 = ApplC (Func "lambda" (Context (\(!kl_Parse_shen_LBrulesRB) -> do let !aw_11 = Types.Atom (Types.UnboundSym "fail")
-                                                                                                                                                                                                                                                                                                                          !appl_12 <- applyWrapper aw_11 []
-                                                                                                                                                                                                                                                                                                                          !appl_13 <- appl_12 `pseq` (kl_Parse_shen_LBrulesRB `pseq` eq appl_12 kl_Parse_shen_LBrulesRB)
-                                                                                                                                                                                                                                                                                                                          let !aw_14 = Types.Atom (Types.UnboundSym "not")
-                                                                                                                                                                                                                                                                                                                          !kl_if_15 <- appl_13 `pseq` applyWrapper aw_14 [appl_13]
-                                                                                                                                                                                                                                                                                                                          case kl_if_15 of
-                                                                                                                                                                                                                                                                                                                              Atom (B (True)) -> do !appl_16 <- kl_Parse_shen_LBrulesRB `pseq` hd kl_Parse_shen_LBrulesRB
-                                                                                                                                                                                                                                                                                                                                                    let !aw_17 = Types.Atom (Types.UnboundSym "shen.hdtl")
-                                                                                                                                                                                                                                                                                                                                                    !appl_18 <- kl_Parse_shen_LBnameRB `pseq` applyWrapper aw_17 [kl_Parse_shen_LBnameRB]
-                                                                                                                                                                                                                                                                                                                                                    let !aw_19 = Types.Atom (Types.UnboundSym "shen.hdtl")
-                                                                                                                                                                                                                                                                                                                                                    !appl_20 <- kl_Parse_shen_LBrulesRB `pseq` applyWrapper aw_19 [kl_Parse_shen_LBrulesRB]
-                                                                                                                                                                                                                                                                                                                                                    !appl_21 <- appl_18 `pseq` (appl_20 `pseq` kl_shen_compile_to_machine_code appl_18 appl_20)
-                                                                                                                                                                                                                                                                                                                                                    let !aw_22 = Types.Atom (Types.UnboundSym "shen.pair")
-                                                                                                                                                                                                                                                                                                                                                    appl_16 `pseq` (appl_21 `pseq` applyWrapper aw_22 [appl_16,
-                                                                                                                                                                                                                                                                                                                                                                                                       appl_21])
-                                                                                                                                                                                                                                                                                                                              Atom (B (False)) -> do do let !aw_23 = Types.Atom (Types.UnboundSym "fail")
-                                                                                                                                                                                                                                                                                                                                                        applyWrapper aw_23 []
-                                                                                                                                                                                                                                                                                                                              _ -> throwError "if: expected boolean")))
-                                                                                                                                                                                                                                          !appl_24 <- kl_Parse_shen_LBnameRB `pseq` kl_shen_LBrulesRB kl_Parse_shen_LBnameRB
-                                                                                                                                                                                                                                          appl_24 `pseq` applyWrapper appl_10 [appl_24]
-                                                                                                                                                                                                                    Atom (B (False)) -> do do let !aw_25 = Types.Atom (Types.UnboundSym "fail")
-                                                                                                                                                                                                                                              applyWrapper aw_25 []
-                                                                                                                                                                                                                    _ -> throwError "if: expected boolean")))
-                                                                                                                                  !appl_26 <- kl_V1193 `pseq` kl_shen_LBnameRB kl_V1193
-                                                                                                                                  appl_26 `pseq` applyWrapper appl_4 [appl_26]
-                                                                                                            Atom (B (False)) -> do do return kl_YaccParse
-                                                                                                            _ -> throwError "if: expected boolean")))
-                                    let !appl_27 = ApplC (Func "lambda" (Context (\(!kl_Parse_shen_LBnameRB) -> do let !aw_28 = Types.Atom (Types.UnboundSym "fail")
-                                                                                                                   !appl_29 <- applyWrapper aw_28 []
-                                                                                                                   !appl_30 <- appl_29 `pseq` (kl_Parse_shen_LBnameRB `pseq` eq appl_29 kl_Parse_shen_LBnameRB)
-                                                                                                                   let !aw_31 = Types.Atom (Types.UnboundSym "not")
-                                                                                                                   !kl_if_32 <- appl_30 `pseq` applyWrapper aw_31 [appl_30]
-                                                                                                                   case kl_if_32 of
-                                                                                                                       Atom (B (True)) -> do let !appl_33 = ApplC (Func "lambda" (Context (\(!kl_Parse_shen_LBsignatureRB) -> do let !aw_34 = Types.Atom (Types.UnboundSym "fail")
-                                                                                                                                                                                                                                 !appl_35 <- applyWrapper aw_34 []
-                                                                                                                                                                                                                                 !appl_36 <- appl_35 `pseq` (kl_Parse_shen_LBsignatureRB `pseq` eq appl_35 kl_Parse_shen_LBsignatureRB)
-                                                                                                                                                                                                                                 let !aw_37 = Types.Atom (Types.UnboundSym "not")
-                                                                                                                                                                                                                                 !kl_if_38 <- appl_36 `pseq` applyWrapper aw_37 [appl_36]
-                                                                                                                                                                                                                                 case kl_if_38 of
-                                                                                                                                                                                                                                     Atom (B (True)) -> do let !appl_39 = ApplC (Func "lambda" (Context (\(!kl_Parse_shen_LBrulesRB) -> do let !aw_40 = Types.Atom (Types.UnboundSym "fail")
-                                                                                                                                                                                                                                                                                                                                           !appl_41 <- applyWrapper aw_40 []
-                                                                                                                                                                                                                                                                                                                                           !appl_42 <- appl_41 `pseq` (kl_Parse_shen_LBrulesRB `pseq` eq appl_41 kl_Parse_shen_LBrulesRB)
-                                                                                                                                                                                                                                                                                                                                           let !aw_43 = Types.Atom (Types.UnboundSym "not")
-                                                                                                                                                                                                                                                                                                                                           !kl_if_44 <- appl_42 `pseq` applyWrapper aw_43 [appl_42]
-                                                                                                                                                                                                                                                                                                                                           case kl_if_44 of
-                                                                                                                                                                                                                                                                                                                                               Atom (B (True)) -> do !appl_45 <- kl_Parse_shen_LBrulesRB `pseq` hd kl_Parse_shen_LBrulesRB
-                                                                                                                                                                                                                                                                                                                                                                     let !aw_46 = Types.Atom (Types.UnboundSym "shen.hdtl")
-                                                                                                                                                                                                                                                                                                                                                                     !appl_47 <- kl_Parse_shen_LBnameRB `pseq` applyWrapper aw_46 [kl_Parse_shen_LBnameRB]
-                                                                                                                                                                                                                                                                                                                                                                     let !aw_48 = Types.Atom (Types.UnboundSym "shen.hdtl")
-                                                                                                                                                                                                                                                                                                                                                                     !appl_49 <- kl_Parse_shen_LBrulesRB `pseq` applyWrapper aw_48 [kl_Parse_shen_LBrulesRB]
-                                                                                                                                                                                                                                                                                                                                                                     !appl_50 <- appl_47 `pseq` (appl_49 `pseq` kl_shen_compile_to_machine_code appl_47 appl_49)
-                                                                                                                                                                                                                                                                                                                                                                     let !aw_51 = Types.Atom (Types.UnboundSym "shen.pair")
-                                                                                                                                                                                                                                                                                                                                                                     appl_45 `pseq` (appl_50 `pseq` applyWrapper aw_51 [appl_45,
-                                                                                                                                                                                                                                                                                                                                                                                                                        appl_50])
-                                                                                                                                                                                                                                                                                                                                               Atom (B (False)) -> do do let !aw_52 = Types.Atom (Types.UnboundSym "fail")
-                                                                                                                                                                                                                                                                                                                                                                         applyWrapper aw_52 []
-                                                                                                                                                                                                                                                                                                                                               _ -> throwError "if: expected boolean")))
-                                                                                                                                                                                                                                                           !appl_53 <- kl_Parse_shen_LBsignatureRB `pseq` kl_shen_LBrulesRB kl_Parse_shen_LBsignatureRB
-                                                                                                                                                                                                                                                           appl_53 `pseq` applyWrapper appl_39 [appl_53]
-                                                                                                                                                                                                                                     Atom (B (False)) -> do do let !aw_54 = Types.Atom (Types.UnboundSym "fail")
-                                                                                                                                                                                                                                                               applyWrapper aw_54 []
-                                                                                                                                                                                                                                     _ -> throwError "if: expected boolean")))
-                                                                                                                                             !appl_55 <- kl_Parse_shen_LBnameRB `pseq` kl_shen_LBsignatureRB kl_Parse_shen_LBnameRB
-                                                                                                                                             appl_55 `pseq` applyWrapper appl_33 [appl_55]
-                                                                                                                       Atom (B (False)) -> do do let !aw_56 = Types.Atom (Types.UnboundSym "fail")
-                                                                                                                                                 applyWrapper aw_56 []
-                                                                                                                       _ -> throwError "if: expected boolean")))
-                                    !appl_57 <- kl_V1193 `pseq` kl_shen_LBnameRB kl_V1193
-                                    !appl_58 <- appl_57 `pseq` applyWrapper appl_27 [appl_57]
-                                    appl_58 `pseq` applyWrapper appl_0 [appl_58]
-
-kl_shen_LBnameRB :: Types.KLValue ->
-                    Types.KLContext Types.Env Types.KLValue
-kl_shen_LBnameRB (!kl_V1195) = do !appl_0 <- kl_V1195 `pseq` hd kl_V1195
-                                  !kl_if_1 <- appl_0 `pseq` consP appl_0
-                                  case kl_if_1 of
-                                      Atom (B (True)) -> do let !appl_2 = ApplC (Func "lambda" (Context (\(!kl_Parse_X) -> do !appl_3 <- kl_V1195 `pseq` hd kl_V1195
-                                                                                                                              !appl_4 <- appl_3 `pseq` tl appl_3
-                                                                                                                              let !aw_5 = Types.Atom (Types.UnboundSym "shen.hdtl")
-                                                                                                                              !appl_6 <- kl_V1195 `pseq` applyWrapper aw_5 [kl_V1195]
-                                                                                                                              let !aw_7 = Types.Atom (Types.UnboundSym "shen.pair")
-                                                                                                                              !appl_8 <- appl_4 `pseq` (appl_6 `pseq` applyWrapper aw_7 [appl_4,
-                                                                                                                                                                                         appl_6])
-                                                                                                                              !appl_9 <- appl_8 `pseq` hd appl_8
-                                                                                                                              let !aw_10 = Types.Atom (Types.UnboundSym "symbol?")
-                                                                                                                              !kl_if_11 <- kl_Parse_X `pseq` applyWrapper aw_10 [kl_Parse_X]
-                                                                                                                              !kl_if_12 <- case kl_if_11 of
-                                                                                                                                               Atom (B (True)) -> do !appl_13 <- kl_Parse_X `pseq` kl_shen_sysfuncP kl_Parse_X
-                                                                                                                                                                     let !aw_14 = Types.Atom (Types.UnboundSym "not")
-                                                                                                                                                                     !kl_if_15 <- appl_13 `pseq` applyWrapper aw_14 [appl_13]
-                                                                                                                                                                     case kl_if_15 of
-                                                                                                                                                                         Atom (B (True)) -> do return (Atom (B True))
-                                                                                                                                                                         Atom (B (False)) -> do do return (Atom (B False))
-                                                                                                                                                                         _ -> throwError "if: expected boolean"
-                                                                                                                                               Atom (B (False)) -> do do return (Atom (B False))
-                                                                                                                                               _ -> throwError "if: expected boolean"
-                                                                                                                              !appl_16 <- case kl_if_12 of
-                                                                                                                                              Atom (B (True)) -> do return kl_Parse_X
-                                                                                                                                              Atom (B (False)) -> do do let !aw_17 = Types.Atom (Types.UnboundSym "shen.app")
-                                                                                                                                                                        !appl_18 <- kl_Parse_X `pseq` applyWrapper aw_17 [kl_Parse_X,
-                                                                                                                                                                                                                          Types.Atom (Types.Str " is not a legitimate function name.\n"),
-                                                                                                                                                                                                                          Types.Atom (Types.UnboundSym "shen.a")]
-                                                                                                                                                                        appl_18 `pseq` simpleError appl_18
-                                                                                                                                              _ -> throwError "if: expected boolean"
-                                                                                                                              let !aw_19 = Types.Atom (Types.UnboundSym "shen.pair")
-                                                                                                                              appl_9 `pseq` (appl_16 `pseq` applyWrapper aw_19 [appl_9,
-                                                                                                                                                                                appl_16]))))
-                                                            !appl_20 <- kl_V1195 `pseq` hd kl_V1195
-                                                            !appl_21 <- appl_20 `pseq` hd appl_20
-                                                            appl_21 `pseq` applyWrapper appl_2 [appl_21]
-                                      Atom (B (False)) -> do do let !aw_22 = Types.Atom (Types.UnboundSym "fail")
-                                                                applyWrapper aw_22 []
-                                      _ -> throwError "if: expected boolean"
-
-kl_shen_sysfuncP :: Types.KLValue ->
-                    Types.KLContext Types.Env Types.KLValue
-kl_shen_sysfuncP (!kl_V1197) = do !appl_0 <- intern (Types.Atom (Types.Str "shen"))
-                                  !appl_1 <- value (Types.Atom (Types.UnboundSym "*property-vector*"))
-                                  let !aw_2 = Types.Atom (Types.UnboundSym "get")
-                                  !appl_3 <- appl_0 `pseq` (appl_1 `pseq` applyWrapper aw_2 [appl_0,
-                                                                                             Types.Atom (Types.UnboundSym "shen.external-symbols"),
-                                                                                             appl_1])
-                                  let !aw_4 = Types.Atom (Types.UnboundSym "element?")
-                                  kl_V1197 `pseq` (appl_3 `pseq` applyWrapper aw_4 [kl_V1197,
-                                                                                    appl_3])
-
-kl_shen_LBsignatureRB :: Types.KLValue ->
-                         Types.KLContext Types.Env Types.KLValue
-kl_shen_LBsignatureRB (!kl_V1199) = do !appl_0 <- kl_V1199 `pseq` hd kl_V1199
-                                       !kl_if_1 <- appl_0 `pseq` consP appl_0
-                                       !kl_if_2 <- case kl_if_1 of
-                                                       Atom (B (True)) -> do !appl_3 <- kl_V1199 `pseq` hd kl_V1199
-                                                                             !appl_4 <- appl_3 `pseq` hd appl_3
-                                                                             !kl_if_5 <- appl_4 `pseq` eq (Types.Atom (Types.UnboundSym "{")) appl_4
-                                                                             case kl_if_5 of
-                                                                                 Atom (B (True)) -> do return (Atom (B True))
-                                                                                 Atom (B (False)) -> do do return (Atom (B False))
-                                                                                 _ -> throwError "if: expected boolean"
-                                                       Atom (B (False)) -> do do return (Atom (B False))
-                                                       _ -> throwError "if: expected boolean"
-                                       case kl_if_2 of
-                                           Atom (B (True)) -> do let !appl_6 = ApplC (Func "lambda" (Context (\(!kl_Parse_shen_LBsignature_helpRB) -> do let !aw_7 = Types.Atom (Types.UnboundSym "fail")
-                                                                                                                                                         !appl_8 <- applyWrapper aw_7 []
-                                                                                                                                                         !appl_9 <- appl_8 `pseq` (kl_Parse_shen_LBsignature_helpRB `pseq` eq appl_8 kl_Parse_shen_LBsignature_helpRB)
-                                                                                                                                                         let !aw_10 = Types.Atom (Types.UnboundSym "not")
-                                                                                                                                                         !kl_if_11 <- appl_9 `pseq` applyWrapper aw_10 [appl_9]
-                                                                                                                                                         case kl_if_11 of
-                                                                                                                                                             Atom (B (True)) -> do !appl_12 <- kl_Parse_shen_LBsignature_helpRB `pseq` hd kl_Parse_shen_LBsignature_helpRB
-                                                                                                                                                                                   !kl_if_13 <- appl_12 `pseq` consP appl_12
-                                                                                                                                                                                   !kl_if_14 <- case kl_if_13 of
-                                                                                                                                                                                                    Atom (B (True)) -> do !appl_15 <- kl_Parse_shen_LBsignature_helpRB `pseq` hd kl_Parse_shen_LBsignature_helpRB
-                                                                                                                                                                                                                          !appl_16 <- appl_15 `pseq` hd appl_15
-                                                                                                                                                                                                                          !kl_if_17 <- appl_16 `pseq` eq (Types.Atom (Types.UnboundSym "}")) appl_16
-                                                                                                                                                                                                                          case kl_if_17 of
-                                                                                                                                                                                                                              Atom (B (True)) -> do return (Atom (B True))
-                                                                                                                                                                                                                              Atom (B (False)) -> do do return (Atom (B False))
-                                                                                                                                                                                                                              _ -> throwError "if: expected boolean"
-                                                                                                                                                                                                    Atom (B (False)) -> do do return (Atom (B False))
-                                                                                                                                                                                                    _ -> throwError "if: expected boolean"
-                                                                                                                                                                                   case kl_if_14 of
-                                                                                                                                                                                       Atom (B (True)) -> do !appl_18 <- kl_Parse_shen_LBsignature_helpRB `pseq` hd kl_Parse_shen_LBsignature_helpRB
-                                                                                                                                                                                                             !appl_19 <- appl_18 `pseq` tl appl_18
-                                                                                                                                                                                                             let !aw_20 = Types.Atom (Types.UnboundSym "shen.hdtl")
-                                                                                                                                                                                                             !appl_21 <- kl_Parse_shen_LBsignature_helpRB `pseq` applyWrapper aw_20 [kl_Parse_shen_LBsignature_helpRB]
-                                                                                                                                                                                                             let !aw_22 = Types.Atom (Types.UnboundSym "shen.pair")
-                                                                                                                                                                                                             !appl_23 <- appl_19 `pseq` (appl_21 `pseq` applyWrapper aw_22 [appl_19,
-                                                                                                                                                                                                                                                                            appl_21])
-                                                                                                                                                                                                             !appl_24 <- appl_23 `pseq` hd appl_23
-                                                                                                                                                                                                             let !aw_25 = Types.Atom (Types.UnboundSym "shen.hdtl")
-                                                                                                                                                                                                             !appl_26 <- kl_Parse_shen_LBsignature_helpRB `pseq` applyWrapper aw_25 [kl_Parse_shen_LBsignature_helpRB]
-                                                                                                                                                                                                             !appl_27 <- appl_26 `pseq` kl_shen_curry_type appl_26
-                                                                                                                                                                                                             let !aw_28 = Types.Atom (Types.UnboundSym "shen.demodulate")
-                                                                                                                                                                                                             !appl_29 <- appl_27 `pseq` applyWrapper aw_28 [appl_27]
-                                                                                                                                                                                                             let !aw_30 = Types.Atom (Types.UnboundSym "shen.pair")
-                                                                                                                                                                                                             appl_24 `pseq` (appl_29 `pseq` applyWrapper aw_30 [appl_24,
-                                                                                                                                                                                                                                                                appl_29])
-                                                                                                                                                                                       Atom (B (False)) -> do do let !aw_31 = Types.Atom (Types.UnboundSym "fail")
-                                                                                                                                                                                                                 applyWrapper aw_31 []
-                                                                                                                                                                                       _ -> throwError "if: expected boolean"
-                                                                                                                                                             Atom (B (False)) -> do do let !aw_32 = Types.Atom (Types.UnboundSym "fail")
-                                                                                                                                                                                       applyWrapper aw_32 []
-                                                                                                                                                             _ -> throwError "if: expected boolean")))
-                                                                 !appl_33 <- kl_V1199 `pseq` hd kl_V1199
-                                                                 !appl_34 <- appl_33 `pseq` tl appl_33
-                                                                 let !aw_35 = Types.Atom (Types.UnboundSym "shen.hdtl")
-                                                                 !appl_36 <- kl_V1199 `pseq` applyWrapper aw_35 [kl_V1199]
-                                                                 let !aw_37 = Types.Atom (Types.UnboundSym "shen.pair")
-                                                                 !appl_38 <- appl_34 `pseq` (appl_36 `pseq` applyWrapper aw_37 [appl_34,
-                                                                                                                                appl_36])
-                                                                 !appl_39 <- appl_38 `pseq` kl_shen_LBsignature_helpRB appl_38
-                                                                 appl_39 `pseq` applyWrapper appl_6 [appl_39]
-                                           Atom (B (False)) -> do do let !aw_40 = Types.Atom (Types.UnboundSym "fail")
-                                                                     applyWrapper aw_40 []
-                                           _ -> throwError "if: expected boolean"
-
-kl_shen_curry_type :: Types.KLValue ->
-                      Types.KLContext Types.Env Types.KLValue
-kl_shen_curry_type (!kl_V1201) = do let pat_cond_0 kl_V1201 kl_V1201h kl_V1201t kl_V1201tt kl_V1201tth kl_V1201ttt kl_V1201tttt = do !appl_1 <- kl_V1201tt `pseq` klCons kl_V1201tt (Types.Atom Types.Nil)
-                                                                                                                                     !appl_2 <- appl_1 `pseq` klCons (Types.Atom (Types.UnboundSym "-->")) appl_1
-                                                                                                                                     !appl_3 <- kl_V1201h `pseq` (appl_2 `pseq` klCons kl_V1201h appl_2)
-                                                                                                                                     appl_3 `pseq` kl_shen_curry_type appl_3
-                                        pat_cond_4 kl_V1201 kl_V1201h kl_V1201t kl_V1201tt kl_V1201tth kl_V1201ttt kl_V1201tttt = do !appl_5 <- kl_V1201tt `pseq` klCons kl_V1201tt (Types.Atom Types.Nil)
-                                                                                                                                     !appl_6 <- appl_5 `pseq` klCons (ApplC (wrapNamed "*" multiply)) appl_5
-                                                                                                                                     !appl_7 <- kl_V1201h `pseq` (appl_6 `pseq` klCons kl_V1201h appl_6)
-                                                                                                                                     appl_7 `pseq` kl_shen_curry_type appl_7
-                                        pat_cond_8 kl_V1201 kl_V1201h kl_V1201t = do let !appl_9 = ApplC (Func "lambda" (Context (\(!kl_Z) -> do kl_Z `pseq` kl_shen_curry_type kl_Z)))
-                                                                                     let !aw_10 = Types.Atom (Types.UnboundSym "map")
-                                                                                     appl_9 `pseq` (kl_V1201 `pseq` applyWrapper aw_10 [appl_9,
-                                                                                                                                        kl_V1201])
-                                        pat_cond_11 = do do return kl_V1201
-                                     in case kl_V1201 of
-                                            !(kl_V1201@(Cons (!kl_V1201h)
-                                                             (!(kl_V1201t@(Cons (Atom (UnboundSym "-->"))
-                                                                                (!(kl_V1201tt@(Cons (!kl_V1201tth)
-                                                                                                    (!(kl_V1201ttt@(Cons (Atom (UnboundSym "-->"))
-                                                                                                                         (!kl_V1201tttt)))))))))))) -> pat_cond_0 kl_V1201 kl_V1201h kl_V1201t kl_V1201tt kl_V1201tth kl_V1201ttt kl_V1201tttt
-                                            !(kl_V1201@(Cons (!kl_V1201h)
-                                                             (!(kl_V1201t@(Cons (Atom (UnboundSym "-->"))
-                                                                                (!(kl_V1201tt@(Cons (!kl_V1201tth)
-                                                                                                    (!(kl_V1201ttt@(Cons (ApplC (PL "-->"
-                                                                                                                                    _))
-                                                                                                                         (!kl_V1201tttt)))))))))))) -> pat_cond_0 kl_V1201 kl_V1201h kl_V1201t kl_V1201tt kl_V1201tth kl_V1201ttt kl_V1201tttt
-                                            !(kl_V1201@(Cons (!kl_V1201h)
-                                                             (!(kl_V1201t@(Cons (Atom (UnboundSym "-->"))
-                                                                                (!(kl_V1201tt@(Cons (!kl_V1201tth)
-                                                                                                    (!(kl_V1201ttt@(Cons (ApplC (Func "-->"
-                                                                                                                                      _))
-                                                                                                                         (!kl_V1201tttt)))))))))))) -> pat_cond_0 kl_V1201 kl_V1201h kl_V1201t kl_V1201tt kl_V1201tth kl_V1201ttt kl_V1201tttt
-                                            !(kl_V1201@(Cons (!kl_V1201h)
-                                                             (!(kl_V1201t@(Cons (ApplC (PL "-->" _))
-                                                                                (!(kl_V1201tt@(Cons (!kl_V1201tth)
-                                                                                                    (!(kl_V1201ttt@(Cons (Atom (UnboundSym "-->"))
-                                                                                                                         (!kl_V1201tttt)))))))))))) -> pat_cond_0 kl_V1201 kl_V1201h kl_V1201t kl_V1201tt kl_V1201tth kl_V1201ttt kl_V1201tttt
-                                            !(kl_V1201@(Cons (!kl_V1201h)
-                                                             (!(kl_V1201t@(Cons (ApplC (PL "-->" _))
-                                                                                (!(kl_V1201tt@(Cons (!kl_V1201tth)
-                                                                                                    (!(kl_V1201ttt@(Cons (ApplC (PL "-->"
-                                                                                                                                    _))
-                                                                                                                         (!kl_V1201tttt)))))))))))) -> pat_cond_0 kl_V1201 kl_V1201h kl_V1201t kl_V1201tt kl_V1201tth kl_V1201ttt kl_V1201tttt
-                                            !(kl_V1201@(Cons (!kl_V1201h)
-                                                             (!(kl_V1201t@(Cons (ApplC (PL "-->" _))
-                                                                                (!(kl_V1201tt@(Cons (!kl_V1201tth)
-                                                                                                    (!(kl_V1201ttt@(Cons (ApplC (Func "-->"
-                                                                                                                                      _))
-                                                                                                                         (!kl_V1201tttt)))))))))))) -> pat_cond_0 kl_V1201 kl_V1201h kl_V1201t kl_V1201tt kl_V1201tth kl_V1201ttt kl_V1201tttt
-                                            !(kl_V1201@(Cons (!kl_V1201h)
-                                                             (!(kl_V1201t@(Cons (ApplC (Func "-->"
-                                                                                             _))
-                                                                                (!(kl_V1201tt@(Cons (!kl_V1201tth)
-                                                                                                    (!(kl_V1201ttt@(Cons (Atom (UnboundSym "-->"))
-                                                                                                                         (!kl_V1201tttt)))))))))))) -> pat_cond_0 kl_V1201 kl_V1201h kl_V1201t kl_V1201tt kl_V1201tth kl_V1201ttt kl_V1201tttt
-                                            !(kl_V1201@(Cons (!kl_V1201h)
-                                                             (!(kl_V1201t@(Cons (ApplC (Func "-->"
-                                                                                             _))
-                                                                                (!(kl_V1201tt@(Cons (!kl_V1201tth)
-                                                                                                    (!(kl_V1201ttt@(Cons (ApplC (PL "-->"
-                                                                                                                                    _))
-                                                                                                                         (!kl_V1201tttt)))))))))))) -> pat_cond_0 kl_V1201 kl_V1201h kl_V1201t kl_V1201tt kl_V1201tth kl_V1201ttt kl_V1201tttt
-                                            !(kl_V1201@(Cons (!kl_V1201h)
-                                                             (!(kl_V1201t@(Cons (ApplC (Func "-->"
-                                                                                             _))
-                                                                                (!(kl_V1201tt@(Cons (!kl_V1201tth)
-                                                                                                    (!(kl_V1201ttt@(Cons (ApplC (Func "-->"
-                                                                                                                                      _))
-                                                                                                                         (!kl_V1201tttt)))))))))))) -> pat_cond_0 kl_V1201 kl_V1201h kl_V1201t kl_V1201tt kl_V1201tth kl_V1201ttt kl_V1201tttt
-                                            !(kl_V1201@(Cons (!kl_V1201h)
-                                                             (!(kl_V1201t@(Cons (Atom (UnboundSym "*"))
-                                                                                (!(kl_V1201tt@(Cons (!kl_V1201tth)
-                                                                                                    (!(kl_V1201ttt@(Cons (Atom (UnboundSym "*"))
-                                                                                                                         (!kl_V1201tttt)))))))))))) -> pat_cond_4 kl_V1201 kl_V1201h kl_V1201t kl_V1201tt kl_V1201tth kl_V1201ttt kl_V1201tttt
-                                            !(kl_V1201@(Cons (!kl_V1201h)
-                                                             (!(kl_V1201t@(Cons (Atom (UnboundSym "*"))
-                                                                                (!(kl_V1201tt@(Cons (!kl_V1201tth)
-                                                                                                    (!(kl_V1201ttt@(Cons (ApplC (PL "*"
-                                                                                                                                    _))
-                                                                                                                         (!kl_V1201tttt)))))))))))) -> pat_cond_4 kl_V1201 kl_V1201h kl_V1201t kl_V1201tt kl_V1201tth kl_V1201ttt kl_V1201tttt
-                                            !(kl_V1201@(Cons (!kl_V1201h)
-                                                             (!(kl_V1201t@(Cons (Atom (UnboundSym "*"))
-                                                                                (!(kl_V1201tt@(Cons (!kl_V1201tth)
-                                                                                                    (!(kl_V1201ttt@(Cons (ApplC (Func "*"
-                                                                                                                                      _))
-                                                                                                                         (!kl_V1201tttt)))))))))))) -> pat_cond_4 kl_V1201 kl_V1201h kl_V1201t kl_V1201tt kl_V1201tth kl_V1201ttt kl_V1201tttt
-                                            !(kl_V1201@(Cons (!kl_V1201h)
-                                                             (!(kl_V1201t@(Cons (ApplC (PL "*" _))
-                                                                                (!(kl_V1201tt@(Cons (!kl_V1201tth)
-                                                                                                    (!(kl_V1201ttt@(Cons (Atom (UnboundSym "*"))
-                                                                                                                         (!kl_V1201tttt)))))))))))) -> pat_cond_4 kl_V1201 kl_V1201h kl_V1201t kl_V1201tt kl_V1201tth kl_V1201ttt kl_V1201tttt
-                                            !(kl_V1201@(Cons (!kl_V1201h)
-                                                             (!(kl_V1201t@(Cons (ApplC (PL "*" _))
-                                                                                (!(kl_V1201tt@(Cons (!kl_V1201tth)
-                                                                                                    (!(kl_V1201ttt@(Cons (ApplC (PL "*"
-                                                                                                                                    _))
-                                                                                                                         (!kl_V1201tttt)))))))))))) -> pat_cond_4 kl_V1201 kl_V1201h kl_V1201t kl_V1201tt kl_V1201tth kl_V1201ttt kl_V1201tttt
-                                            !(kl_V1201@(Cons (!kl_V1201h)
-                                                             (!(kl_V1201t@(Cons (ApplC (PL "*" _))
-                                                                                (!(kl_V1201tt@(Cons (!kl_V1201tth)
-                                                                                                    (!(kl_V1201ttt@(Cons (ApplC (Func "*"
-                                                                                                                                      _))
-                                                                                                                         (!kl_V1201tttt)))))))))))) -> pat_cond_4 kl_V1201 kl_V1201h kl_V1201t kl_V1201tt kl_V1201tth kl_V1201ttt kl_V1201tttt
-                                            !(kl_V1201@(Cons (!kl_V1201h)
-                                                             (!(kl_V1201t@(Cons (ApplC (Func "*" _))
-                                                                                (!(kl_V1201tt@(Cons (!kl_V1201tth)
-                                                                                                    (!(kl_V1201ttt@(Cons (Atom (UnboundSym "*"))
-                                                                                                                         (!kl_V1201tttt)))))))))))) -> pat_cond_4 kl_V1201 kl_V1201h kl_V1201t kl_V1201tt kl_V1201tth kl_V1201ttt kl_V1201tttt
-                                            !(kl_V1201@(Cons (!kl_V1201h)
-                                                             (!(kl_V1201t@(Cons (ApplC (Func "*" _))
-                                                                                (!(kl_V1201tt@(Cons (!kl_V1201tth)
-                                                                                                    (!(kl_V1201ttt@(Cons (ApplC (PL "*"
-                                                                                                                                    _))
-                                                                                                                         (!kl_V1201tttt)))))))))))) -> pat_cond_4 kl_V1201 kl_V1201h kl_V1201t kl_V1201tt kl_V1201tth kl_V1201ttt kl_V1201tttt
-                                            !(kl_V1201@(Cons (!kl_V1201h)
-                                                             (!(kl_V1201t@(Cons (ApplC (Func "*" _))
-                                                                                (!(kl_V1201tt@(Cons (!kl_V1201tth)
-                                                                                                    (!(kl_V1201ttt@(Cons (ApplC (Func "*"
-                                                                                                                                      _))
-                                                                                                                         (!kl_V1201tttt)))))))))))) -> pat_cond_4 kl_V1201 kl_V1201h kl_V1201t kl_V1201tt kl_V1201tth kl_V1201ttt kl_V1201tttt
-                                            !(kl_V1201@(Cons (!kl_V1201h)
-                                                             (!kl_V1201t))) -> pat_cond_8 kl_V1201 kl_V1201h kl_V1201t
-                                            _ -> pat_cond_11
-
-kl_shen_LBsignature_helpRB :: Types.KLValue ->
-                              Types.KLContext Types.Env Types.KLValue
-kl_shen_LBsignature_helpRB (!kl_V1203) = do let !appl_0 = ApplC (Func "lambda" (Context (\(!kl_YaccParse) -> do let !aw_1 = Types.Atom (Types.UnboundSym "fail")
-                                                                                                                !appl_2 <- applyWrapper aw_1 []
-                                                                                                                !kl_if_3 <- kl_YaccParse `pseq` (appl_2 `pseq` eq kl_YaccParse appl_2)
-                                                                                                                case kl_if_3 of
-                                                                                                                    Atom (B (True)) -> do let !appl_4 = ApplC (Func "lambda" (Context (\(!kl_Parse_LBeRB) -> do let !aw_5 = Types.Atom (Types.UnboundSym "fail")
-                                                                                                                                                                                                                !appl_6 <- applyWrapper aw_5 []
-                                                                                                                                                                                                                !appl_7 <- appl_6 `pseq` (kl_Parse_LBeRB `pseq` eq appl_6 kl_Parse_LBeRB)
-                                                                                                                                                                                                                let !aw_8 = Types.Atom (Types.UnboundSym "not")
-                                                                                                                                                                                                                !kl_if_9 <- appl_7 `pseq` applyWrapper aw_8 [appl_7]
-                                                                                                                                                                                                                case kl_if_9 of
-                                                                                                                                                                                                                    Atom (B (True)) -> do !appl_10 <- kl_Parse_LBeRB `pseq` hd kl_Parse_LBeRB
-                                                                                                                                                                                                                                          let !aw_11 = Types.Atom (Types.UnboundSym "shen.pair")
-                                                                                                                                                                                                                                          appl_10 `pseq` applyWrapper aw_11 [appl_10,
-                                                                                                                                                                                                                                                                             Types.Atom Types.Nil]
-                                                                                                                                                                                                                    Atom (B (False)) -> do do let !aw_12 = Types.Atom (Types.UnboundSym "fail")
-                                                                                                                                                                                                                                              applyWrapper aw_12 []
-                                                                                                                                                                                                                    _ -> throwError "if: expected boolean")))
-                                                                                                                                          let !aw_13 = Types.Atom (Types.UnboundSym "<e>")
-                                                                                                                                          !appl_14 <- kl_V1203 `pseq` applyWrapper aw_13 [kl_V1203]
-                                                                                                                                          appl_14 `pseq` applyWrapper appl_4 [appl_14]
-                                                                                                                    Atom (B (False)) -> do do return kl_YaccParse
-                                                                                                                    _ -> throwError "if: expected boolean")))
-                                            !appl_15 <- kl_V1203 `pseq` hd kl_V1203
-                                            !kl_if_16 <- appl_15 `pseq` consP appl_15
-                                            !appl_17 <- case kl_if_16 of
-                                                            Atom (B (True)) -> do let !appl_18 = ApplC (Func "lambda" (Context (\(!kl_Parse_X) -> do let !appl_19 = ApplC (Func "lambda" (Context (\(!kl_Parse_shen_LBsignature_helpRB) -> do let !aw_20 = Types.Atom (Types.UnboundSym "fail")
-                                                                                                                                                                                                                                              !appl_21 <- applyWrapper aw_20 []
-                                                                                                                                                                                                                                              !appl_22 <- appl_21 `pseq` (kl_Parse_shen_LBsignature_helpRB `pseq` eq appl_21 kl_Parse_shen_LBsignature_helpRB)
-                                                                                                                                                                                                                                              let !aw_23 = Types.Atom (Types.UnboundSym "not")
-                                                                                                                                                                                                                                              !kl_if_24 <- appl_22 `pseq` applyWrapper aw_23 [appl_22]
-                                                                                                                                                                                                                                              case kl_if_24 of
-                                                                                                                                                                                                                                                  Atom (B (True)) -> do !appl_25 <- klCons (Types.Atom (Types.UnboundSym "}")) (Types.Atom Types.Nil)
-                                                                                                                                                                                                                                                                        !appl_26 <- appl_25 `pseq` klCons (Types.Atom (Types.UnboundSym "{")) appl_25
-                                                                                                                                                                                                                                                                        let !aw_27 = Types.Atom (Types.UnboundSym "element?")
-                                                                                                                                                                                                                                                                        !appl_28 <- kl_Parse_X `pseq` (appl_26 `pseq` applyWrapper aw_27 [kl_Parse_X,
-                                                                                                                                                                                                                                                                                                                                          appl_26])
-                                                                                                                                                                                                                                                                        let !aw_29 = Types.Atom (Types.UnboundSym "not")
-                                                                                                                                                                                                                                                                        !kl_if_30 <- appl_28 `pseq` applyWrapper aw_29 [appl_28]
-                                                                                                                                                                                                                                                                        case kl_if_30 of
-                                                                                                                                                                                                                                                                            Atom (B (True)) -> do !appl_31 <- kl_Parse_shen_LBsignature_helpRB `pseq` hd kl_Parse_shen_LBsignature_helpRB
-                                                                                                                                                                                                                                                                                                  let !aw_32 = Types.Atom (Types.UnboundSym "shen.hdtl")
-                                                                                                                                                                                                                                                                                                  !appl_33 <- kl_Parse_shen_LBsignature_helpRB `pseq` applyWrapper aw_32 [kl_Parse_shen_LBsignature_helpRB]
-                                                                                                                                                                                                                                                                                                  !appl_34 <- kl_Parse_X `pseq` (appl_33 `pseq` klCons kl_Parse_X appl_33)
-                                                                                                                                                                                                                                                                                                  let !aw_35 = Types.Atom (Types.UnboundSym "shen.pair")
-                                                                                                                                                                                                                                                                                                  appl_31 `pseq` (appl_34 `pseq` applyWrapper aw_35 [appl_31,
-                                                                                                                                                                                                                                                                                                                                                     appl_34])
-                                                                                                                                                                                                                                                                            Atom (B (False)) -> do do let !aw_36 = Types.Atom (Types.UnboundSym "fail")
-                                                                                                                                                                                                                                                                                                      applyWrapper aw_36 []
-                                                                                                                                                                                                                                                                            _ -> throwError "if: expected boolean"
-                                                                                                                                                                                                                                                  Atom (B (False)) -> do do let !aw_37 = Types.Atom (Types.UnboundSym "fail")
-                                                                                                                                                                                                                                                                            applyWrapper aw_37 []
-                                                                                                                                                                                                                                                  _ -> throwError "if: expected boolean")))
-                                                                                                                                                     !appl_38 <- kl_V1203 `pseq` hd kl_V1203
-                                                                                                                                                     !appl_39 <- appl_38 `pseq` tl appl_38
-                                                                                                                                                     let !aw_40 = Types.Atom (Types.UnboundSym "shen.hdtl")
-                                                                                                                                                     !appl_41 <- kl_V1203 `pseq` applyWrapper aw_40 [kl_V1203]
-                                                                                                                                                     let !aw_42 = Types.Atom (Types.UnboundSym "shen.pair")
-                                                                                                                                                     !appl_43 <- appl_39 `pseq` (appl_41 `pseq` applyWrapper aw_42 [appl_39,
-                                                                                                                                                                                                                    appl_41])
-                                                                                                                                                     !appl_44 <- appl_43 `pseq` kl_shen_LBsignature_helpRB appl_43
-                                                                                                                                                     appl_44 `pseq` applyWrapper appl_19 [appl_44])))
-                                                                                  !appl_45 <- kl_V1203 `pseq` hd kl_V1203
-                                                                                  !appl_46 <- appl_45 `pseq` hd appl_45
-                                                                                  appl_46 `pseq` applyWrapper appl_18 [appl_46]
-                                                            Atom (B (False)) -> do do let !aw_47 = Types.Atom (Types.UnboundSym "fail")
-                                                                                      applyWrapper aw_47 []
-                                                            _ -> throwError "if: expected boolean"
-                                            appl_17 `pseq` applyWrapper appl_0 [appl_17]
-
-kl_shen_LBrulesRB :: Types.KLValue ->
-                     Types.KLContext Types.Env Types.KLValue
-kl_shen_LBrulesRB (!kl_V1205) = do let !appl_0 = ApplC (Func "lambda" (Context (\(!kl_YaccParse) -> do let !aw_1 = Types.Atom (Types.UnboundSym "fail")
-                                                                                                       !appl_2 <- applyWrapper aw_1 []
-                                                                                                       !kl_if_3 <- kl_YaccParse `pseq` (appl_2 `pseq` eq kl_YaccParse appl_2)
-                                                                                                       case kl_if_3 of
-                                                                                                           Atom (B (True)) -> do let !appl_4 = ApplC (Func "lambda" (Context (\(!kl_Parse_shen_LBruleRB) -> do let !aw_5 = Types.Atom (Types.UnboundSym "fail")
-                                                                                                                                                                                                               !appl_6 <- applyWrapper aw_5 []
-                                                                                                                                                                                                               !appl_7 <- appl_6 `pseq` (kl_Parse_shen_LBruleRB `pseq` eq appl_6 kl_Parse_shen_LBruleRB)
-                                                                                                                                                                                                               let !aw_8 = Types.Atom (Types.UnboundSym "not")
-                                                                                                                                                                                                               !kl_if_9 <- appl_7 `pseq` applyWrapper aw_8 [appl_7]
-                                                                                                                                                                                                               case kl_if_9 of
-                                                                                                                                                                                                                   Atom (B (True)) -> do !appl_10 <- kl_Parse_shen_LBruleRB `pseq` hd kl_Parse_shen_LBruleRB
-                                                                                                                                                                                                                                         let !aw_11 = Types.Atom (Types.UnboundSym "shen.hdtl")
-                                                                                                                                                                                                                                         !appl_12 <- kl_Parse_shen_LBruleRB `pseq` applyWrapper aw_11 [kl_Parse_shen_LBruleRB]
-                                                                                                                                                                                                                                         !appl_13 <- appl_12 `pseq` kl_shen_linearise appl_12
-                                                                                                                                                                                                                                         !appl_14 <- appl_13 `pseq` klCons appl_13 (Types.Atom Types.Nil)
-                                                                                                                                                                                                                                         let !aw_15 = Types.Atom (Types.UnboundSym "shen.pair")
-                                                                                                                                                                                                                                         appl_10 `pseq` (appl_14 `pseq` applyWrapper aw_15 [appl_10,
-                                                                                                                                                                                                                                                                                            appl_14])
-                                                                                                                                                                                                                   Atom (B (False)) -> do do let !aw_16 = Types.Atom (Types.UnboundSym "fail")
-                                                                                                                                                                                                                                             applyWrapper aw_16 []
-                                                                                                                                                                                                                   _ -> throwError "if: expected boolean")))
-                                                                                                                                 !appl_17 <- kl_V1205 `pseq` kl_shen_LBruleRB kl_V1205
-                                                                                                                                 appl_17 `pseq` applyWrapper appl_4 [appl_17]
-                                                                                                           Atom (B (False)) -> do do return kl_YaccParse
-                                                                                                           _ -> throwError "if: expected boolean")))
-                                   let !appl_18 = ApplC (Func "lambda" (Context (\(!kl_Parse_shen_LBruleRB) -> do let !aw_19 = Types.Atom (Types.UnboundSym "fail")
-                                                                                                                  !appl_20 <- applyWrapper aw_19 []
-                                                                                                                  !appl_21 <- appl_20 `pseq` (kl_Parse_shen_LBruleRB `pseq` eq appl_20 kl_Parse_shen_LBruleRB)
-                                                                                                                  let !aw_22 = Types.Atom (Types.UnboundSym "not")
-                                                                                                                  !kl_if_23 <- appl_21 `pseq` applyWrapper aw_22 [appl_21]
-                                                                                                                  case kl_if_23 of
-                                                                                                                      Atom (B (True)) -> do let !appl_24 = ApplC (Func "lambda" (Context (\(!kl_Parse_shen_LBrulesRB) -> do let !aw_25 = Types.Atom (Types.UnboundSym "fail")
-                                                                                                                                                                                                                            !appl_26 <- applyWrapper aw_25 []
-                                                                                                                                                                                                                            !appl_27 <- appl_26 `pseq` (kl_Parse_shen_LBrulesRB `pseq` eq appl_26 kl_Parse_shen_LBrulesRB)
-                                                                                                                                                                                                                            let !aw_28 = Types.Atom (Types.UnboundSym "not")
-                                                                                                                                                                                                                            !kl_if_29 <- appl_27 `pseq` applyWrapper aw_28 [appl_27]
-                                                                                                                                                                                                                            case kl_if_29 of
-                                                                                                                                                                                                                                Atom (B (True)) -> do !appl_30 <- kl_Parse_shen_LBrulesRB `pseq` hd kl_Parse_shen_LBrulesRB
-                                                                                                                                                                                                                                                      let !aw_31 = Types.Atom (Types.UnboundSym "shen.hdtl")
-                                                                                                                                                                                                                                                      !appl_32 <- kl_Parse_shen_LBruleRB `pseq` applyWrapper aw_31 [kl_Parse_shen_LBruleRB]
-                                                                                                                                                                                                                                                      !appl_33 <- appl_32 `pseq` kl_shen_linearise appl_32
-                                                                                                                                                                                                                                                      let !aw_34 = Types.Atom (Types.UnboundSym "shen.hdtl")
-                                                                                                                                                                                                                                                      !appl_35 <- kl_Parse_shen_LBrulesRB `pseq` applyWrapper aw_34 [kl_Parse_shen_LBrulesRB]
-                                                                                                                                                                                                                                                      !appl_36 <- appl_33 `pseq` (appl_35 `pseq` klCons appl_33 appl_35)
-                                                                                                                                                                                                                                                      let !aw_37 = Types.Atom (Types.UnboundSym "shen.pair")
-                                                                                                                                                                                                                                                      appl_30 `pseq` (appl_36 `pseq` applyWrapper aw_37 [appl_30,
-                                                                                                                                                                                                                                                                                                         appl_36])
-                                                                                                                                                                                                                                Atom (B (False)) -> do do let !aw_38 = Types.Atom (Types.UnboundSym "fail")
-                                                                                                                                                                                                                                                          applyWrapper aw_38 []
-                                                                                                                                                                                                                                _ -> throwError "if: expected boolean")))
-                                                                                                                                            !appl_39 <- kl_Parse_shen_LBruleRB `pseq` kl_shen_LBrulesRB kl_Parse_shen_LBruleRB
-                                                                                                                                            appl_39 `pseq` applyWrapper appl_24 [appl_39]
-                                                                                                                      Atom (B (False)) -> do do let !aw_40 = Types.Atom (Types.UnboundSym "fail")
-                                                                                                                                                applyWrapper aw_40 []
-                                                                                                                      _ -> throwError "if: expected boolean")))
-                                   !appl_41 <- kl_V1205 `pseq` kl_shen_LBruleRB kl_V1205
-                                   !appl_42 <- appl_41 `pseq` applyWrapper appl_18 [appl_41]
-                                   appl_42 `pseq` applyWrapper appl_0 [appl_42]
-
-kl_shen_LBruleRB :: Types.KLValue ->
-                    Types.KLContext Types.Env Types.KLValue
-kl_shen_LBruleRB (!kl_V1207) = do let !appl_0 = ApplC (Func "lambda" (Context (\(!kl_YaccParse) -> do let !aw_1 = Types.Atom (Types.UnboundSym "fail")
-                                                                                                      !appl_2 <- applyWrapper aw_1 []
-                                                                                                      !kl_if_3 <- kl_YaccParse `pseq` (appl_2 `pseq` eq kl_YaccParse appl_2)
-                                                                                                      case kl_if_3 of
-                                                                                                          Atom (B (True)) -> do let !appl_4 = ApplC (Func "lambda" (Context (\(!kl_YaccParse) -> do let !aw_5 = Types.Atom (Types.UnboundSym "fail")
-                                                                                                                                                                                                    !appl_6 <- applyWrapper aw_5 []
-                                                                                                                                                                                                    !kl_if_7 <- kl_YaccParse `pseq` (appl_6 `pseq` eq kl_YaccParse appl_6)
-                                                                                                                                                                                                    case kl_if_7 of
-                                                                                                                                                                                                        Atom (B (True)) -> do let !appl_8 = ApplC (Func "lambda" (Context (\(!kl_YaccParse) -> do let !aw_9 = Types.Atom (Types.UnboundSym "fail")
-                                                                                                                                                                                                                                                                                                  !appl_10 <- applyWrapper aw_9 []
-                                                                                                                                                                                                                                                                                                  !kl_if_11 <- kl_YaccParse `pseq` (appl_10 `pseq` eq kl_YaccParse appl_10)
-                                                                                                                                                                                                                                                                                                  case kl_if_11 of
-                                                                                                                                                                                                                                                                                                      Atom (B (True)) -> do let !appl_12 = ApplC (Func "lambda" (Context (\(!kl_Parse_shen_LBpatternsRB) -> do let !aw_13 = Types.Atom (Types.UnboundSym "fail")
-                                                                                                                                                                                                                                                                                                                                                                                                               !appl_14 <- applyWrapper aw_13 []
-                                                                                                                                                                                                                                                                                                                                                                                                               !appl_15 <- appl_14 `pseq` (kl_Parse_shen_LBpatternsRB `pseq` eq appl_14 kl_Parse_shen_LBpatternsRB)
-                                                                                                                                                                                                                                                                                                                                                                                                               let !aw_16 = Types.Atom (Types.UnboundSym "not")
-                                                                                                                                                                                                                                                                                                                                                                                                               !kl_if_17 <- appl_15 `pseq` applyWrapper aw_16 [appl_15]
-                                                                                                                                                                                                                                                                                                                                                                                                               case kl_if_17 of
-                                                                                                                                                                                                                                                                                                                                                                                                                   Atom (B (True)) -> do !appl_18 <- kl_Parse_shen_LBpatternsRB `pseq` hd kl_Parse_shen_LBpatternsRB
-                                                                                                                                                                                                                                                                                                                                                                                                                                         !kl_if_19 <- appl_18 `pseq` consP appl_18
-                                                                                                                                                                                                                                                                                                                                                                                                                                         !kl_if_20 <- case kl_if_19 of
-                                                                                                                                                                                                                                                                                                                                                                                                                                                          Atom (B (True)) -> do !appl_21 <- kl_Parse_shen_LBpatternsRB `pseq` hd kl_Parse_shen_LBpatternsRB
-                                                                                                                                                                                                                                                                                                                                                                                                                                                                                !appl_22 <- appl_21 `pseq` hd appl_21
-                                                                                                                                                                                                                                                                                                                                                                                                                                                                                !kl_if_23 <- appl_22 `pseq` eq (Types.Atom (Types.UnboundSym "<-")) appl_22
-                                                                                                                                                                                                                                                                                                                                                                                                                                                                                case kl_if_23 of
-                                                                                                                                                                                                                                                                                                                                                                                                                                                                                    Atom (B (True)) -> do return (Atom (B True))
-                                                                                                                                                                                                                                                                                                                                                                                                                                                                                    Atom (B (False)) -> do do return (Atom (B False))
-                                                                                                                                                                                                                                                                                                                                                                                                                                                                                    _ -> throwError "if: expected boolean"
-                                                                                                                                                                                                                                                                                                                                                                                                                                                          Atom (B (False)) -> do do return (Atom (B False))
-                                                                                                                                                                                                                                                                                                                                                                                                                                                          _ -> throwError "if: expected boolean"
-                                                                                                                                                                                                                                                                                                                                                                                                                                         case kl_if_20 of
-                                                                                                                                                                                                                                                                                                                                                                                                                                             Atom (B (True)) -> do let !appl_24 = ApplC (Func "lambda" (Context (\(!kl_Parse_shen_LBactionRB) -> do let !aw_25 = Types.Atom (Types.UnboundSym "fail")
-                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                    !appl_26 <- applyWrapper aw_25 []
-                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                    !appl_27 <- appl_26 `pseq` (kl_Parse_shen_LBactionRB `pseq` eq appl_26 kl_Parse_shen_LBactionRB)
-                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                    let !aw_28 = Types.Atom (Types.UnboundSym "not")
-                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                    !kl_if_29 <- appl_27 `pseq` applyWrapper aw_28 [appl_27]
-                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                    case kl_if_29 of
-                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                        Atom (B (True)) -> do !appl_30 <- kl_Parse_shen_LBactionRB `pseq` hd kl_Parse_shen_LBactionRB
-                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                              let !aw_31 = Types.Atom (Types.UnboundSym "shen.hdtl")
-                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                              !appl_32 <- kl_Parse_shen_LBpatternsRB `pseq` applyWrapper aw_31 [kl_Parse_shen_LBpatternsRB]
-                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                              let !aw_33 = Types.Atom (Types.UnboundSym "shen.hdtl")
-                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                              !appl_34 <- kl_Parse_shen_LBactionRB `pseq` applyWrapper aw_33 [kl_Parse_shen_LBactionRB]
-                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                              !appl_35 <- appl_34 `pseq` klCons appl_34 (Types.Atom Types.Nil)
-                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                              !appl_36 <- appl_35 `pseq` klCons (Types.Atom (Types.UnboundSym "shen.choicepoint!")) appl_35
-                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                              !appl_37 <- appl_36 `pseq` klCons appl_36 (Types.Atom Types.Nil)
-                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                              !appl_38 <- appl_32 `pseq` (appl_37 `pseq` klCons appl_32 appl_37)
-                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                              let !aw_39 = Types.Atom (Types.UnboundSym "shen.pair")
-                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                              appl_30 `pseq` (appl_38 `pseq` applyWrapper aw_39 [appl_30,
-                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                 appl_38])
-                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                        Atom (B (False)) -> do do let !aw_40 = Types.Atom (Types.UnboundSym "fail")
-                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                  applyWrapper aw_40 []
-                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                        _ -> throwError "if: expected boolean")))
-                                                                                                                                                                                                                                                                                                                                                                                                                                                                   !appl_41 <- kl_Parse_shen_LBpatternsRB `pseq` hd kl_Parse_shen_LBpatternsRB
-                                                                                                                                                                                                                                                                                                                                                                                                                                                                   !appl_42 <- appl_41 `pseq` tl appl_41
-                                                                                                                                                                                                                                                                                                                                                                                                                                                                   let !aw_43 = Types.Atom (Types.UnboundSym "shen.hdtl")
-                                                                                                                                                                                                                                                                                                                                                                                                                                                                   !appl_44 <- kl_Parse_shen_LBpatternsRB `pseq` applyWrapper aw_43 [kl_Parse_shen_LBpatternsRB]
-                                                                                                                                                                                                                                                                                                                                                                                                                                                                   let !aw_45 = Types.Atom (Types.UnboundSym "shen.pair")
-                                                                                                                                                                                                                                                                                                                                                                                                                                                                   !appl_46 <- appl_42 `pseq` (appl_44 `pseq` applyWrapper aw_45 [appl_42,
-                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                  appl_44])
-                                                                                                                                                                                                                                                                                                                                                                                                                                                                   !appl_47 <- appl_46 `pseq` kl_shen_LBactionRB appl_46
-                                                                                                                                                                                                                                                                                                                                                                                                                                                                   appl_47 `pseq` applyWrapper appl_24 [appl_47]
-                                                                                                                                                                                                                                                                                                                                                                                                                                             Atom (B (False)) -> do do let !aw_48 = Types.Atom (Types.UnboundSym "fail")
-                                                                                                                                                                                                                                                                                                                                                                                                                                                                       applyWrapper aw_48 []
-                                                                                                                                                                                                                                                                                                                                                                                                                                             _ -> throwError "if: expected boolean"
-                                                                                                                                                                                                                                                                                                                                                                                                                   Atom (B (False)) -> do do let !aw_49 = Types.Atom (Types.UnboundSym "fail")
-                                                                                                                                                                                                                                                                                                                                                                                                                                             applyWrapper aw_49 []
-                                                                                                                                                                                                                                                                                                                                                                                                                   _ -> throwError "if: expected boolean")))
-                                                                                                                                                                                                                                                                                                                            !appl_50 <- kl_V1207 `pseq` kl_shen_LBpatternsRB kl_V1207
-                                                                                                                                                                                                                                                                                                                            appl_50 `pseq` applyWrapper appl_12 [appl_50]
-                                                                                                                                                                                                                                                                                                      Atom (B (False)) -> do do return kl_YaccParse
-                                                                                                                                                                                                                                                                                                      _ -> throwError "if: expected boolean")))
-                                                                                                                                                                                                                              let !appl_51 = ApplC (Func "lambda" (Context (\(!kl_Parse_shen_LBpatternsRB) -> do let !aw_52 = Types.Atom (Types.UnboundSym "fail")
-                                                                                                                                                                                                                                                                                                                 !appl_53 <- applyWrapper aw_52 []
-                                                                                                                                                                                                                                                                                                                 !appl_54 <- appl_53 `pseq` (kl_Parse_shen_LBpatternsRB `pseq` eq appl_53 kl_Parse_shen_LBpatternsRB)
-                                                                                                                                                                                                                                                                                                                 let !aw_55 = Types.Atom (Types.UnboundSym "not")
-                                                                                                                                                                                                                                                                                                                 !kl_if_56 <- appl_54 `pseq` applyWrapper aw_55 [appl_54]
-                                                                                                                                                                                                                                                                                                                 case kl_if_56 of
-                                                                                                                                                                                                                                                                                                                     Atom (B (True)) -> do !appl_57 <- kl_Parse_shen_LBpatternsRB `pseq` hd kl_Parse_shen_LBpatternsRB
-                                                                                                                                                                                                                                                                                                                                           !kl_if_58 <- appl_57 `pseq` consP appl_57
-                                                                                                                                                                                                                                                                                                                                           !kl_if_59 <- case kl_if_58 of
-                                                                                                                                                                                                                                                                                                                                                            Atom (B (True)) -> do !appl_60 <- kl_Parse_shen_LBpatternsRB `pseq` hd kl_Parse_shen_LBpatternsRB
-                                                                                                                                                                                                                                                                                                                                                                                  !appl_61 <- appl_60 `pseq` hd appl_60
-                                                                                                                                                                                                                                                                                                                                                                                  !kl_if_62 <- appl_61 `pseq` eq (Types.Atom (Types.UnboundSym "<-")) appl_61
-                                                                                                                                                                                                                                                                                                                                                                                  case kl_if_62 of
-                                                                                                                                                                                                                                                                                                                                                                                      Atom (B (True)) -> do return (Atom (B True))
-                                                                                                                                                                                                                                                                                                                                                                                      Atom (B (False)) -> do do return (Atom (B False))
-                                                                                                                                                                                                                                                                                                                                                                                      _ -> throwError "if: expected boolean"
-                                                                                                                                                                                                                                                                                                                                                            Atom (B (False)) -> do do return (Atom (B False))
-                                                                                                                                                                                                                                                                                                                                                            _ -> throwError "if: expected boolean"
-                                                                                                                                                                                                                                                                                                                                           case kl_if_59 of
-                                                                                                                                                                                                                                                                                                                                               Atom (B (True)) -> do let !appl_63 = ApplC (Func "lambda" (Context (\(!kl_Parse_shen_LBactionRB) -> do let !aw_64 = Types.Atom (Types.UnboundSym "fail")
-                                                                                                                                                                                                                                                                                                                                                                                                                                                      !appl_65 <- applyWrapper aw_64 []
-                                                                                                                                                                                                                                                                                                                                                                                                                                                      !appl_66 <- appl_65 `pseq` (kl_Parse_shen_LBactionRB `pseq` eq appl_65 kl_Parse_shen_LBactionRB)
-                                                                                                                                                                                                                                                                                                                                                                                                                                                      let !aw_67 = Types.Atom (Types.UnboundSym "not")
-                                                                                                                                                                                                                                                                                                                                                                                                                                                      !kl_if_68 <- appl_66 `pseq` applyWrapper aw_67 [appl_66]
-                                                                                                                                                                                                                                                                                                                                                                                                                                                      case kl_if_68 of
-                                                                                                                                                                                                                                                                                                                                                                                                                                                          Atom (B (True)) -> do !appl_69 <- kl_Parse_shen_LBactionRB `pseq` hd kl_Parse_shen_LBactionRB
-                                                                                                                                                                                                                                                                                                                                                                                                                                                                                !kl_if_70 <- appl_69 `pseq` consP appl_69
-                                                                                                                                                                                                                                                                                                                                                                                                                                                                                !kl_if_71 <- case kl_if_70 of
-                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                 Atom (B (True)) -> do !appl_72 <- kl_Parse_shen_LBactionRB `pseq` hd kl_Parse_shen_LBactionRB
-                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                       !appl_73 <- appl_72 `pseq` hd appl_72
-                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                       !kl_if_74 <- appl_73 `pseq` eq (Types.Atom (Types.UnboundSym "where")) appl_73
-                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                       case kl_if_74 of
-                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                           Atom (B (True)) -> do return (Atom (B True))
-                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                           Atom (B (False)) -> do do return (Atom (B False))
-                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                           _ -> throwError "if: expected boolean"
-                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                 Atom (B (False)) -> do do return (Atom (B False))
-                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                 _ -> throwError "if: expected boolean"
-                                                                                                                                                                                                                                                                                                                                                                                                                                                                                case kl_if_71 of
-                                                                                                                                                                                                                                                                                                                                                                                                                                                                                    Atom (B (True)) -> do let !appl_75 = ApplC (Func "lambda" (Context (\(!kl_Parse_shen_LBguardRB) -> do let !aw_76 = Types.Atom (Types.UnboundSym "fail")
-                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                          !appl_77 <- applyWrapper aw_76 []
-                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                          !appl_78 <- appl_77 `pseq` (kl_Parse_shen_LBguardRB `pseq` eq appl_77 kl_Parse_shen_LBguardRB)
-                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                          let !aw_79 = Types.Atom (Types.UnboundSym "not")
-                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                          !kl_if_80 <- appl_78 `pseq` applyWrapper aw_79 [appl_78]
-                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                          case kl_if_80 of
-                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                              Atom (B (True)) -> do !appl_81 <- kl_Parse_shen_LBguardRB `pseq` hd kl_Parse_shen_LBguardRB
-                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                    let !aw_82 = Types.Atom (Types.UnboundSym "shen.hdtl")
-                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                    !appl_83 <- kl_Parse_shen_LBpatternsRB `pseq` applyWrapper aw_82 [kl_Parse_shen_LBpatternsRB]
-                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                    let !aw_84 = Types.Atom (Types.UnboundSym "shen.hdtl")
-                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                    !appl_85 <- kl_Parse_shen_LBguardRB `pseq` applyWrapper aw_84 [kl_Parse_shen_LBguardRB]
-                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                    let !aw_86 = Types.Atom (Types.UnboundSym "shen.hdtl")
-                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                    !appl_87 <- kl_Parse_shen_LBactionRB `pseq` applyWrapper aw_86 [kl_Parse_shen_LBactionRB]
-                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                    !appl_88 <- appl_87 `pseq` klCons appl_87 (Types.Atom Types.Nil)
-                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                    !appl_89 <- appl_88 `pseq` klCons (Types.Atom (Types.UnboundSym "shen.choicepoint!")) appl_88
-                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                    !appl_90 <- appl_89 `pseq` klCons appl_89 (Types.Atom Types.Nil)
-                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                    !appl_91 <- appl_85 `pseq` (appl_90 `pseq` klCons appl_85 appl_90)
-                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                    !appl_92 <- appl_91 `pseq` klCons (Types.Atom (Types.UnboundSym "where")) appl_91
-                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                    !appl_93 <- appl_92 `pseq` klCons appl_92 (Types.Atom Types.Nil)
-                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                    !appl_94 <- appl_83 `pseq` (appl_93 `pseq` klCons appl_83 appl_93)
-                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                    let !aw_95 = Types.Atom (Types.UnboundSym "shen.pair")
-                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                    appl_81 `pseq` (appl_94 `pseq` applyWrapper aw_95 [appl_81,
-                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                       appl_94])
-                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                              Atom (B (False)) -> do do let !aw_96 = Types.Atom (Types.UnboundSym "fail")
-                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                        applyWrapper aw_96 []
-                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                              _ -> throwError "if: expected boolean")))
-                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                          !appl_97 <- kl_Parse_shen_LBactionRB `pseq` hd kl_Parse_shen_LBactionRB
-                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                          !appl_98 <- appl_97 `pseq` tl appl_97
-                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                          let !aw_99 = Types.Atom (Types.UnboundSym "shen.hdtl")
-                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                          !appl_100 <- kl_Parse_shen_LBactionRB `pseq` applyWrapper aw_99 [kl_Parse_shen_LBactionRB]
-                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                          let !aw_101 = Types.Atom (Types.UnboundSym "shen.pair")
-                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                          !appl_102 <- appl_98 `pseq` (appl_100 `pseq` applyWrapper aw_101 [appl_98,
-                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                            appl_100])
-                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                          !appl_103 <- appl_102 `pseq` kl_shen_LBguardRB appl_102
-                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                          appl_103 `pseq` applyWrapper appl_75 [appl_103]
-                                                                                                                                                                                                                                                                                                                                                                                                                                                                                    Atom (B (False)) -> do do let !aw_104 = Types.Atom (Types.UnboundSym "fail")
-                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                              applyWrapper aw_104 []
-                                                                                                                                                                                                                                                                                                                                                                                                                                                                                    _ -> throwError "if: expected boolean"
-                                                                                                                                                                                                                                                                                                                                                                                                                                                          Atom (B (False)) -> do do let !aw_105 = Types.Atom (Types.UnboundSym "fail")
-                                                                                                                                                                                                                                                                                                                                                                                                                                                                                    applyWrapper aw_105 []
-                                                                                                                                                                                                                                                                                                                                                                                                                                                          _ -> throwError "if: expected boolean")))
-                                                                                                                                                                                                                                                                                                                                                                     !appl_106 <- kl_Parse_shen_LBpatternsRB `pseq` hd kl_Parse_shen_LBpatternsRB
-                                                                                                                                                                                                                                                                                                                                                                     !appl_107 <- appl_106 `pseq` tl appl_106
-                                                                                                                                                                                                                                                                                                                                                                     let !aw_108 = Types.Atom (Types.UnboundSym "shen.hdtl")
-                                                                                                                                                                                                                                                                                                                                                                     !appl_109 <- kl_Parse_shen_LBpatternsRB `pseq` applyWrapper aw_108 [kl_Parse_shen_LBpatternsRB]
-                                                                                                                                                                                                                                                                                                                                                                     let !aw_110 = Types.Atom (Types.UnboundSym "shen.pair")
-                                                                                                                                                                                                                                                                                                                                                                     !appl_111 <- appl_107 `pseq` (appl_109 `pseq` applyWrapper aw_110 [appl_107,
-                                                                                                                                                                                                                                                                                                                                                                                                                                        appl_109])
-                                                                                                                                                                                                                                                                                                                                                                     !appl_112 <- appl_111 `pseq` kl_shen_LBactionRB appl_111
-                                                                                                                                                                                                                                                                                                                                                                     appl_112 `pseq` applyWrapper appl_63 [appl_112]
-                                                                                                                                                                                                                                                                                                                                               Atom (B (False)) -> do do let !aw_113 = Types.Atom (Types.UnboundSym "fail")
-                                                                                                                                                                                                                                                                                                                                                                         applyWrapper aw_113 []
-                                                                                                                                                                                                                                                                                                                                               _ -> throwError "if: expected boolean"
-                                                                                                                                                                                                                                                                                                                     Atom (B (False)) -> do do let !aw_114 = Types.Atom (Types.UnboundSym "fail")
-                                                                                                                                                                                                                                                                                                                                               applyWrapper aw_114 []
-                                                                                                                                                                                                                                                                                                                     _ -> throwError "if: expected boolean")))
-                                                                                                                                                                                                                              !appl_115 <- kl_V1207 `pseq` kl_shen_LBpatternsRB kl_V1207
-                                                                                                                                                                                                                              !appl_116 <- appl_115 `pseq` applyWrapper appl_51 [appl_115]
-                                                                                                                                                                                                                              appl_116 `pseq` applyWrapper appl_8 [appl_116]
-                                                                                                                                                                                                        Atom (B (False)) -> do do return kl_YaccParse
-                                                                                                                                                                                                        _ -> throwError "if: expected boolean")))
-                                                                                                                                let !appl_117 = ApplC (Func "lambda" (Context (\(!kl_Parse_shen_LBpatternsRB) -> do let !aw_118 = Types.Atom (Types.UnboundSym "fail")
-                                                                                                                                                                                                                    !appl_119 <- applyWrapper aw_118 []
-                                                                                                                                                                                                                    !appl_120 <- appl_119 `pseq` (kl_Parse_shen_LBpatternsRB `pseq` eq appl_119 kl_Parse_shen_LBpatternsRB)
-                                                                                                                                                                                                                    let !aw_121 = Types.Atom (Types.UnboundSym "not")
-                                                                                                                                                                                                                    !kl_if_122 <- appl_120 `pseq` applyWrapper aw_121 [appl_120]
-                                                                                                                                                                                                                    case kl_if_122 of
-                                                                                                                                                                                                                        Atom (B (True)) -> do !appl_123 <- kl_Parse_shen_LBpatternsRB `pseq` hd kl_Parse_shen_LBpatternsRB
-                                                                                                                                                                                                                                              !kl_if_124 <- appl_123 `pseq` consP appl_123
-                                                                                                                                                                                                                                              !kl_if_125 <- case kl_if_124 of
-                                                                                                                                                                                                                                                                Atom (B (True)) -> do !appl_126 <- kl_Parse_shen_LBpatternsRB `pseq` hd kl_Parse_shen_LBpatternsRB
-                                                                                                                                                                                                                                                                                      !appl_127 <- appl_126 `pseq` hd appl_126
-                                                                                                                                                                                                                                                                                      !kl_if_128 <- appl_127 `pseq` eq (Types.Atom (Types.UnboundSym "->")) appl_127
-                                                                                                                                                                                                                                                                                      case kl_if_128 of
-                                                                                                                                                                                                                                                                                          Atom (B (True)) -> do return (Atom (B True))
-                                                                                                                                                                                                                                                                                          Atom (B (False)) -> do do return (Atom (B False))
-                                                                                                                                                                                                                                                                                          _ -> throwError "if: expected boolean"
-                                                                                                                                                                                                                                                                Atom (B (False)) -> do do return (Atom (B False))
-                                                                                                                                                                                                                                                                _ -> throwError "if: expected boolean"
-                                                                                                                                                                                                                                              case kl_if_125 of
-                                                                                                                                                                                                                                                  Atom (B (True)) -> do let !appl_129 = ApplC (Func "lambda" (Context (\(!kl_Parse_shen_LBactionRB) -> do let !aw_130 = Types.Atom (Types.UnboundSym "fail")
-                                                                                                                                                                                                                                                                                                                                                          !appl_131 <- applyWrapper aw_130 []
-                                                                                                                                                                                                                                                                                                                                                          !appl_132 <- appl_131 `pseq` (kl_Parse_shen_LBactionRB `pseq` eq appl_131 kl_Parse_shen_LBactionRB)
-                                                                                                                                                                                                                                                                                                                                                          let !aw_133 = Types.Atom (Types.UnboundSym "not")
-                                                                                                                                                                                                                                                                                                                                                          !kl_if_134 <- appl_132 `pseq` applyWrapper aw_133 [appl_132]
-                                                                                                                                                                                                                                                                                                                                                          case kl_if_134 of
-                                                                                                                                                                                                                                                                                                                                                              Atom (B (True)) -> do !appl_135 <- kl_Parse_shen_LBactionRB `pseq` hd kl_Parse_shen_LBactionRB
-                                                                                                                                                                                                                                                                                                                                                                                    let !aw_136 = Types.Atom (Types.UnboundSym "shen.hdtl")
-                                                                                                                                                                                                                                                                                                                                                                                    !appl_137 <- kl_Parse_shen_LBpatternsRB `pseq` applyWrapper aw_136 [kl_Parse_shen_LBpatternsRB]
-                                                                                                                                                                                                                                                                                                                                                                                    let !aw_138 = Types.Atom (Types.UnboundSym "shen.hdtl")
-                                                                                                                                                                                                                                                                                                                                                                                    !appl_139 <- kl_Parse_shen_LBactionRB `pseq` applyWrapper aw_138 [kl_Parse_shen_LBactionRB]
-                                                                                                                                                                                                                                                                                                                                                                                    !appl_140 <- appl_139 `pseq` klCons appl_139 (Types.Atom Types.Nil)
-                                                                                                                                                                                                                                                                                                                                                                                    !appl_141 <- appl_137 `pseq` (appl_140 `pseq` klCons appl_137 appl_140)
-                                                                                                                                                                                                                                                                                                                                                                                    let !aw_142 = Types.Atom (Types.UnboundSym "shen.pair")
-                                                                                                                                                                                                                                                                                                                                                                                    appl_135 `pseq` (appl_141 `pseq` applyWrapper aw_142 [appl_135,
-                                                                                                                                                                                                                                                                                                                                                                                                                                          appl_141])
-                                                                                                                                                                                                                                                                                                                                                              Atom (B (False)) -> do do let !aw_143 = Types.Atom (Types.UnboundSym "fail")
-                                                                                                                                                                                                                                                                                                                                                                                        applyWrapper aw_143 []
-                                                                                                                                                                                                                                                                                                                                                              _ -> throwError "if: expected boolean")))
-                                                                                                                                                                                                                                                                        !appl_144 <- kl_Parse_shen_LBpatternsRB `pseq` hd kl_Parse_shen_LBpatternsRB
-                                                                                                                                                                                                                                                                        !appl_145 <- appl_144 `pseq` tl appl_144
-                                                                                                                                                                                                                                                                        let !aw_146 = Types.Atom (Types.UnboundSym "shen.hdtl")
-                                                                                                                                                                                                                                                                        !appl_147 <- kl_Parse_shen_LBpatternsRB `pseq` applyWrapper aw_146 [kl_Parse_shen_LBpatternsRB]
-                                                                                                                                                                                                                                                                        let !aw_148 = Types.Atom (Types.UnboundSym "shen.pair")
-                                                                                                                                                                                                                                                                        !appl_149 <- appl_145 `pseq` (appl_147 `pseq` applyWrapper aw_148 [appl_145,
-                                                                                                                                                                                                                                                                                                                                           appl_147])
-                                                                                                                                                                                                                                                                        !appl_150 <- appl_149 `pseq` kl_shen_LBactionRB appl_149
-                                                                                                                                                                                                                                                                        appl_150 `pseq` applyWrapper appl_129 [appl_150]
-                                                                                                                                                                                                                                                  Atom (B (False)) -> do do let !aw_151 = Types.Atom (Types.UnboundSym "fail")
-                                                                                                                                                                                                                                                                            applyWrapper aw_151 []
-                                                                                                                                                                                                                                                  _ -> throwError "if: expected boolean"
-                                                                                                                                                                                                                        Atom (B (False)) -> do do let !aw_152 = Types.Atom (Types.UnboundSym "fail")
-                                                                                                                                                                                                                                                  applyWrapper aw_152 []
-                                                                                                                                                                                                                        _ -> throwError "if: expected boolean")))
-                                                                                                                                !appl_153 <- kl_V1207 `pseq` kl_shen_LBpatternsRB kl_V1207
-                                                                                                                                !appl_154 <- appl_153 `pseq` applyWrapper appl_117 [appl_153]
-                                                                                                                                appl_154 `pseq` applyWrapper appl_4 [appl_154]
-                                                                                                          Atom (B (False)) -> do do return kl_YaccParse
-                                                                                                          _ -> throwError "if: expected boolean")))
-                                  let !appl_155 = ApplC (Func "lambda" (Context (\(!kl_Parse_shen_LBpatternsRB) -> do let !aw_156 = Types.Atom (Types.UnboundSym "fail")
-                                                                                                                      !appl_157 <- applyWrapper aw_156 []
-                                                                                                                      !appl_158 <- appl_157 `pseq` (kl_Parse_shen_LBpatternsRB `pseq` eq appl_157 kl_Parse_shen_LBpatternsRB)
-                                                                                                                      let !aw_159 = Types.Atom (Types.UnboundSym "not")
-                                                                                                                      !kl_if_160 <- appl_158 `pseq` applyWrapper aw_159 [appl_158]
-                                                                                                                      case kl_if_160 of
-                                                                                                                          Atom (B (True)) -> do !appl_161 <- kl_Parse_shen_LBpatternsRB `pseq` hd kl_Parse_shen_LBpatternsRB
-                                                                                                                                                !kl_if_162 <- appl_161 `pseq` consP appl_161
-                                                                                                                                                !kl_if_163 <- case kl_if_162 of
-                                                                                                                                                                  Atom (B (True)) -> do !appl_164 <- kl_Parse_shen_LBpatternsRB `pseq` hd kl_Parse_shen_LBpatternsRB
-                                                                                                                                                                                        !appl_165 <- appl_164 `pseq` hd appl_164
-                                                                                                                                                                                        !kl_if_166 <- appl_165 `pseq` eq (Types.Atom (Types.UnboundSym "->")) appl_165
-                                                                                                                                                                                        case kl_if_166 of
-                                                                                                                                                                                            Atom (B (True)) -> do return (Atom (B True))
-                                                                                                                                                                                            Atom (B (False)) -> do do return (Atom (B False))
-                                                                                                                                                                                            _ -> throwError "if: expected boolean"
-                                                                                                                                                                  Atom (B (False)) -> do do return (Atom (B False))
-                                                                                                                                                                  _ -> throwError "if: expected boolean"
-                                                                                                                                                case kl_if_163 of
-                                                                                                                                                    Atom (B (True)) -> do let !appl_167 = ApplC (Func "lambda" (Context (\(!kl_Parse_shen_LBactionRB) -> do let !aw_168 = Types.Atom (Types.UnboundSym "fail")
-                                                                                                                                                                                                                                                            !appl_169 <- applyWrapper aw_168 []
-                                                                                                                                                                                                                                                            !appl_170 <- appl_169 `pseq` (kl_Parse_shen_LBactionRB `pseq` eq appl_169 kl_Parse_shen_LBactionRB)
-                                                                                                                                                                                                                                                            let !aw_171 = Types.Atom (Types.UnboundSym "not")
-                                                                                                                                                                                                                                                            !kl_if_172 <- appl_170 `pseq` applyWrapper aw_171 [appl_170]
-                                                                                                                                                                                                                                                            case kl_if_172 of
-                                                                                                                                                                                                                                                                Atom (B (True)) -> do !appl_173 <- kl_Parse_shen_LBactionRB `pseq` hd kl_Parse_shen_LBactionRB
-                                                                                                                                                                                                                                                                                      !kl_if_174 <- appl_173 `pseq` consP appl_173
-                                                                                                                                                                                                                                                                                      !kl_if_175 <- case kl_if_174 of
-                                                                                                                                                                                                                                                                                                        Atom (B (True)) -> do !appl_176 <- kl_Parse_shen_LBactionRB `pseq` hd kl_Parse_shen_LBactionRB
-                                                                                                                                                                                                                                                                                                                              !appl_177 <- appl_176 `pseq` hd appl_176
-                                                                                                                                                                                                                                                                                                                              !kl_if_178 <- appl_177 `pseq` eq (Types.Atom (Types.UnboundSym "where")) appl_177
-                                                                                                                                                                                                                                                                                                                              case kl_if_178 of
-                                                                                                                                                                                                                                                                                                                                  Atom (B (True)) -> do return (Atom (B True))
-                                                                                                                                                                                                                                                                                                                                  Atom (B (False)) -> do do return (Atom (B False))
-                                                                                                                                                                                                                                                                                                                                  _ -> throwError "if: expected boolean"
-                                                                                                                                                                                                                                                                                                        Atom (B (False)) -> do do return (Atom (B False))
-                                                                                                                                                                                                                                                                                                        _ -> throwError "if: expected boolean"
-                                                                                                                                                                                                                                                                                      case kl_if_175 of
-                                                                                                                                                                                                                                                                                          Atom (B (True)) -> do let !appl_179 = ApplC (Func "lambda" (Context (\(!kl_Parse_shen_LBguardRB) -> do let !aw_180 = Types.Atom (Types.UnboundSym "fail")
-                                                                                                                                                                                                                                                                                                                                                                                                 !appl_181 <- applyWrapper aw_180 []
-                                                                                                                                                                                                                                                                                                                                                                                                 !appl_182 <- appl_181 `pseq` (kl_Parse_shen_LBguardRB `pseq` eq appl_181 kl_Parse_shen_LBguardRB)
-                                                                                                                                                                                                                                                                                                                                                                                                 let !aw_183 = Types.Atom (Types.UnboundSym "not")
-                                                                                                                                                                                                                                                                                                                                                                                                 !kl_if_184 <- appl_182 `pseq` applyWrapper aw_183 [appl_182]
-                                                                                                                                                                                                                                                                                                                                                                                                 case kl_if_184 of
-                                                                                                                                                                                                                                                                                                                                                                                                     Atom (B (True)) -> do !appl_185 <- kl_Parse_shen_LBguardRB `pseq` hd kl_Parse_shen_LBguardRB
-                                                                                                                                                                                                                                                                                                                                                                                                                           let !aw_186 = Types.Atom (Types.UnboundSym "shen.hdtl")
-                                                                                                                                                                                                                                                                                                                                                                                                                           !appl_187 <- kl_Parse_shen_LBpatternsRB `pseq` applyWrapper aw_186 [kl_Parse_shen_LBpatternsRB]
-                                                                                                                                                                                                                                                                                                                                                                                                                           let !aw_188 = Types.Atom (Types.UnboundSym "shen.hdtl")
-                                                                                                                                                                                                                                                                                                                                                                                                                           !appl_189 <- kl_Parse_shen_LBguardRB `pseq` applyWrapper aw_188 [kl_Parse_shen_LBguardRB]
-                                                                                                                                                                                                                                                                                                                                                                                                                           let !aw_190 = Types.Atom (Types.UnboundSym "shen.hdtl")
-                                                                                                                                                                                                                                                                                                                                                                                                                           !appl_191 <- kl_Parse_shen_LBactionRB `pseq` applyWrapper aw_190 [kl_Parse_shen_LBactionRB]
-                                                                                                                                                                                                                                                                                                                                                                                                                           !appl_192 <- appl_191 `pseq` klCons appl_191 (Types.Atom Types.Nil)
-                                                                                                                                                                                                                                                                                                                                                                                                                           !appl_193 <- appl_189 `pseq` (appl_192 `pseq` klCons appl_189 appl_192)
-                                                                                                                                                                                                                                                                                                                                                                                                                           !appl_194 <- appl_193 `pseq` klCons (Types.Atom (Types.UnboundSym "where")) appl_193
-                                                                                                                                                                                                                                                                                                                                                                                                                           !appl_195 <- appl_194 `pseq` klCons appl_194 (Types.Atom Types.Nil)
-                                                                                                                                                                                                                                                                                                                                                                                                                           !appl_196 <- appl_187 `pseq` (appl_195 `pseq` klCons appl_187 appl_195)
-                                                                                                                                                                                                                                                                                                                                                                                                                           let !aw_197 = Types.Atom (Types.UnboundSym "shen.pair")
-                                                                                                                                                                                                                                                                                                                                                                                                                           appl_185 `pseq` (appl_196 `pseq` applyWrapper aw_197 [appl_185,
-                                                                                                                                                                                                                                                                                                                                                                                                                                                                                 appl_196])
-                                                                                                                                                                                                                                                                                                                                                                                                     Atom (B (False)) -> do do let !aw_198 = Types.Atom (Types.UnboundSym "fail")
-                                                                                                                                                                                                                                                                                                                                                                                                                               applyWrapper aw_198 []
-                                                                                                                                                                                                                                                                                                                                                                                                     _ -> throwError "if: expected boolean")))
-                                                                                                                                                                                                                                                                                                                !appl_199 <- kl_Parse_shen_LBactionRB `pseq` hd kl_Parse_shen_LBactionRB
-                                                                                                                                                                                                                                                                                                                !appl_200 <- appl_199 `pseq` tl appl_199
-                                                                                                                                                                                                                                                                                                                let !aw_201 = Types.Atom (Types.UnboundSym "shen.hdtl")
-                                                                                                                                                                                                                                                                                                                !appl_202 <- kl_Parse_shen_LBactionRB `pseq` applyWrapper aw_201 [kl_Parse_shen_LBactionRB]
-                                                                                                                                                                                                                                                                                                                let !aw_203 = Types.Atom (Types.UnboundSym "shen.pair")
-                                                                                                                                                                                                                                                                                                                !appl_204 <- appl_200 `pseq` (appl_202 `pseq` applyWrapper aw_203 [appl_200,
-                                                                                                                                                                                                                                                                                                                                                                                   appl_202])
-                                                                                                                                                                                                                                                                                                                !appl_205 <- appl_204 `pseq` kl_shen_LBguardRB appl_204
-                                                                                                                                                                                                                                                                                                                appl_205 `pseq` applyWrapper appl_179 [appl_205]
-                                                                                                                                                                                                                                                                                          Atom (B (False)) -> do do let !aw_206 = Types.Atom (Types.UnboundSym "fail")
-                                                                                                                                                                                                                                                                                                                    applyWrapper aw_206 []
-                                                                                                                                                                                                                                                                                          _ -> throwError "if: expected boolean"
-                                                                                                                                                                                                                                                                Atom (B (False)) -> do do let !aw_207 = Types.Atom (Types.UnboundSym "fail")
-                                                                                                                                                                                                                                                                                          applyWrapper aw_207 []
-                                                                                                                                                                                                                                                                _ -> throwError "if: expected boolean")))
-                                                                                                                                                                          !appl_208 <- kl_Parse_shen_LBpatternsRB `pseq` hd kl_Parse_shen_LBpatternsRB
-                                                                                                                                                                          !appl_209 <- appl_208 `pseq` tl appl_208
-                                                                                                                                                                          let !aw_210 = Types.Atom (Types.UnboundSym "shen.hdtl")
-                                                                                                                                                                          !appl_211 <- kl_Parse_shen_LBpatternsRB `pseq` applyWrapper aw_210 [kl_Parse_shen_LBpatternsRB]
-                                                                                                                                                                          let !aw_212 = Types.Atom (Types.UnboundSym "shen.pair")
-                                                                                                                                                                          !appl_213 <- appl_209 `pseq` (appl_211 `pseq` applyWrapper aw_212 [appl_209,
-                                                                                                                                                                                                                                             appl_211])
-                                                                                                                                                                          !appl_214 <- appl_213 `pseq` kl_shen_LBactionRB appl_213
-                                                                                                                                                                          appl_214 `pseq` applyWrapper appl_167 [appl_214]
-                                                                                                                                                    Atom (B (False)) -> do do let !aw_215 = Types.Atom (Types.UnboundSym "fail")
-                                                                                                                                                                              applyWrapper aw_215 []
-                                                                                                                                                    _ -> throwError "if: expected boolean"
-                                                                                                                          Atom (B (False)) -> do do let !aw_216 = Types.Atom (Types.UnboundSym "fail")
-                                                                                                                                                    applyWrapper aw_216 []
-                                                                                                                          _ -> throwError "if: expected boolean")))
-                                  !appl_217 <- kl_V1207 `pseq` kl_shen_LBpatternsRB kl_V1207
-                                  !appl_218 <- appl_217 `pseq` applyWrapper appl_155 [appl_217]
-                                  appl_218 `pseq` applyWrapper appl_0 [appl_218]
-
-kl_shen_fail_if :: Types.KLValue ->
-                   Types.KLValue -> Types.KLContext Types.Env Types.KLValue
-kl_shen_fail_if (!kl_V1210) (!kl_V1211) = do !kl_if_0 <- kl_V1211 `pseq` applyWrapper kl_V1210 [kl_V1211]
-                                             case kl_if_0 of
-                                                 Atom (B (True)) -> do let !aw_1 = Types.Atom (Types.UnboundSym "fail")
-                                                                       applyWrapper aw_1 []
-                                                 Atom (B (False)) -> do do return kl_V1211
-                                                 _ -> throwError "if: expected boolean"
-
-kl_shen_succeedsP :: Types.KLValue ->
-                     Types.KLContext Types.Env Types.KLValue
-kl_shen_succeedsP (!kl_V1217) = do let !aw_0 = Types.Atom (Types.UnboundSym "fail")
-                                   !appl_1 <- applyWrapper aw_0 []
-                                   !kl_if_2 <- kl_V1217 `pseq` (appl_1 `pseq` eq kl_V1217 appl_1)
-                                   case kl_if_2 of
-                                       Atom (B (True)) -> do return (Atom (B False))
-                                       Atom (B (False)) -> do do return (Atom (B True))
-                                       _ -> throwError "if: expected boolean"
-
-kl_shen_LBpatternsRB :: Types.KLValue ->
-                        Types.KLContext Types.Env Types.KLValue
-kl_shen_LBpatternsRB (!kl_V1219) = do let !appl_0 = ApplC (Func "lambda" (Context (\(!kl_YaccParse) -> do let !aw_1 = Types.Atom (Types.UnboundSym "fail")
-                                                                                                          !appl_2 <- applyWrapper aw_1 []
-                                                                                                          !kl_if_3 <- kl_YaccParse `pseq` (appl_2 `pseq` eq kl_YaccParse appl_2)
-                                                                                                          case kl_if_3 of
-                                                                                                              Atom (B (True)) -> do let !appl_4 = ApplC (Func "lambda" (Context (\(!kl_Parse_LBeRB) -> do let !aw_5 = Types.Atom (Types.UnboundSym "fail")
-                                                                                                                                                                                                          !appl_6 <- applyWrapper aw_5 []
-                                                                                                                                                                                                          !appl_7 <- appl_6 `pseq` (kl_Parse_LBeRB `pseq` eq appl_6 kl_Parse_LBeRB)
-                                                                                                                                                                                                          let !aw_8 = Types.Atom (Types.UnboundSym "not")
-                                                                                                                                                                                                          !kl_if_9 <- appl_7 `pseq` applyWrapper aw_8 [appl_7]
-                                                                                                                                                                                                          case kl_if_9 of
-                                                                                                                                                                                                              Atom (B (True)) -> do !appl_10 <- kl_Parse_LBeRB `pseq` hd kl_Parse_LBeRB
-                                                                                                                                                                                                                                    let !aw_11 = Types.Atom (Types.UnboundSym "shen.pair")
-                                                                                                                                                                                                                                    appl_10 `pseq` applyWrapper aw_11 [appl_10,
-                                                                                                                                                                                                                                                                       Types.Atom Types.Nil]
-                                                                                                                                                                                                              Atom (B (False)) -> do do let !aw_12 = Types.Atom (Types.UnboundSym "fail")
-                                                                                                                                                                                                                                        applyWrapper aw_12 []
-                                                                                                                                                                                                              _ -> throwError "if: expected boolean")))
-                                                                                                                                    let !aw_13 = Types.Atom (Types.UnboundSym "<e>")
-                                                                                                                                    !appl_14 <- kl_V1219 `pseq` applyWrapper aw_13 [kl_V1219]
-                                                                                                                                    appl_14 `pseq` applyWrapper appl_4 [appl_14]
-                                                                                                              Atom (B (False)) -> do do return kl_YaccParse
-                                                                                                              _ -> throwError "if: expected boolean")))
-                                      let !appl_15 = ApplC (Func "lambda" (Context (\(!kl_Parse_shen_LBpatternRB) -> do let !aw_16 = Types.Atom (Types.UnboundSym "fail")
-                                                                                                                        !appl_17 <- applyWrapper aw_16 []
-                                                                                                                        !appl_18 <- appl_17 `pseq` (kl_Parse_shen_LBpatternRB `pseq` eq appl_17 kl_Parse_shen_LBpatternRB)
-                                                                                                                        let !aw_19 = Types.Atom (Types.UnboundSym "not")
-                                                                                                                        !kl_if_20 <- appl_18 `pseq` applyWrapper aw_19 [appl_18]
-                                                                                                                        case kl_if_20 of
-                                                                                                                            Atom (B (True)) -> do let !appl_21 = ApplC (Func "lambda" (Context (\(!kl_Parse_shen_LBpatternsRB) -> do let !aw_22 = Types.Atom (Types.UnboundSym "fail")
-                                                                                                                                                                                                                                     !appl_23 <- applyWrapper aw_22 []
-                                                                                                                                                                                                                                     !appl_24 <- appl_23 `pseq` (kl_Parse_shen_LBpatternsRB `pseq` eq appl_23 kl_Parse_shen_LBpatternsRB)
-                                                                                                                                                                                                                                     let !aw_25 = Types.Atom (Types.UnboundSym "not")
-                                                                                                                                                                                                                                     !kl_if_26 <- appl_24 `pseq` applyWrapper aw_25 [appl_24]
-                                                                                                                                                                                                                                     case kl_if_26 of
-                                                                                                                                                                                                                                         Atom (B (True)) -> do !appl_27 <- kl_Parse_shen_LBpatternsRB `pseq` hd kl_Parse_shen_LBpatternsRB
-                                                                                                                                                                                                                                                               let !aw_28 = Types.Atom (Types.UnboundSym "shen.hdtl")
-                                                                                                                                                                                                                                                               !appl_29 <- kl_Parse_shen_LBpatternRB `pseq` applyWrapper aw_28 [kl_Parse_shen_LBpatternRB]
-                                                                                                                                                                                                                                                               let !aw_30 = Types.Atom (Types.UnboundSym "shen.hdtl")
-                                                                                                                                                                                                                                                               !appl_31 <- kl_Parse_shen_LBpatternsRB `pseq` applyWrapper aw_30 [kl_Parse_shen_LBpatternsRB]
-                                                                                                                                                                                                                                                               !appl_32 <- appl_29 `pseq` (appl_31 `pseq` klCons appl_29 appl_31)
-                                                                                                                                                                                                                                                               let !aw_33 = Types.Atom (Types.UnboundSym "shen.pair")
-                                                                                                                                                                                                                                                               appl_27 `pseq` (appl_32 `pseq` applyWrapper aw_33 [appl_27,
-                                                                                                                                                                                                                                                                                                                  appl_32])
-                                                                                                                                                                                                                                         Atom (B (False)) -> do do let !aw_34 = Types.Atom (Types.UnboundSym "fail")
-                                                                                                                                                                                                                                                                   applyWrapper aw_34 []
-                                                                                                                                                                                                                                         _ -> throwError "if: expected boolean")))
-                                                                                                                                                  !appl_35 <- kl_Parse_shen_LBpatternRB `pseq` kl_shen_LBpatternsRB kl_Parse_shen_LBpatternRB
-                                                                                                                                                  appl_35 `pseq` applyWrapper appl_21 [appl_35]
-                                                                                                                            Atom (B (False)) -> do do let !aw_36 = Types.Atom (Types.UnboundSym "fail")
-                                                                                                                                                      applyWrapper aw_36 []
-                                                                                                                            _ -> throwError "if: expected boolean")))
-                                      !appl_37 <- kl_V1219 `pseq` kl_shen_LBpatternRB kl_V1219
-                                      !appl_38 <- appl_37 `pseq` applyWrapper appl_15 [appl_37]
-                                      appl_38 `pseq` applyWrapper appl_0 [appl_38]
-
-kl_shen_LBpatternRB :: Types.KLValue ->
-                       Types.KLContext Types.Env Types.KLValue
-kl_shen_LBpatternRB (!kl_V1226) = do let !appl_0 = ApplC (Func "lambda" (Context (\(!kl_YaccParse) -> do let !aw_1 = Types.Atom (Types.UnboundSym "fail")
-                                                                                                         !appl_2 <- applyWrapper aw_1 []
-                                                                                                         !kl_if_3 <- kl_YaccParse `pseq` (appl_2 `pseq` eq kl_YaccParse appl_2)
-                                                                                                         case kl_if_3 of
-                                                                                                             Atom (B (True)) -> do let !appl_4 = ApplC (Func "lambda" (Context (\(!kl_YaccParse) -> do let !aw_5 = Types.Atom (Types.UnboundSym "fail")
-                                                                                                                                                                                                       !appl_6 <- applyWrapper aw_5 []
-                                                                                                                                                                                                       !kl_if_7 <- kl_YaccParse `pseq` (appl_6 `pseq` eq kl_YaccParse appl_6)
-                                                                                                                                                                                                       case kl_if_7 of
-                                                                                                                                                                                                           Atom (B (True)) -> do let !appl_8 = ApplC (Func "lambda" (Context (\(!kl_YaccParse) -> do let !aw_9 = Types.Atom (Types.UnboundSym "fail")
-                                                                                                                                                                                                                                                                                                     !appl_10 <- applyWrapper aw_9 []
-                                                                                                                                                                                                                                                                                                     !kl_if_11 <- kl_YaccParse `pseq` (appl_10 `pseq` eq kl_YaccParse appl_10)
-                                                                                                                                                                                                                                                                                                     case kl_if_11 of
-                                                                                                                                                                                                                                                                                                         Atom (B (True)) -> do let !appl_12 = ApplC (Func "lambda" (Context (\(!kl_YaccParse) -> do let !aw_13 = Types.Atom (Types.UnboundSym "fail")
-                                                                                                                                                                                                                                                                                                                                                                                                    !appl_14 <- applyWrapper aw_13 []
-                                                                                                                                                                                                                                                                                                                                                                                                    !kl_if_15 <- kl_YaccParse `pseq` (appl_14 `pseq` eq kl_YaccParse appl_14)
-                                                                                                                                                                                                                                                                                                                                                                                                    case kl_if_15 of
-                                                                                                                                                                                                                                                                                                                                                                                                        Atom (B (True)) -> do let !appl_16 = ApplC (Func "lambda" (Context (\(!kl_YaccParse) -> do let !aw_17 = Types.Atom (Types.UnboundSym "fail")
-                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                   !appl_18 <- applyWrapper aw_17 []
-                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                   !kl_if_19 <- kl_YaccParse `pseq` (appl_18 `pseq` eq kl_YaccParse appl_18)
-                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                   case kl_if_19 of
-                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                       Atom (B (True)) -> do let !appl_20 = ApplC (Func "lambda" (Context (\(!kl_YaccParse) -> do let !aw_21 = Types.Atom (Types.UnboundSym "fail")
-                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                  !appl_22 <- applyWrapper aw_21 []
-                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                  !kl_if_23 <- kl_YaccParse `pseq` (appl_22 `pseq` eq kl_YaccParse appl_22)
-                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                  case kl_if_23 of
-                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                      Atom (B (True)) -> do let !appl_24 = ApplC (Func "lambda" (Context (\(!kl_Parse_shen_LBsimple_patternRB) -> do let !aw_25 = Types.Atom (Types.UnboundSym "fail")
-                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                     !appl_26 <- applyWrapper aw_25 []
-                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                     !appl_27 <- appl_26 `pseq` (kl_Parse_shen_LBsimple_patternRB `pseq` eq appl_26 kl_Parse_shen_LBsimple_patternRB)
-                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                     let !aw_28 = Types.Atom (Types.UnboundSym "not")
-                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                     !kl_if_29 <- appl_27 `pseq` applyWrapper aw_28 [appl_27]
-                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                     case kl_if_29 of
-                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                         Atom (B (True)) -> do !appl_30 <- kl_Parse_shen_LBsimple_patternRB `pseq` hd kl_Parse_shen_LBsimple_patternRB
-                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                               let !aw_31 = Types.Atom (Types.UnboundSym "shen.hdtl")
-                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                               !appl_32 <- kl_Parse_shen_LBsimple_patternRB `pseq` applyWrapper aw_31 [kl_Parse_shen_LBsimple_patternRB]
-                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                               let !aw_33 = Types.Atom (Types.UnboundSym "shen.pair")
-                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                               appl_30 `pseq` (appl_32 `pseq` applyWrapper aw_33 [appl_30,
-                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                  appl_32])
-                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                         Atom (B (False)) -> do do let !aw_34 = Types.Atom (Types.UnboundSym "fail")
-                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                   applyWrapper aw_34 []
-                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                         _ -> throwError "if: expected boolean")))
-                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                            !appl_35 <- kl_V1226 `pseq` kl_shen_LBsimple_patternRB kl_V1226
-                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                            appl_35 `pseq` applyWrapper appl_24 [appl_35]
-                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                      Atom (B (False)) -> do do return kl_YaccParse
-                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                      _ -> throwError "if: expected boolean")))
-                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                             !appl_36 <- kl_V1226 `pseq` hd kl_V1226
-                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                             !kl_if_37 <- appl_36 `pseq` consP appl_36
-                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                             !appl_38 <- case kl_if_37 of
-                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                             Atom (B (True)) -> do let !appl_39 = ApplC (Func "lambda" (Context (\(!kl_Parse_X) -> do let pat_cond_40 kl_Parse_X kl_Parse_Xh kl_Parse_Xt = do !appl_41 <- kl_V1226 `pseq` hd kl_V1226
-                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                              !appl_42 <- appl_41 `pseq` tl appl_41
-                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                              let !aw_43 = Types.Atom (Types.UnboundSym "shen.hdtl")
-                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                              !appl_44 <- kl_V1226 `pseq` applyWrapper aw_43 [kl_V1226]
-                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                              let !aw_45 = Types.Atom (Types.UnboundSym "shen.pair")
-                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                              !appl_46 <- appl_42 `pseq` (appl_44 `pseq` applyWrapper aw_45 [appl_42,
-                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                             appl_44])
-                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                              !appl_47 <- appl_46 `pseq` hd appl_46
-                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                              !appl_48 <- kl_Parse_X `pseq` kl_shen_constructor_error kl_Parse_X
-                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                              let !aw_49 = Types.Atom (Types.UnboundSym "shen.pair")
-                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                              appl_47 `pseq` (appl_48 `pseq` applyWrapper aw_49 [appl_47,
-                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                 appl_48])
-                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                          pat_cond_50 = do do let !aw_51 = Types.Atom (Types.UnboundSym "fail")
-                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                              applyWrapper aw_51 []
-                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                       in case kl_Parse_X of
-                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                              !(kl_Parse_X@(Cons (!kl_Parse_Xh)
-                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                 (!kl_Parse_Xt))) -> pat_cond_40 kl_Parse_X kl_Parse_Xh kl_Parse_Xt
-                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                              _ -> pat_cond_50)))
-                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                   !appl_52 <- kl_V1226 `pseq` hd kl_V1226
-                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                   !appl_53 <- appl_52 `pseq` hd appl_52
-                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                   appl_53 `pseq` applyWrapper appl_39 [appl_53]
-                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                             Atom (B (False)) -> do do let !aw_54 = Types.Atom (Types.UnboundSym "fail")
-                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                       applyWrapper aw_54 []
-                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                             _ -> throwError "if: expected boolean"
-                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                             appl_38 `pseq` applyWrapper appl_20 [appl_38]
-                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                       Atom (B (False)) -> do do return kl_YaccParse
-                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                       _ -> throwError "if: expected boolean")))
-                                                                                                                                                                                                                                                                                                                                                                                                                              !appl_55 <- kl_V1226 `pseq` hd kl_V1226
-                                                                                                                                                                                                                                                                                                                                                                                                                              !kl_if_56 <- appl_55 `pseq` consP appl_55
-                                                                                                                                                                                                                                                                                                                                                                                                                              !kl_if_57 <- case kl_if_56 of
-                                                                                                                                                                                                                                                                                                                                                                                                                                               Atom (B (True)) -> do !appl_58 <- kl_V1226 `pseq` hd kl_V1226
-                                                                                                                                                                                                                                                                                                                                                                                                                                                                     !appl_59 <- appl_58 `pseq` hd appl_58
-                                                                                                                                                                                                                                                                                                                                                                                                                                                                     !kl_if_60 <- appl_59 `pseq` consP appl_59
-                                                                                                                                                                                                                                                                                                                                                                                                                                                                     case kl_if_60 of
-                                                                                                                                                                                                                                                                                                                                                                                                                                                                         Atom (B (True)) -> do return (Atom (B True))
-                                                                                                                                                                                                                                                                                                                                                                                                                                                                         Atom (B (False)) -> do do return (Atom (B False))
-                                                                                                                                                                                                                                                                                                                                                                                                                                                                         _ -> throwError "if: expected boolean"
-                                                                                                                                                                                                                                                                                                                                                                                                                                               Atom (B (False)) -> do do return (Atom (B False))
-                                                                                                                                                                                                                                                                                                                                                                                                                                               _ -> throwError "if: expected boolean"
-                                                                                                                                                                                                                                                                                                                                                                                                                              !appl_61 <- case kl_if_57 of
-                                                                                                                                                                                                                                                                                                                                                                                                                                              Atom (B (True)) -> do !appl_62 <- kl_V1226 `pseq` hd kl_V1226
-                                                                                                                                                                                                                                                                                                                                                                                                                                                                    !appl_63 <- appl_62 `pseq` hd appl_62
-                                                                                                                                                                                                                                                                                                                                                                                                                                                                    !appl_64 <- kl_V1226 `pseq` tl kl_V1226
-                                                                                                                                                                                                                                                                                                                                                                                                                                                                    !appl_65 <- appl_64 `pseq` hd appl_64
-                                                                                                                                                                                                                                                                                                                                                                                                                                                                    let !aw_66 = Types.Atom (Types.UnboundSym "shen.pair")
-                                                                                                                                                                                                                                                                                                                                                                                                                                                                    !appl_67 <- appl_63 `pseq` (appl_65 `pseq` applyWrapper aw_66 [appl_63,
-                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                   appl_65])
-                                                                                                                                                                                                                                                                                                                                                                                                                                                                    !appl_68 <- appl_67 `pseq` hd appl_67
-                                                                                                                                                                                                                                                                                                                                                                                                                                                                    !kl_if_69 <- appl_68 `pseq` consP appl_68
-                                                                                                                                                                                                                                                                                                                                                                                                                                                                    !kl_if_70 <- case kl_if_69 of
-                                                                                                                                                                                                                                                                                                                                                                                                                                                                                     Atom (B (True)) -> do !appl_71 <- kl_V1226 `pseq` hd kl_V1226
-                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                           !appl_72 <- appl_71 `pseq` hd appl_71
-                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                           !appl_73 <- kl_V1226 `pseq` tl kl_V1226
-                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                           !appl_74 <- appl_73 `pseq` hd appl_73
-                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                           let !aw_75 = Types.Atom (Types.UnboundSym "shen.pair")
-                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                           !appl_76 <- appl_72 `pseq` (appl_74 `pseq` applyWrapper aw_75 [appl_72,
-                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                          appl_74])
-                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                           !appl_77 <- appl_76 `pseq` hd appl_76
-                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                           !appl_78 <- appl_77 `pseq` hd appl_77
-                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                           !kl_if_79 <- appl_78 `pseq` eq (Types.Atom (Types.UnboundSym "vector")) appl_78
-                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                           case kl_if_79 of
-                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                               Atom (B (True)) -> do return (Atom (B True))
-                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                               Atom (B (False)) -> do do return (Atom (B False))
-                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                               _ -> throwError "if: expected boolean"
-                                                                                                                                                                                                                                                                                                                                                                                                                                                                                     Atom (B (False)) -> do do return (Atom (B False))
-                                                                                                                                                                                                                                                                                                                                                                                                                                                                                     _ -> throwError "if: expected boolean"
-                                                                                                                                                                                                                                                                                                                                                                                                                                                                    case kl_if_70 of
-                                                                                                                                                                                                                                                                                                                                                                                                                                                                        Atom (B (True)) -> do !appl_80 <- kl_V1226 `pseq` hd kl_V1226
-                                                                                                                                                                                                                                                                                                                                                                                                                                                                                              !appl_81 <- appl_80 `pseq` hd appl_80
-                                                                                                                                                                                                                                                                                                                                                                                                                                                                                              !appl_82 <- kl_V1226 `pseq` tl kl_V1226
-                                                                                                                                                                                                                                                                                                                                                                                                                                                                                              !appl_83 <- appl_82 `pseq` hd appl_82
-                                                                                                                                                                                                                                                                                                                                                                                                                                                                                              let !aw_84 = Types.Atom (Types.UnboundSym "shen.pair")
-                                                                                                                                                                                                                                                                                                                                                                                                                                                                                              !appl_85 <- appl_81 `pseq` (appl_83 `pseq` applyWrapper aw_84 [appl_81,
-                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                             appl_83])
-                                                                                                                                                                                                                                                                                                                                                                                                                                                                                              !appl_86 <- appl_85 `pseq` hd appl_85
-                                                                                                                                                                                                                                                                                                                                                                                                                                                                                              !appl_87 <- appl_86 `pseq` tl appl_86
-                                                                                                                                                                                                                                                                                                                                                                                                                                                                                              !appl_88 <- kl_V1226 `pseq` hd kl_V1226
-                                                                                                                                                                                                                                                                                                                                                                                                                                                                                              !appl_89 <- appl_88 `pseq` hd appl_88
-                                                                                                                                                                                                                                                                                                                                                                                                                                                                                              !appl_90 <- kl_V1226 `pseq` tl kl_V1226
-                                                                                                                                                                                                                                                                                                                                                                                                                                                                                              !appl_91 <- appl_90 `pseq` hd appl_90
-                                                                                                                                                                                                                                                                                                                                                                                                                                                                                              let !aw_92 = Types.Atom (Types.UnboundSym "shen.pair")
-                                                                                                                                                                                                                                                                                                                                                                                                                                                                                              !appl_93 <- appl_89 `pseq` (appl_91 `pseq` applyWrapper aw_92 [appl_89,
-                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                             appl_91])
-                                                                                                                                                                                                                                                                                                                                                                                                                                                                                              let !aw_94 = Types.Atom (Types.UnboundSym "shen.hdtl")
-                                                                                                                                                                                                                                                                                                                                                                                                                                                                                              !appl_95 <- appl_93 `pseq` applyWrapper aw_94 [appl_93]
-                                                                                                                                                                                                                                                                                                                                                                                                                                                                                              let !aw_96 = Types.Atom (Types.UnboundSym "shen.pair")
-                                                                                                                                                                                                                                                                                                                                                                                                                                                                                              !appl_97 <- appl_87 `pseq` (appl_95 `pseq` applyWrapper aw_96 [appl_87,
-                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                             appl_95])
-                                                                                                                                                                                                                                                                                                                                                                                                                                                                                              !appl_98 <- appl_97 `pseq` hd appl_97
-                                                                                                                                                                                                                                                                                                                                                                                                                                                                                              !kl_if_99 <- appl_98 `pseq` consP appl_98
-                                                                                                                                                                                                                                                                                                                                                                                                                                                                                              !kl_if_100 <- case kl_if_99 of
-                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                Atom (B (True)) -> do !appl_101 <- kl_V1226 `pseq` hd kl_V1226
-                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                      !appl_102 <- appl_101 `pseq` hd appl_101
-                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                      !appl_103 <- kl_V1226 `pseq` tl kl_V1226
-                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                      !appl_104 <- appl_103 `pseq` hd appl_103
-                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                      let !aw_105 = Types.Atom (Types.UnboundSym "shen.pair")
-                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                      !appl_106 <- appl_102 `pseq` (appl_104 `pseq` applyWrapper aw_105 [appl_102,
-                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                         appl_104])
-                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                      !appl_107 <- appl_106 `pseq` hd appl_106
-                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                      !appl_108 <- appl_107 `pseq` tl appl_107
-                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                      !appl_109 <- kl_V1226 `pseq` hd kl_V1226
-                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                      !appl_110 <- appl_109 `pseq` hd appl_109
-                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                      !appl_111 <- kl_V1226 `pseq` tl kl_V1226
-                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                      !appl_112 <- appl_111 `pseq` hd appl_111
-                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                      let !aw_113 = Types.Atom (Types.UnboundSym "shen.pair")
-                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                      !appl_114 <- appl_110 `pseq` (appl_112 `pseq` applyWrapper aw_113 [appl_110,
-                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                         appl_112])
-                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                      let !aw_115 = Types.Atom (Types.UnboundSym "shen.hdtl")
-                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                      !appl_116 <- appl_114 `pseq` applyWrapper aw_115 [appl_114]
-                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                      let !aw_117 = Types.Atom (Types.UnboundSym "shen.pair")
-                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                      !appl_118 <- appl_108 `pseq` (appl_116 `pseq` applyWrapper aw_117 [appl_108,
-                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                         appl_116])
-                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                      !appl_119 <- appl_118 `pseq` hd appl_118
-                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                      !appl_120 <- appl_119 `pseq` hd appl_119
-                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                      !kl_if_121 <- appl_120 `pseq` eq (Types.Atom (Types.N (Types.KI 0))) appl_120
-                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                      case kl_if_121 of
-                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                          Atom (B (True)) -> do return (Atom (B True))
-                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                          Atom (B (False)) -> do do return (Atom (B False))
-                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                          _ -> throwError "if: expected boolean"
-                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                Atom (B (False)) -> do do return (Atom (B False))
-                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                _ -> throwError "if: expected boolean"
-                                                                                                                                                                                                                                                                                                                                                                                                                                                                                              case kl_if_100 of
-                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                  Atom (B (True)) -> do !appl_122 <- kl_V1226 `pseq` hd kl_V1226
-                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                        !appl_123 <- appl_122 `pseq` tl appl_122
-                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                        !appl_124 <- kl_V1226 `pseq` tl kl_V1226
-                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                        !appl_125 <- appl_124 `pseq` hd appl_124
-                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                        let !aw_126 = Types.Atom (Types.UnboundSym "shen.pair")
-                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                        !appl_127 <- appl_123 `pseq` (appl_125 `pseq` applyWrapper aw_126 [appl_123,
-                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                           appl_125])
-                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                        !appl_128 <- appl_127 `pseq` hd appl_127
-                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                        !appl_129 <- klCons (Types.Atom (Types.N (Types.KI 0))) (Types.Atom Types.Nil)
-                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                        !appl_130 <- appl_129 `pseq` klCons (Types.Atom (Types.UnboundSym "vector")) appl_129
-                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                        let !aw_131 = Types.Atom (Types.UnboundSym "shen.pair")
-                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                        appl_128 `pseq` (appl_130 `pseq` applyWrapper aw_131 [appl_128,
-                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                              appl_130])
-                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                  Atom (B (False)) -> do do let !aw_132 = Types.Atom (Types.UnboundSym "fail")
-                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                            applyWrapper aw_132 []
-                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                  _ -> throwError "if: expected boolean"
-                                                                                                                                                                                                                                                                                                                                                                                                                                                                        Atom (B (False)) -> do do let !aw_133 = Types.Atom (Types.UnboundSym "fail")
-                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                  applyWrapper aw_133 []
-                                                                                                                                                                                                                                                                                                                                                                                                                                                                        _ -> throwError "if: expected boolean"
-                                                                                                                                                                                                                                                                                                                                                                                                                                              Atom (B (False)) -> do do let !aw_134 = Types.Atom (Types.UnboundSym "fail")
-                                                                                                                                                                                                                                                                                                                                                                                                                                                                        applyWrapper aw_134 []
-                                                                                                                                                                                                                                                                                                                                                                                                                                              _ -> throwError "if: expected boolean"
-                                                                                                                                                                                                                                                                                                                                                                                                                              appl_61 `pseq` applyWrapper appl_16 [appl_61]
-                                                                                                                                                                                                                                                                                                                                                                                                        Atom (B (False)) -> do do return kl_YaccParse
-                                                                                                                                                                                                                                                                                                                                                                                                        _ -> throwError "if: expected boolean")))
-                                                                                                                                                                                                                                                                                                                               !appl_135 <- kl_V1226 `pseq` hd kl_V1226
-                                                                                                                                                                                                                                                                                                                               !kl_if_136 <- appl_135 `pseq` consP appl_135
-                                                                                                                                                                                                                                                                                                                               !kl_if_137 <- case kl_if_136 of
-                                                                                                                                                                                                                                                                                                                                                 Atom (B (True)) -> do !appl_138 <- kl_V1226 `pseq` hd kl_V1226
-                                                                                                                                                                                                                                                                                                                                                                       !appl_139 <- appl_138 `pseq` hd appl_138
-                                                                                                                                                                                                                                                                                                                                                                       !kl_if_140 <- appl_139 `pseq` consP appl_139
-                                                                                                                                                                                                                                                                                                                                                                       case kl_if_140 of
-                                                                                                                                                                                                                                                                                                                                                                           Atom (B (True)) -> do return (Atom (B True))
-                                                                                                                                                                                                                                                                                                                                                                           Atom (B (False)) -> do do return (Atom (B False))
-                                                                                                                                                                                                                                                                                                                                                                           _ -> throwError "if: expected boolean"
-                                                                                                                                                                                                                                                                                                                                                 Atom (B (False)) -> do do return (Atom (B False))
-                                                                                                                                                                                                                                                                                                                                                 _ -> throwError "if: expected boolean"
-                                                                                                                                                                                                                                                                                                                               !appl_141 <- case kl_if_137 of
-                                                                                                                                                                                                                                                                                                                                                Atom (B (True)) -> do !appl_142 <- kl_V1226 `pseq` hd kl_V1226
-                                                                                                                                                                                                                                                                                                                                                                      !appl_143 <- appl_142 `pseq` hd appl_142
-                                                                                                                                                                                                                                                                                                                                                                      !appl_144 <- kl_V1226 `pseq` tl kl_V1226
-                                                                                                                                                                                                                                                                                                                                                                      !appl_145 <- appl_144 `pseq` hd appl_144
-                                                                                                                                                                                                                                                                                                                                                                      let !aw_146 = Types.Atom (Types.UnboundSym "shen.pair")
-                                                                                                                                                                                                                                                                                                                                                                      !appl_147 <- appl_143 `pseq` (appl_145 `pseq` applyWrapper aw_146 [appl_143,
-                                                                                                                                                                                                                                                                                                                                                                                                                                         appl_145])
-                                                                                                                                                                                                                                                                                                                                                                      !appl_148 <- appl_147 `pseq` hd appl_147
-                                                                                                                                                                                                                                                                                                                                                                      !kl_if_149 <- appl_148 `pseq` consP appl_148
-                                                                                                                                                                                                                                                                                                                                                                      !kl_if_150 <- case kl_if_149 of
-                                                                                                                                                                                                                                                                                                                                                                                        Atom (B (True)) -> do !appl_151 <- kl_V1226 `pseq` hd kl_V1226
-                                                                                                                                                                                                                                                                                                                                                                                                              !appl_152 <- appl_151 `pseq` hd appl_151
-                                                                                                                                                                                                                                                                                                                                                                                                              !appl_153 <- kl_V1226 `pseq` tl kl_V1226
-                                                                                                                                                                                                                                                                                                                                                                                                              !appl_154 <- appl_153 `pseq` hd appl_153
-                                                                                                                                                                                                                                                                                                                                                                                                              let !aw_155 = Types.Atom (Types.UnboundSym "shen.pair")
-                                                                                                                                                                                                                                                                                                                                                                                                              !appl_156 <- appl_152 `pseq` (appl_154 `pseq` applyWrapper aw_155 [appl_152,
-                                                                                                                                                                                                                                                                                                                                                                                                                                                                                 appl_154])
-                                                                                                                                                                                                                                                                                                                                                                                                              !appl_157 <- appl_156 `pseq` hd appl_156
-                                                                                                                                                                                                                                                                                                                                                                                                              !appl_158 <- appl_157 `pseq` hd appl_157
-                                                                                                                                                                                                                                                                                                                                                                                                              !kl_if_159 <- appl_158 `pseq` eq (Types.Atom (Types.UnboundSym "@s")) appl_158
-                                                                                                                                                                                                                                                                                                                                                                                                              case kl_if_159 of
-                                                                                                                                                                                                                                                                                                                                                                                                                  Atom (B (True)) -> do return (Atom (B True))
-                                                                                                                                                                                                                                                                                                                                                                                                                  Atom (B (False)) -> do do return (Atom (B False))
-                                                                                                                                                                                                                                                                                                                                                                                                                  _ -> throwError "if: expected boolean"
-                                                                                                                                                                                                                                                                                                                                                                                        Atom (B (False)) -> do do return (Atom (B False))
-                                                                                                                                                                                                                                                                                                                                                                                        _ -> throwError "if: expected boolean"
-                                                                                                                                                                                                                                                                                                                                                                      case kl_if_150 of
-                                                                                                                                                                                                                                                                                                                                                                          Atom (B (True)) -> do let !appl_160 = ApplC (Func "lambda" (Context (\(!kl_Parse_shen_LBpattern1RB) -> do let !aw_161 = Types.Atom (Types.UnboundSym "fail")
-                                                                                                                                                                                                                                                                                                                                                                                                                                                                                    !appl_162 <- applyWrapper aw_161 []
-                                                                                                                                                                                                                                                                                                                                                                                                                                                                                    !appl_163 <- appl_162 `pseq` (kl_Parse_shen_LBpattern1RB `pseq` eq appl_162 kl_Parse_shen_LBpattern1RB)
-                                                                                                                                                                                                                                                                                                                                                                                                                                                                                    let !aw_164 = Types.Atom (Types.UnboundSym "not")
-                                                                                                                                                                                                                                                                                                                                                                                                                                                                                    !kl_if_165 <- appl_163 `pseq` applyWrapper aw_164 [appl_163]
-                                                                                                                                                                                                                                                                                                                                                                                                                                                                                    case kl_if_165 of
-                                                                                                                                                                                                                                                                                                                                                                                                                                                                                        Atom (B (True)) -> do let !appl_166 = ApplC (Func "lambda" (Context (\(!kl_Parse_shen_LBpattern2RB) -> do let !aw_167 = Types.Atom (Types.UnboundSym "fail")
-                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                  !appl_168 <- applyWrapper aw_167 []
-                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                  !appl_169 <- appl_168 `pseq` (kl_Parse_shen_LBpattern2RB `pseq` eq appl_168 kl_Parse_shen_LBpattern2RB)
-                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                  let !aw_170 = Types.Atom (Types.UnboundSym "not")
-                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                  !kl_if_171 <- appl_169 `pseq` applyWrapper aw_170 [appl_169]
-                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                  case kl_if_171 of
-                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                      Atom (B (True)) -> do !appl_172 <- kl_V1226 `pseq` hd kl_V1226
-                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                            !appl_173 <- appl_172 `pseq` tl appl_172
-                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                            !appl_174 <- kl_V1226 `pseq` tl kl_V1226
-                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                            !appl_175 <- appl_174 `pseq` hd appl_174
-                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                            let !aw_176 = Types.Atom (Types.UnboundSym "shen.pair")
-                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                            !appl_177 <- appl_173 `pseq` (appl_175 `pseq` applyWrapper aw_176 [appl_173,
-                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                               appl_175])
-                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                            !appl_178 <- appl_177 `pseq` hd appl_177
-                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                            let !aw_179 = Types.Atom (Types.UnboundSym "shen.hdtl")
-                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                            !appl_180 <- kl_Parse_shen_LBpattern1RB `pseq` applyWrapper aw_179 [kl_Parse_shen_LBpattern1RB]
-                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                            let !aw_181 = Types.Atom (Types.UnboundSym "shen.hdtl")
-                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                            !appl_182 <- kl_Parse_shen_LBpattern2RB `pseq` applyWrapper aw_181 [kl_Parse_shen_LBpattern2RB]
-                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                            !appl_183 <- appl_182 `pseq` klCons appl_182 (Types.Atom Types.Nil)
-                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                            !appl_184 <- appl_180 `pseq` (appl_183 `pseq` klCons appl_180 appl_183)
-                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                            !appl_185 <- appl_184 `pseq` klCons (Types.Atom (Types.UnboundSym "@s")) appl_184
-                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                            let !aw_186 = Types.Atom (Types.UnboundSym "shen.pair")
-                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                            appl_178 `pseq` (appl_185 `pseq` applyWrapper aw_186 [appl_178,
-                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                  appl_185])
-                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                      Atom (B (False)) -> do do let !aw_187 = Types.Atom (Types.UnboundSym "fail")
-                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                applyWrapper aw_187 []
-                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                      _ -> throwError "if: expected boolean")))
-                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                              !appl_188 <- kl_Parse_shen_LBpattern1RB `pseq` kl_shen_LBpattern2RB kl_Parse_shen_LBpattern1RB
-                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                              appl_188 `pseq` applyWrapper appl_166 [appl_188]
-                                                                                                                                                                                                                                                                                                                                                                                                                                                                                        Atom (B (False)) -> do do let !aw_189 = Types.Atom (Types.UnboundSym "fail")
-                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                  applyWrapper aw_189 []
-                                                                                                                                                                                                                                                                                                                                                                                                                                                                                        _ -> throwError "if: expected boolean")))
-                                                                                                                                                                                                                                                                                                                                                                                                !appl_190 <- kl_V1226 `pseq` hd kl_V1226
-                                                                                                                                                                                                                                                                                                                                                                                                !appl_191 <- appl_190 `pseq` hd appl_190
-                                                                                                                                                                                                                                                                                                                                                                                                !appl_192 <- kl_V1226 `pseq` tl kl_V1226
-                                                                                                                                                                                                                                                                                                                                                                                                !appl_193 <- appl_192 `pseq` hd appl_192
-                                                                                                                                                                                                                                                                                                                                                                                                let !aw_194 = Types.Atom (Types.UnboundSym "shen.pair")
-                                                                                                                                                                                                                                                                                                                                                                                                !appl_195 <- appl_191 `pseq` (appl_193 `pseq` applyWrapper aw_194 [appl_191,
-                                                                                                                                                                                                                                                                                                                                                                                                                                                                   appl_193])
-                                                                                                                                                                                                                                                                                                                                                                                                !appl_196 <- appl_195 `pseq` hd appl_195
-                                                                                                                                                                                                                                                                                                                                                                                                !appl_197 <- appl_196 `pseq` tl appl_196
-                                                                                                                                                                                                                                                                                                                                                                                                !appl_198 <- kl_V1226 `pseq` hd kl_V1226
-                                                                                                                                                                                                                                                                                                                                                                                                !appl_199 <- appl_198 `pseq` hd appl_198
-                                                                                                                                                                                                                                                                                                                                                                                                !appl_200 <- kl_V1226 `pseq` tl kl_V1226
-                                                                                                                                                                                                                                                                                                                                                                                                !appl_201 <- appl_200 `pseq` hd appl_200
-                                                                                                                                                                                                                                                                                                                                                                                                let !aw_202 = Types.Atom (Types.UnboundSym "shen.pair")
-                                                                                                                                                                                                                                                                                                                                                                                                !appl_203 <- appl_199 `pseq` (appl_201 `pseq` applyWrapper aw_202 [appl_199,
-                                                                                                                                                                                                                                                                                                                                                                                                                                                                   appl_201])
-                                                                                                                                                                                                                                                                                                                                                                                                let !aw_204 = Types.Atom (Types.UnboundSym "shen.hdtl")
-                                                                                                                                                                                                                                                                                                                                                                                                !appl_205 <- appl_203 `pseq` applyWrapper aw_204 [appl_203]
-                                                                                                                                                                                                                                                                                                                                                                                                let !aw_206 = Types.Atom (Types.UnboundSym "shen.pair")
-                                                                                                                                                                                                                                                                                                                                                                                                !appl_207 <- appl_197 `pseq` (appl_205 `pseq` applyWrapper aw_206 [appl_197,
-                                                                                                                                                                                                                                                                                                                                                                                                                                                                   appl_205])
-                                                                                                                                                                                                                                                                                                                                                                                                !appl_208 <- appl_207 `pseq` kl_shen_LBpattern1RB appl_207
-                                                                                                                                                                                                                                                                                                                                                                                                appl_208 `pseq` applyWrapper appl_160 [appl_208]
-                                                                                                                                                                                                                                                                                                                                                                          Atom (B (False)) -> do do let !aw_209 = Types.Atom (Types.UnboundSym "fail")
-                                                                                                                                                                                                                                                                                                                                                                                                    applyWrapper aw_209 []
-                                                                                                                                                                                                                                                                                                                                                                          _ -> throwError "if: expected boolean"
-                                                                                                                                                                                                                                                                                                                                                Atom (B (False)) -> do do let !aw_210 = Types.Atom (Types.UnboundSym "fail")
-                                                                                                                                                                                                                                                                                                                                                                          applyWrapper aw_210 []
-                                                                                                                                                                                                                                                                                                                                                _ -> throwError "if: expected boolean"
-                                                                                                                                                                                                                                                                                                                               appl_141 `pseq` applyWrapper appl_12 [appl_141]
-                                                                                                                                                                                                                                                                                                         Atom (B (False)) -> do do return kl_YaccParse
-                                                                                                                                                                                                                                                                                                         _ -> throwError "if: expected boolean")))
-                                                                                                                                                                                                                                 !appl_211 <- kl_V1226 `pseq` hd kl_V1226
-                                                                                                                                                                                                                                 !kl_if_212 <- appl_211 `pseq` consP appl_211
-                                                                                                                                                                                                                                 !kl_if_213 <- case kl_if_212 of
-                                                                                                                                                                                                                                                   Atom (B (True)) -> do !appl_214 <- kl_V1226 `pseq` hd kl_V1226
-                                                                                                                                                                                                                                                                         !appl_215 <- appl_214 `pseq` hd appl_214
-                                                                                                                                                                                                                                                                         !kl_if_216 <- appl_215 `pseq` consP appl_215
-                                                                                                                                                                                                                                                                         case kl_if_216 of
-                                                                                                                                                                                                                                                                             Atom (B (True)) -> do return (Atom (B True))
-                                                                                                                                                                                                                                                                             Atom (B (False)) -> do do return (Atom (B False))
-                                                                                                                                                                                                                                                                             _ -> throwError "if: expected boolean"
-                                                                                                                                                                                                                                                   Atom (B (False)) -> do do return (Atom (B False))
-                                                                                                                                                                                                                                                   _ -> throwError "if: expected boolean"
-                                                                                                                                                                                                                                 !appl_217 <- case kl_if_213 of
-                                                                                                                                                                                                                                                  Atom (B (True)) -> do !appl_218 <- kl_V1226 `pseq` hd kl_V1226
-                                                                                                                                                                                                                                                                        !appl_219 <- appl_218 `pseq` hd appl_218
-                                                                                                                                                                                                                                                                        !appl_220 <- kl_V1226 `pseq` tl kl_V1226
-                                                                                                                                                                                                                                                                        !appl_221 <- appl_220 `pseq` hd appl_220
-                                                                                                                                                                                                                                                                        let !aw_222 = Types.Atom (Types.UnboundSym "shen.pair")
-                                                                                                                                                                                                                                                                        !appl_223 <- appl_219 `pseq` (appl_221 `pseq` applyWrapper aw_222 [appl_219,
-                                                                                                                                                                                                                                                                                                                                           appl_221])
-                                                                                                                                                                                                                                                                        !appl_224 <- appl_223 `pseq` hd appl_223
-                                                                                                                                                                                                                                                                        !kl_if_225 <- appl_224 `pseq` consP appl_224
-                                                                                                                                                                                                                                                                        !kl_if_226 <- case kl_if_225 of
-                                                                                                                                                                                                                                                                                          Atom (B (True)) -> do !appl_227 <- kl_V1226 `pseq` hd kl_V1226
-                                                                                                                                                                                                                                                                                                                !appl_228 <- appl_227 `pseq` hd appl_227
-                                                                                                                                                                                                                                                                                                                !appl_229 <- kl_V1226 `pseq` tl kl_V1226
-                                                                                                                                                                                                                                                                                                                !appl_230 <- appl_229 `pseq` hd appl_229
-                                                                                                                                                                                                                                                                                                                let !aw_231 = Types.Atom (Types.UnboundSym "shen.pair")
-                                                                                                                                                                                                                                                                                                                !appl_232 <- appl_228 `pseq` (appl_230 `pseq` applyWrapper aw_231 [appl_228,
-                                                                                                                                                                                                                                                                                                                                                                                   appl_230])
-                                                                                                                                                                                                                                                                                                                !appl_233 <- appl_232 `pseq` hd appl_232
-                                                                                                                                                                                                                                                                                                                !appl_234 <- appl_233 `pseq` hd appl_233
-                                                                                                                                                                                                                                                                                                                !kl_if_235 <- appl_234 `pseq` eq (Types.Atom (Types.UnboundSym "@v")) appl_234
-                                                                                                                                                                                                                                                                                                                case kl_if_235 of
-                                                                                                                                                                                                                                                                                                                    Atom (B (True)) -> do return (Atom (B True))
-                                                                                                                                                                                                                                                                                                                    Atom (B (False)) -> do do return (Atom (B False))
-                                                                                                                                                                                                                                                                                                                    _ -> throwError "if: expected boolean"
-                                                                                                                                                                                                                                                                                          Atom (B (False)) -> do do return (Atom (B False))
-                                                                                                                                                                                                                                                                                          _ -> throwError "if: expected boolean"
-                                                                                                                                                                                                                                                                        case kl_if_226 of
-                                                                                                                                                                                                                                                                            Atom (B (True)) -> do let !appl_236 = ApplC (Func "lambda" (Context (\(!kl_Parse_shen_LBpattern1RB) -> do let !aw_237 = Types.Atom (Types.UnboundSym "fail")
-                                                                                                                                                                                                                                                                                                                                                                                      !appl_238 <- applyWrapper aw_237 []
-                                                                                                                                                                                                                                                                                                                                                                                      !appl_239 <- appl_238 `pseq` (kl_Parse_shen_LBpattern1RB `pseq` eq appl_238 kl_Parse_shen_LBpattern1RB)
-                                                                                                                                                                                                                                                                                                                                                                                      let !aw_240 = Types.Atom (Types.UnboundSym "not")
-                                                                                                                                                                                                                                                                                                                                                                                      !kl_if_241 <- appl_239 `pseq` applyWrapper aw_240 [appl_239]
-                                                                                                                                                                                                                                                                                                                                                                                      case kl_if_241 of
-                                                                                                                                                                                                                                                                                                                                                                                          Atom (B (True)) -> do let !appl_242 = ApplC (Func "lambda" (Context (\(!kl_Parse_shen_LBpattern2RB) -> do let !aw_243 = Types.Atom (Types.UnboundSym "fail")
-                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                    !appl_244 <- applyWrapper aw_243 []
-                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                    !appl_245 <- appl_244 `pseq` (kl_Parse_shen_LBpattern2RB `pseq` eq appl_244 kl_Parse_shen_LBpattern2RB)
-                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                    let !aw_246 = Types.Atom (Types.UnboundSym "not")
-                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                    !kl_if_247 <- appl_245 `pseq` applyWrapper aw_246 [appl_245]
-                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                    case kl_if_247 of
-                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                        Atom (B (True)) -> do !appl_248 <- kl_V1226 `pseq` hd kl_V1226
-                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                              !appl_249 <- appl_248 `pseq` tl appl_248
-                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                              !appl_250 <- kl_V1226 `pseq` tl kl_V1226
-                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                              !appl_251 <- appl_250 `pseq` hd appl_250
-                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                              let !aw_252 = Types.Atom (Types.UnboundSym "shen.pair")
-                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                              !appl_253 <- appl_249 `pseq` (appl_251 `pseq` applyWrapper aw_252 [appl_249,
-                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                 appl_251])
-                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                              !appl_254 <- appl_253 `pseq` hd appl_253
-                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                              let !aw_255 = Types.Atom (Types.UnboundSym "shen.hdtl")
-                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                              !appl_256 <- kl_Parse_shen_LBpattern1RB `pseq` applyWrapper aw_255 [kl_Parse_shen_LBpattern1RB]
-                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                              let !aw_257 = Types.Atom (Types.UnboundSym "shen.hdtl")
-                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                              !appl_258 <- kl_Parse_shen_LBpattern2RB `pseq` applyWrapper aw_257 [kl_Parse_shen_LBpattern2RB]
-                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                              !appl_259 <- appl_258 `pseq` klCons appl_258 (Types.Atom Types.Nil)
-                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                              !appl_260 <- appl_256 `pseq` (appl_259 `pseq` klCons appl_256 appl_259)
-                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                              !appl_261 <- appl_260 `pseq` klCons (Types.Atom (Types.UnboundSym "@v")) appl_260
-                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                              let !aw_262 = Types.Atom (Types.UnboundSym "shen.pair")
-                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                              appl_254 `pseq` (appl_261 `pseq` applyWrapper aw_262 [appl_254,
-                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                    appl_261])
-                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                        Atom (B (False)) -> do do let !aw_263 = Types.Atom (Types.UnboundSym "fail")
-                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                  applyWrapper aw_263 []
-                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                        _ -> throwError "if: expected boolean")))
-                                                                                                                                                                                                                                                                                                                                                                                                                !appl_264 <- kl_Parse_shen_LBpattern1RB `pseq` kl_shen_LBpattern2RB kl_Parse_shen_LBpattern1RB
-                                                                                                                                                                                                                                                                                                                                                                                                                appl_264 `pseq` applyWrapper appl_242 [appl_264]
-                                                                                                                                                                                                                                                                                                                                                                                          Atom (B (False)) -> do do let !aw_265 = Types.Atom (Types.UnboundSym "fail")
-                                                                                                                                                                                                                                                                                                                                                                                                                    applyWrapper aw_265 []
-                                                                                                                                                                                                                                                                                                                                                                                          _ -> throwError "if: expected boolean")))
-                                                                                                                                                                                                                                                                                                  !appl_266 <- kl_V1226 `pseq` hd kl_V1226
-                                                                                                                                                                                                                                                                                                  !appl_267 <- appl_266 `pseq` hd appl_266
-                                                                                                                                                                                                                                                                                                  !appl_268 <- kl_V1226 `pseq` tl kl_V1226
-                                                                                                                                                                                                                                                                                                  !appl_269 <- appl_268 `pseq` hd appl_268
-                                                                                                                                                                                                                                                                                                  let !aw_270 = Types.Atom (Types.UnboundSym "shen.pair")
-                                                                                                                                                                                                                                                                                                  !appl_271 <- appl_267 `pseq` (appl_269 `pseq` applyWrapper aw_270 [appl_267,
-                                                                                                                                                                                                                                                                                                                                                                     appl_269])
-                                                                                                                                                                                                                                                                                                  !appl_272 <- appl_271 `pseq` hd appl_271
-                                                                                                                                                                                                                                                                                                  !appl_273 <- appl_272 `pseq` tl appl_272
-                                                                                                                                                                                                                                                                                                  !appl_274 <- kl_V1226 `pseq` hd kl_V1226
-                                                                                                                                                                                                                                                                                                  !appl_275 <- appl_274 `pseq` hd appl_274
-                                                                                                                                                                                                                                                                                                  !appl_276 <- kl_V1226 `pseq` tl kl_V1226
-                                                                                                                                                                                                                                                                                                  !appl_277 <- appl_276 `pseq` hd appl_276
-                                                                                                                                                                                                                                                                                                  let !aw_278 = Types.Atom (Types.UnboundSym "shen.pair")
-                                                                                                                                                                                                                                                                                                  !appl_279 <- appl_275 `pseq` (appl_277 `pseq` applyWrapper aw_278 [appl_275,
-                                                                                                                                                                                                                                                                                                                                                                     appl_277])
-                                                                                                                                                                                                                                                                                                  let !aw_280 = Types.Atom (Types.UnboundSym "shen.hdtl")
-                                                                                                                                                                                                                                                                                                  !appl_281 <- appl_279 `pseq` applyWrapper aw_280 [appl_279]
-                                                                                                                                                                                                                                                                                                  let !aw_282 = Types.Atom (Types.UnboundSym "shen.pair")
-                                                                                                                                                                                                                                                                                                  !appl_283 <- appl_273 `pseq` (appl_281 `pseq` applyWrapper aw_282 [appl_273,
-                                                                                                                                                                                                                                                                                                                                                                     appl_281])
-                                                                                                                                                                                                                                                                                                  !appl_284 <- appl_283 `pseq` kl_shen_LBpattern1RB appl_283
-                                                                                                                                                                                                                                                                                                  appl_284 `pseq` applyWrapper appl_236 [appl_284]
-                                                                                                                                                                                                                                                                            Atom (B (False)) -> do do let !aw_285 = Types.Atom (Types.UnboundSym "fail")
-                                                                                                                                                                                                                                                                                                      applyWrapper aw_285 []
-                                                                                                                                                                                                                                                                            _ -> throwError "if: expected boolean"
-                                                                                                                                                                                                                                                  Atom (B (False)) -> do do let !aw_286 = Types.Atom (Types.UnboundSym "fail")
-                                                                                                                                                                                                                                                                            applyWrapper aw_286 []
-                                                                                                                                                                                                                                                  _ -> throwError "if: expected boolean"
-                                                                                                                                                                                                                                 appl_217 `pseq` applyWrapper appl_8 [appl_217]
-                                                                                                                                                                                                           Atom (B (False)) -> do do return kl_YaccParse
-                                                                                                                                                                                                           _ -> throwError "if: expected boolean")))
-                                                                                                                                   !appl_287 <- kl_V1226 `pseq` hd kl_V1226
-                                                                                                                                   !kl_if_288 <- appl_287 `pseq` consP appl_287
-                                                                                                                                   !kl_if_289 <- case kl_if_288 of
-                                                                                                                                                     Atom (B (True)) -> do !appl_290 <- kl_V1226 `pseq` hd kl_V1226
-                                                                                                                                                                           !appl_291 <- appl_290 `pseq` hd appl_290
-                                                                                                                                                                           !kl_if_292 <- appl_291 `pseq` consP appl_291
-                                                                                                                                                                           case kl_if_292 of
-                                                                                                                                                                               Atom (B (True)) -> do return (Atom (B True))
-                                                                                                                                                                               Atom (B (False)) -> do do return (Atom (B False))
-                                                                                                                                                                               _ -> throwError "if: expected boolean"
-                                                                                                                                                     Atom (B (False)) -> do do return (Atom (B False))
-                                                                                                                                                     _ -> throwError "if: expected boolean"
-                                                                                                                                   !appl_293 <- case kl_if_289 of
-                                                                                                                                                    Atom (B (True)) -> do !appl_294 <- kl_V1226 `pseq` hd kl_V1226
-                                                                                                                                                                          !appl_295 <- appl_294 `pseq` hd appl_294
-                                                                                                                                                                          !appl_296 <- kl_V1226 `pseq` tl kl_V1226
-                                                                                                                                                                          !appl_297 <- appl_296 `pseq` hd appl_296
-                                                                                                                                                                          let !aw_298 = Types.Atom (Types.UnboundSym "shen.pair")
-                                                                                                                                                                          !appl_299 <- appl_295 `pseq` (appl_297 `pseq` applyWrapper aw_298 [appl_295,
-                                                                                                                                                                                                                                             appl_297])
-                                                                                                                                                                          !appl_300 <- appl_299 `pseq` hd appl_299
-                                                                                                                                                                          !kl_if_301 <- appl_300 `pseq` consP appl_300
-                                                                                                                                                                          !kl_if_302 <- case kl_if_301 of
-                                                                                                                                                                                            Atom (B (True)) -> do !appl_303 <- kl_V1226 `pseq` hd kl_V1226
-                                                                                                                                                                                                                  !appl_304 <- appl_303 `pseq` hd appl_303
-                                                                                                                                                                                                                  !appl_305 <- kl_V1226 `pseq` tl kl_V1226
-                                                                                                                                                                                                                  !appl_306 <- appl_305 `pseq` hd appl_305
-                                                                                                                                                                                                                  let !aw_307 = Types.Atom (Types.UnboundSym "shen.pair")
-                                                                                                                                                                                                                  !appl_308 <- appl_304 `pseq` (appl_306 `pseq` applyWrapper aw_307 [appl_304,
-                                                                                                                                                                                                                                                                                     appl_306])
-                                                                                                                                                                                                                  !appl_309 <- appl_308 `pseq` hd appl_308
-                                                                                                                                                                                                                  !appl_310 <- appl_309 `pseq` hd appl_309
-                                                                                                                                                                                                                  !kl_if_311 <- appl_310 `pseq` eq (ApplC (wrapNamed "cons" klCons)) appl_310
-                                                                                                                                                                                                                  case kl_if_311 of
-                                                                                                                                                                                                                      Atom (B (True)) -> do return (Atom (B True))
-                                                                                                                                                                                                                      Atom (B (False)) -> do do return (Atom (B False))
-                                                                                                                                                                                                                      _ -> throwError "if: expected boolean"
-                                                                                                                                                                                            Atom (B (False)) -> do do return (Atom (B False))
-                                                                                                                                                                                            _ -> throwError "if: expected boolean"
-                                                                                                                                                                          case kl_if_302 of
-                                                                                                                                                                              Atom (B (True)) -> do let !appl_312 = ApplC (Func "lambda" (Context (\(!kl_Parse_shen_LBpattern1RB) -> do let !aw_313 = Types.Atom (Types.UnboundSym "fail")
-                                                                                                                                                                                                                                                                                        !appl_314 <- applyWrapper aw_313 []
-                                                                                                                                                                                                                                                                                        !appl_315 <- appl_314 `pseq` (kl_Parse_shen_LBpattern1RB `pseq` eq appl_314 kl_Parse_shen_LBpattern1RB)
-                                                                                                                                                                                                                                                                                        let !aw_316 = Types.Atom (Types.UnboundSym "not")
-                                                                                                                                                                                                                                                                                        !kl_if_317 <- appl_315 `pseq` applyWrapper aw_316 [appl_315]
-                                                                                                                                                                                                                                                                                        case kl_if_317 of
-                                                                                                                                                                                                                                                                                            Atom (B (True)) -> do let !appl_318 = ApplC (Func "lambda" (Context (\(!kl_Parse_shen_LBpattern2RB) -> do let !aw_319 = Types.Atom (Types.UnboundSym "fail")
-                                                                                                                                                                                                                                                                                                                                                                                                      !appl_320 <- applyWrapper aw_319 []
-                                                                                                                                                                                                                                                                                                                                                                                                      !appl_321 <- appl_320 `pseq` (kl_Parse_shen_LBpattern2RB `pseq` eq appl_320 kl_Parse_shen_LBpattern2RB)
-                                                                                                                                                                                                                                                                                                                                                                                                      let !aw_322 = Types.Atom (Types.UnboundSym "not")
-                                                                                                                                                                                                                                                                                                                                                                                                      !kl_if_323 <- appl_321 `pseq` applyWrapper aw_322 [appl_321]
-                                                                                                                                                                                                                                                                                                                                                                                                      case kl_if_323 of
-                                                                                                                                                                                                                                                                                                                                                                                                          Atom (B (True)) -> do !appl_324 <- kl_V1226 `pseq` hd kl_V1226
-                                                                                                                                                                                                                                                                                                                                                                                                                                !appl_325 <- appl_324 `pseq` tl appl_324
-                                                                                                                                                                                                                                                                                                                                                                                                                                !appl_326 <- kl_V1226 `pseq` tl kl_V1226
-                                                                                                                                                                                                                                                                                                                                                                                                                                !appl_327 <- appl_326 `pseq` hd appl_326
-                                                                                                                                                                                                                                                                                                                                                                                                                                let !aw_328 = Types.Atom (Types.UnboundSym "shen.pair")
-                                                                                                                                                                                                                                                                                                                                                                                                                                !appl_329 <- appl_325 `pseq` (appl_327 `pseq` applyWrapper aw_328 [appl_325,
-                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                   appl_327])
-                                                                                                                                                                                                                                                                                                                                                                                                                                !appl_330 <- appl_329 `pseq` hd appl_329
-                                                                                                                                                                                                                                                                                                                                                                                                                                let !aw_331 = Types.Atom (Types.UnboundSym "shen.hdtl")
-                                                                                                                                                                                                                                                                                                                                                                                                                                !appl_332 <- kl_Parse_shen_LBpattern1RB `pseq` applyWrapper aw_331 [kl_Parse_shen_LBpattern1RB]
-                                                                                                                                                                                                                                                                                                                                                                                                                                let !aw_333 = Types.Atom (Types.UnboundSym "shen.hdtl")
-                                                                                                                                                                                                                                                                                                                                                                                                                                !appl_334 <- kl_Parse_shen_LBpattern2RB `pseq` applyWrapper aw_333 [kl_Parse_shen_LBpattern2RB]
-                                                                                                                                                                                                                                                                                                                                                                                                                                !appl_335 <- appl_334 `pseq` klCons appl_334 (Types.Atom Types.Nil)
-                                                                                                                                                                                                                                                                                                                                                                                                                                !appl_336 <- appl_332 `pseq` (appl_335 `pseq` klCons appl_332 appl_335)
-                                                                                                                                                                                                                                                                                                                                                                                                                                !appl_337 <- appl_336 `pseq` klCons (ApplC (wrapNamed "cons" klCons)) appl_336
-                                                                                                                                                                                                                                                                                                                                                                                                                                let !aw_338 = Types.Atom (Types.UnboundSym "shen.pair")
-                                                                                                                                                                                                                                                                                                                                                                                                                                appl_330 `pseq` (appl_337 `pseq` applyWrapper aw_338 [appl_330,
-                                                                                                                                                                                                                                                                                                                                                                                                                                                                                      appl_337])
-                                                                                                                                                                                                                                                                                                                                                                                                          Atom (B (False)) -> do do let !aw_339 = Types.Atom (Types.UnboundSym "fail")
-                                                                                                                                                                                                                                                                                                                                                                                                                                    applyWrapper aw_339 []
-                                                                                                                                                                                                                                                                                                                                                                                                          _ -> throwError "if: expected boolean")))
-                                                                                                                                                                                                                                                                                                                  !appl_340 <- kl_Parse_shen_LBpattern1RB `pseq` kl_shen_LBpattern2RB kl_Parse_shen_LBpattern1RB
-                                                                                                                                                                                                                                                                                                                  appl_340 `pseq` applyWrapper appl_318 [appl_340]
-                                                                                                                                                                                                                                                                                            Atom (B (False)) -> do do let !aw_341 = Types.Atom (Types.UnboundSym "fail")
-                                                                                                                                                                                                                                                                                                                      applyWrapper aw_341 []
-                                                                                                                                                                                                                                                                                            _ -> throwError "if: expected boolean")))
-                                                                                                                                                                                                    !appl_342 <- kl_V1226 `pseq` hd kl_V1226
-                                                                                                                                                                                                    !appl_343 <- appl_342 `pseq` hd appl_342
-                                                                                                                                                                                                    !appl_344 <- kl_V1226 `pseq` tl kl_V1226
-                                                                                                                                                                                                    !appl_345 <- appl_344 `pseq` hd appl_344
-                                                                                                                                                                                                    let !aw_346 = Types.Atom (Types.UnboundSym "shen.pair")
-                                                                                                                                                                                                    !appl_347 <- appl_343 `pseq` (appl_345 `pseq` applyWrapper aw_346 [appl_343,
-                                                                                                                                                                                                                                                                       appl_345])
-                                                                                                                                                                                                    !appl_348 <- appl_347 `pseq` hd appl_347
-                                                                                                                                                                                                    !appl_349 <- appl_348 `pseq` tl appl_348
-                                                                                                                                                                                                    !appl_350 <- kl_V1226 `pseq` hd kl_V1226
-                                                                                                                                                                                                    !appl_351 <- appl_350 `pseq` hd appl_350
-                                                                                                                                                                                                    !appl_352 <- kl_V1226 `pseq` tl kl_V1226
-                                                                                                                                                                                                    !appl_353 <- appl_352 `pseq` hd appl_352
-                                                                                                                                                                                                    let !aw_354 = Types.Atom (Types.UnboundSym "shen.pair")
-                                                                                                                                                                                                    !appl_355 <- appl_351 `pseq` (appl_353 `pseq` applyWrapper aw_354 [appl_351,
-                                                                                                                                                                                                                                                                       appl_353])
-                                                                                                                                                                                                    let !aw_356 = Types.Atom (Types.UnboundSym "shen.hdtl")
-                                                                                                                                                                                                    !appl_357 <- appl_355 `pseq` applyWrapper aw_356 [appl_355]
-                                                                                                                                                                                                    let !aw_358 = Types.Atom (Types.UnboundSym "shen.pair")
-                                                                                                                                                                                                    !appl_359 <- appl_349 `pseq` (appl_357 `pseq` applyWrapper aw_358 [appl_349,
-                                                                                                                                                                                                                                                                       appl_357])
-                                                                                                                                                                                                    !appl_360 <- appl_359 `pseq` kl_shen_LBpattern1RB appl_359
-                                                                                                                                                                                                    appl_360 `pseq` applyWrapper appl_312 [appl_360]
-                                                                                                                                                                              Atom (B (False)) -> do do let !aw_361 = Types.Atom (Types.UnboundSym "fail")
-                                                                                                                                                                                                        applyWrapper aw_361 []
-                                                                                                                                                                              _ -> throwError "if: expected boolean"
-                                                                                                                                                    Atom (B (False)) -> do do let !aw_362 = Types.Atom (Types.UnboundSym "fail")
-                                                                                                                                                                              applyWrapper aw_362 []
-                                                                                                                                                    _ -> throwError "if: expected boolean"
-                                                                                                                                   appl_293 `pseq` applyWrapper appl_4 [appl_293]
-                                                                                                             Atom (B (False)) -> do do return kl_YaccParse
-                                                                                                             _ -> throwError "if: expected boolean")))
-                                     !appl_363 <- kl_V1226 `pseq` hd kl_V1226
-                                     !kl_if_364 <- appl_363 `pseq` consP appl_363
-                                     !kl_if_365 <- case kl_if_364 of
-                                                       Atom (B (True)) -> do !appl_366 <- kl_V1226 `pseq` hd kl_V1226
-                                                                             !appl_367 <- appl_366 `pseq` hd appl_366
-                                                                             !kl_if_368 <- appl_367 `pseq` consP appl_367
-                                                                             case kl_if_368 of
-                                                                                 Atom (B (True)) -> do return (Atom (B True))
-                                                                                 Atom (B (False)) -> do do return (Atom (B False))
-                                                                                 _ -> throwError "if: expected boolean"
-                                                       Atom (B (False)) -> do do return (Atom (B False))
-                                                       _ -> throwError "if: expected boolean"
-                                     !appl_369 <- case kl_if_365 of
-                                                      Atom (B (True)) -> do !appl_370 <- kl_V1226 `pseq` hd kl_V1226
-                                                                            !appl_371 <- appl_370 `pseq` hd appl_370
-                                                                            !appl_372 <- kl_V1226 `pseq` tl kl_V1226
-                                                                            !appl_373 <- appl_372 `pseq` hd appl_372
-                                                                            let !aw_374 = Types.Atom (Types.UnboundSym "shen.pair")
-                                                                            !appl_375 <- appl_371 `pseq` (appl_373 `pseq` applyWrapper aw_374 [appl_371,
-                                                                                                                                               appl_373])
-                                                                            !appl_376 <- appl_375 `pseq` hd appl_375
-                                                                            !kl_if_377 <- appl_376 `pseq` consP appl_376
-                                                                            !kl_if_378 <- case kl_if_377 of
-                                                                                              Atom (B (True)) -> do !appl_379 <- kl_V1226 `pseq` hd kl_V1226
-                                                                                                                    !appl_380 <- appl_379 `pseq` hd appl_379
-                                                                                                                    !appl_381 <- kl_V1226 `pseq` tl kl_V1226
-                                                                                                                    !appl_382 <- appl_381 `pseq` hd appl_381
-                                                                                                                    let !aw_383 = Types.Atom (Types.UnboundSym "shen.pair")
-                                                                                                                    !appl_384 <- appl_380 `pseq` (appl_382 `pseq` applyWrapper aw_383 [appl_380,
-                                                                                                                                                                                       appl_382])
-                                                                                                                    !appl_385 <- appl_384 `pseq` hd appl_384
-                                                                                                                    !appl_386 <- appl_385 `pseq` hd appl_385
-                                                                                                                    !kl_if_387 <- appl_386 `pseq` eq (Types.Atom (Types.UnboundSym "@p")) appl_386
-                                                                                                                    case kl_if_387 of
-                                                                                                                        Atom (B (True)) -> do return (Atom (B True))
-                                                                                                                        Atom (B (False)) -> do do return (Atom (B False))
-                                                                                                                        _ -> throwError "if: expected boolean"
-                                                                                              Atom (B (False)) -> do do return (Atom (B False))
-                                                                                              _ -> throwError "if: expected boolean"
-                                                                            case kl_if_378 of
-                                                                                Atom (B (True)) -> do let !appl_388 = ApplC (Func "lambda" (Context (\(!kl_Parse_shen_LBpattern1RB) -> do let !aw_389 = Types.Atom (Types.UnboundSym "fail")
-                                                                                                                                                                                          !appl_390 <- applyWrapper aw_389 []
-                                                                                                                                                                                          !appl_391 <- appl_390 `pseq` (kl_Parse_shen_LBpattern1RB `pseq` eq appl_390 kl_Parse_shen_LBpattern1RB)
-                                                                                                                                                                                          let !aw_392 = Types.Atom (Types.UnboundSym "not")
-                                                                                                                                                                                          !kl_if_393 <- appl_391 `pseq` applyWrapper aw_392 [appl_391]
-                                                                                                                                                                                          case kl_if_393 of
-                                                                                                                                                                                              Atom (B (True)) -> do let !appl_394 = ApplC (Func "lambda" (Context (\(!kl_Parse_shen_LBpattern2RB) -> do let !aw_395 = Types.Atom (Types.UnboundSym "fail")
-                                                                                                                                                                                                                                                                                                        !appl_396 <- applyWrapper aw_395 []
-                                                                                                                                                                                                                                                                                                        !appl_397 <- appl_396 `pseq` (kl_Parse_shen_LBpattern2RB `pseq` eq appl_396 kl_Parse_shen_LBpattern2RB)
-                                                                                                                                                                                                                                                                                                        let !aw_398 = Types.Atom (Types.UnboundSym "not")
-                                                                                                                                                                                                                                                                                                        !kl_if_399 <- appl_397 `pseq` applyWrapper aw_398 [appl_397]
-                                                                                                                                                                                                                                                                                                        case kl_if_399 of
-                                                                                                                                                                                                                                                                                                            Atom (B (True)) -> do !appl_400 <- kl_V1226 `pseq` hd kl_V1226
-                                                                                                                                                                                                                                                                                                                                  !appl_401 <- appl_400 `pseq` tl appl_400
-                                                                                                                                                                                                                                                                                                                                  !appl_402 <- kl_V1226 `pseq` tl kl_V1226
-                                                                                                                                                                                                                                                                                                                                  !appl_403 <- appl_402 `pseq` hd appl_402
-                                                                                                                                                                                                                                                                                                                                  let !aw_404 = Types.Atom (Types.UnboundSym "shen.pair")
-                                                                                                                                                                                                                                                                                                                                  !appl_405 <- appl_401 `pseq` (appl_403 `pseq` applyWrapper aw_404 [appl_401,
-                                                                                                                                                                                                                                                                                                                                                                                                     appl_403])
-                                                                                                                                                                                                                                                                                                                                  !appl_406 <- appl_405 `pseq` hd appl_405
-                                                                                                                                                                                                                                                                                                                                  let !aw_407 = Types.Atom (Types.UnboundSym "shen.hdtl")
-                                                                                                                                                                                                                                                                                                                                  !appl_408 <- kl_Parse_shen_LBpattern1RB `pseq` applyWrapper aw_407 [kl_Parse_shen_LBpattern1RB]
-                                                                                                                                                                                                                                                                                                                                  let !aw_409 = Types.Atom (Types.UnboundSym "shen.hdtl")
-                                                                                                                                                                                                                                                                                                                                  !appl_410 <- kl_Parse_shen_LBpattern2RB `pseq` applyWrapper aw_409 [kl_Parse_shen_LBpattern2RB]
-                                                                                                                                                                                                                                                                                                                                  !appl_411 <- appl_410 `pseq` klCons appl_410 (Types.Atom Types.Nil)
-                                                                                                                                                                                                                                                                                                                                  !appl_412 <- appl_408 `pseq` (appl_411 `pseq` klCons appl_408 appl_411)
-                                                                                                                                                                                                                                                                                                                                  !appl_413 <- appl_412 `pseq` klCons (Types.Atom (Types.UnboundSym "@p")) appl_412
-                                                                                                                                                                                                                                                                                                                                  let !aw_414 = Types.Atom (Types.UnboundSym "shen.pair")
-                                                                                                                                                                                                                                                                                                                                  appl_406 `pseq` (appl_413 `pseq` applyWrapper aw_414 [appl_406,
-                                                                                                                                                                                                                                                                                                                                                                                        appl_413])
-                                                                                                                                                                                                                                                                                                            Atom (B (False)) -> do do let !aw_415 = Types.Atom (Types.UnboundSym "fail")
-                                                                                                                                                                                                                                                                                                                                      applyWrapper aw_415 []
-                                                                                                                                                                                                                                                                                                            _ -> throwError "if: expected boolean")))
-                                                                                                                                                                                                                    !appl_416 <- kl_Parse_shen_LBpattern1RB `pseq` kl_shen_LBpattern2RB kl_Parse_shen_LBpattern1RB
-                                                                                                                                                                                                                    appl_416 `pseq` applyWrapper appl_394 [appl_416]
-                                                                                                                                                                                              Atom (B (False)) -> do do let !aw_417 = Types.Atom (Types.UnboundSym "fail")
-                                                                                                                                                                                                                        applyWrapper aw_417 []
-                                                                                                                                                                                              _ -> throwError "if: expected boolean")))
-                                                                                                      !appl_418 <- kl_V1226 `pseq` hd kl_V1226
-                                                                                                      !appl_419 <- appl_418 `pseq` hd appl_418
-                                                                                                      !appl_420 <- kl_V1226 `pseq` tl kl_V1226
-                                                                                                      !appl_421 <- appl_420 `pseq` hd appl_420
-                                                                                                      let !aw_422 = Types.Atom (Types.UnboundSym "shen.pair")
-                                                                                                      !appl_423 <- appl_419 `pseq` (appl_421 `pseq` applyWrapper aw_422 [appl_419,
-                                                                                                                                                                         appl_421])
-                                                                                                      !appl_424 <- appl_423 `pseq` hd appl_423
-                                                                                                      !appl_425 <- appl_424 `pseq` tl appl_424
-                                                                                                      !appl_426 <- kl_V1226 `pseq` hd kl_V1226
-                                                                                                      !appl_427 <- appl_426 `pseq` hd appl_426
-                                                                                                      !appl_428 <- kl_V1226 `pseq` tl kl_V1226
-                                                                                                      !appl_429 <- appl_428 `pseq` hd appl_428
-                                                                                                      let !aw_430 = Types.Atom (Types.UnboundSym "shen.pair")
-                                                                                                      !appl_431 <- appl_427 `pseq` (appl_429 `pseq` applyWrapper aw_430 [appl_427,
-                                                                                                                                                                         appl_429])
-                                                                                                      let !aw_432 = Types.Atom (Types.UnboundSym "shen.hdtl")
-                                                                                                      !appl_433 <- appl_431 `pseq` applyWrapper aw_432 [appl_431]
-                                                                                                      let !aw_434 = Types.Atom (Types.UnboundSym "shen.pair")
-                                                                                                      !appl_435 <- appl_425 `pseq` (appl_433 `pseq` applyWrapper aw_434 [appl_425,
-                                                                                                                                                                         appl_433])
-                                                                                                      !appl_436 <- appl_435 `pseq` kl_shen_LBpattern1RB appl_435
-                                                                                                      appl_436 `pseq` applyWrapper appl_388 [appl_436]
-                                                                                Atom (B (False)) -> do do let !aw_437 = Types.Atom (Types.UnboundSym "fail")
-                                                                                                          applyWrapper aw_437 []
-                                                                                _ -> throwError "if: expected boolean"
-                                                      Atom (B (False)) -> do do let !aw_438 = Types.Atom (Types.UnboundSym "fail")
-                                                                                applyWrapper aw_438 []
-                                                      _ -> throwError "if: expected boolean"
-                                     appl_369 `pseq` applyWrapper appl_0 [appl_369]
-
-kl_shen_constructor_error :: Types.KLValue ->
-                             Types.KLContext Types.Env Types.KLValue
-kl_shen_constructor_error (!kl_V1228) = do let !aw_0 = Types.Atom (Types.UnboundSym "shen.app")
-                                           !appl_1 <- kl_V1228 `pseq` applyWrapper aw_0 [kl_V1228,
-                                                                                         Types.Atom (Types.Str " is not a legitimate constructor\n"),
-                                                                                         Types.Atom (Types.UnboundSym "shen.a")]
-                                           appl_1 `pseq` simpleError appl_1
-
-kl_shen_LBsimple_patternRB :: Types.KLValue ->
-                              Types.KLContext Types.Env Types.KLValue
-kl_shen_LBsimple_patternRB (!kl_V1230) = do let !appl_0 = ApplC (Func "lambda" (Context (\(!kl_YaccParse) -> do let !aw_1 = Types.Atom (Types.UnboundSym "fail")
-                                                                                                                !appl_2 <- applyWrapper aw_1 []
-                                                                                                                !kl_if_3 <- kl_YaccParse `pseq` (appl_2 `pseq` eq kl_YaccParse appl_2)
-                                                                                                                case kl_if_3 of
-                                                                                                                    Atom (B (True)) -> do !appl_4 <- kl_V1230 `pseq` hd kl_V1230
-                                                                                                                                          !kl_if_5 <- appl_4 `pseq` consP appl_4
-                                                                                                                                          case kl_if_5 of
-                                                                                                                                              Atom (B (True)) -> do let !appl_6 = ApplC (Func "lambda" (Context (\(!kl_Parse_X) -> do !appl_7 <- klCons (Types.Atom (Types.UnboundSym "<-")) (Types.Atom Types.Nil)
-                                                                                                                                                                                                                                      !appl_8 <- appl_7 `pseq` klCons (Types.Atom (Types.UnboundSym "->")) appl_7
-                                                                                                                                                                                                                                      let !aw_9 = Types.Atom (Types.UnboundSym "element?")
-                                                                                                                                                                                                                                      !appl_10 <- kl_Parse_X `pseq` (appl_8 `pseq` applyWrapper aw_9 [kl_Parse_X,
-                                                                                                                                                                                                                                                                                                      appl_8])
-                                                                                                                                                                                                                                      let !aw_11 = Types.Atom (Types.UnboundSym "not")
-                                                                                                                                                                                                                                      !kl_if_12 <- appl_10 `pseq` applyWrapper aw_11 [appl_10]
-                                                                                                                                                                                                                                      case kl_if_12 of
-                                                                                                                                                                                                                                          Atom (B (True)) -> do !appl_13 <- kl_V1230 `pseq` hd kl_V1230
-                                                                                                                                                                                                                                                                !appl_14 <- appl_13 `pseq` tl appl_13
-                                                                                                                                                                                                                                                                let !aw_15 = Types.Atom (Types.UnboundSym "shen.hdtl")
-                                                                                                                                                                                                                                                                !appl_16 <- kl_V1230 `pseq` applyWrapper aw_15 [kl_V1230]
-                                                                                                                                                                                                                                                                let !aw_17 = Types.Atom (Types.UnboundSym "shen.pair")
-                                                                                                                                                                                                                                                                !appl_18 <- appl_14 `pseq` (appl_16 `pseq` applyWrapper aw_17 [appl_14,
-                                                                                                                                                                                                                                                                                                                               appl_16])
-                                                                                                                                                                                                                                                                !appl_19 <- appl_18 `pseq` hd appl_18
-                                                                                                                                                                                                                                                                let !aw_20 = Types.Atom (Types.UnboundSym "shen.pair")
-                                                                                                                                                                                                                                                                appl_19 `pseq` (kl_Parse_X `pseq` applyWrapper aw_20 [appl_19,
-                                                                                                                                                                                                                                                                                                                      kl_Parse_X])
-                                                                                                                                                                                                                                          Atom (B (False)) -> do do let !aw_21 = Types.Atom (Types.UnboundSym "fail")
-                                                                                                                                                                                                                                                                    applyWrapper aw_21 []
-                                                                                                                                                                                                                                          _ -> throwError "if: expected boolean")))
-                                                                                                                                                                    !appl_22 <- kl_V1230 `pseq` hd kl_V1230
-                                                                                                                                                                    !appl_23 <- appl_22 `pseq` hd appl_22
-                                                                                                                                                                    appl_23 `pseq` applyWrapper appl_6 [appl_23]
-                                                                                                                                              Atom (B (False)) -> do do let !aw_24 = Types.Atom (Types.UnboundSym "fail")
-                                                                                                                                                                        applyWrapper aw_24 []
-                                                                                                                                              _ -> throwError "if: expected boolean"
-                                                                                                                    Atom (B (False)) -> do do return kl_YaccParse
-                                                                                                                    _ -> throwError "if: expected boolean")))
-                                            !appl_25 <- kl_V1230 `pseq` hd kl_V1230
-                                            !kl_if_26 <- appl_25 `pseq` consP appl_25
-                                            !appl_27 <- case kl_if_26 of
-                                                            Atom (B (True)) -> do let !appl_28 = ApplC (Func "lambda" (Context (\(!kl_Parse_X) -> do let pat_cond_29 = do !appl_30 <- kl_V1230 `pseq` hd kl_V1230
-                                                                                                                                                                          !appl_31 <- appl_30 `pseq` tl appl_30
-                                                                                                                                                                          let !aw_32 = Types.Atom (Types.UnboundSym "shen.hdtl")
-                                                                                                                                                                          !appl_33 <- kl_V1230 `pseq` applyWrapper aw_32 [kl_V1230]
-                                                                                                                                                                          let !aw_34 = Types.Atom (Types.UnboundSym "shen.pair")
-                                                                                                                                                                          !appl_35 <- appl_31 `pseq` (appl_33 `pseq` applyWrapper aw_34 [appl_31,
-                                                                                                                                                                                                                                         appl_33])
-                                                                                                                                                                          !appl_36 <- appl_35 `pseq` hd appl_35
-                                                                                                                                                                          let !aw_37 = Types.Atom (Types.UnboundSym "gensym")
-                                                                                                                                                                          !appl_38 <- applyWrapper aw_37 [Types.Atom (Types.UnboundSym "Parse_Y")]
-                                                                                                                                                                          let !aw_39 = Types.Atom (Types.UnboundSym "shen.pair")
-                                                                                                                                                                          appl_36 `pseq` (appl_38 `pseq` applyWrapper aw_39 [appl_36,
-                                                                                                                                                                                                                             appl_38])
-                                                                                                                                                         pat_cond_40 = do do let !aw_41 = Types.Atom (Types.UnboundSym "fail")
-                                                                                                                                                                             applyWrapper aw_41 []
-                                                                                                                                                      in case kl_Parse_X of
-                                                                                                                                                             kl_Parse_X@(Atom (UnboundSym "_")) -> pat_cond_29
-                                                                                                                                                             kl_Parse_X@(ApplC (PL "_"
-                                                                                                                                                                                   _)) -> pat_cond_29
-                                                                                                                                                             kl_Parse_X@(ApplC (Func "_"
-                                                                                                                                                                                     _)) -> pat_cond_29
-                                                                                                                                                             _ -> pat_cond_40)))
-                                                                                  !appl_42 <- kl_V1230 `pseq` hd kl_V1230
-                                                                                  !appl_43 <- appl_42 `pseq` hd appl_42
-                                                                                  appl_43 `pseq` applyWrapper appl_28 [appl_43]
-                                                            Atom (B (False)) -> do do let !aw_44 = Types.Atom (Types.UnboundSym "fail")
-                                                                                      applyWrapper aw_44 []
-                                                            _ -> throwError "if: expected boolean"
-                                            appl_27 `pseq` applyWrapper appl_0 [appl_27]
-
-kl_shen_LBpattern1RB :: Types.KLValue ->
-                        Types.KLContext Types.Env Types.KLValue
-kl_shen_LBpattern1RB (!kl_V1232) = do let !appl_0 = ApplC (Func "lambda" (Context (\(!kl_Parse_shen_LBpatternRB) -> do let !aw_1 = Types.Atom (Types.UnboundSym "fail")
-                                                                                                                       !appl_2 <- applyWrapper aw_1 []
-                                                                                                                       !appl_3 <- appl_2 `pseq` (kl_Parse_shen_LBpatternRB `pseq` eq appl_2 kl_Parse_shen_LBpatternRB)
-                                                                                                                       let !aw_4 = Types.Atom (Types.UnboundSym "not")
-                                                                                                                       !kl_if_5 <- appl_3 `pseq` applyWrapper aw_4 [appl_3]
-                                                                                                                       case kl_if_5 of
-                                                                                                                           Atom (B (True)) -> do !appl_6 <- kl_Parse_shen_LBpatternRB `pseq` hd kl_Parse_shen_LBpatternRB
-                                                                                                                                                 let !aw_7 = Types.Atom (Types.UnboundSym "shen.hdtl")
-                                                                                                                                                 !appl_8 <- kl_Parse_shen_LBpatternRB `pseq` applyWrapper aw_7 [kl_Parse_shen_LBpatternRB]
-                                                                                                                                                 let !aw_9 = Types.Atom (Types.UnboundSym "shen.pair")
-                                                                                                                                                 appl_6 `pseq` (appl_8 `pseq` applyWrapper aw_9 [appl_6,
-                                                                                                                                                                                                 appl_8])
-                                                                                                                           Atom (B (False)) -> do do let !aw_10 = Types.Atom (Types.UnboundSym "fail")
-                                                                                                                                                     applyWrapper aw_10 []
-                                                                                                                           _ -> throwError "if: expected boolean")))
-                                      !appl_11 <- kl_V1232 `pseq` kl_shen_LBpatternRB kl_V1232
-                                      appl_11 `pseq` applyWrapper appl_0 [appl_11]
-
-kl_shen_LBpattern2RB :: Types.KLValue ->
-                        Types.KLContext Types.Env Types.KLValue
-kl_shen_LBpattern2RB (!kl_V1234) = do let !appl_0 = ApplC (Func "lambda" (Context (\(!kl_Parse_shen_LBpatternRB) -> do let !aw_1 = Types.Atom (Types.UnboundSym "fail")
-                                                                                                                       !appl_2 <- applyWrapper aw_1 []
-                                                                                                                       !appl_3 <- appl_2 `pseq` (kl_Parse_shen_LBpatternRB `pseq` eq appl_2 kl_Parse_shen_LBpatternRB)
-                                                                                                                       let !aw_4 = Types.Atom (Types.UnboundSym "not")
-                                                                                                                       !kl_if_5 <- appl_3 `pseq` applyWrapper aw_4 [appl_3]
-                                                                                                                       case kl_if_5 of
-                                                                                                                           Atom (B (True)) -> do !appl_6 <- kl_Parse_shen_LBpatternRB `pseq` hd kl_Parse_shen_LBpatternRB
-                                                                                                                                                 let !aw_7 = Types.Atom (Types.UnboundSym "shen.hdtl")
-                                                                                                                                                 !appl_8 <- kl_Parse_shen_LBpatternRB `pseq` applyWrapper aw_7 [kl_Parse_shen_LBpatternRB]
-                                                                                                                                                 let !aw_9 = Types.Atom (Types.UnboundSym "shen.pair")
-                                                                                                                                                 appl_6 `pseq` (appl_8 `pseq` applyWrapper aw_9 [appl_6,
-                                                                                                                                                                                                 appl_8])
-                                                                                                                           Atom (B (False)) -> do do let !aw_10 = Types.Atom (Types.UnboundSym "fail")
-                                                                                                                                                     applyWrapper aw_10 []
-                                                                                                                           _ -> throwError "if: expected boolean")))
-                                      !appl_11 <- kl_V1234 `pseq` kl_shen_LBpatternRB kl_V1234
-                                      appl_11 `pseq` applyWrapper appl_0 [appl_11]
-
-kl_shen_LBactionRB :: Types.KLValue ->
-                      Types.KLContext Types.Env Types.KLValue
-kl_shen_LBactionRB (!kl_V1236) = do !appl_0 <- kl_V1236 `pseq` hd kl_V1236
-                                    !kl_if_1 <- appl_0 `pseq` consP appl_0
-                                    case kl_if_1 of
-                                        Atom (B (True)) -> do let !appl_2 = ApplC (Func "lambda" (Context (\(!kl_Parse_X) -> do !appl_3 <- kl_V1236 `pseq` hd kl_V1236
-                                                                                                                                !appl_4 <- appl_3 `pseq` tl appl_3
-                                                                                                                                let !aw_5 = Types.Atom (Types.UnboundSym "shen.hdtl")
-                                                                                                                                !appl_6 <- kl_V1236 `pseq` applyWrapper aw_5 [kl_V1236]
-                                                                                                                                let !aw_7 = Types.Atom (Types.UnboundSym "shen.pair")
-                                                                                                                                !appl_8 <- appl_4 `pseq` (appl_6 `pseq` applyWrapper aw_7 [appl_4,
-                                                                                                                                                                                           appl_6])
-                                                                                                                                !appl_9 <- appl_8 `pseq` hd appl_8
-                                                                                                                                let !aw_10 = Types.Atom (Types.UnboundSym "shen.pair")
-                                                                                                                                appl_9 `pseq` (kl_Parse_X `pseq` applyWrapper aw_10 [appl_9,
-                                                                                                                                                                                     kl_Parse_X]))))
-                                                              !appl_11 <- kl_V1236 `pseq` hd kl_V1236
-                                                              !appl_12 <- appl_11 `pseq` hd appl_11
-                                                              appl_12 `pseq` applyWrapper appl_2 [appl_12]
-                                        Atom (B (False)) -> do do let !aw_13 = Types.Atom (Types.UnboundSym "fail")
-                                                                  applyWrapper aw_13 []
-                                        _ -> throwError "if: expected boolean"
-
-kl_shen_LBguardRB :: Types.KLValue ->
-                     Types.KLContext Types.Env Types.KLValue
-kl_shen_LBguardRB (!kl_V1238) = do !appl_0 <- kl_V1238 `pseq` hd kl_V1238
-                                   !kl_if_1 <- appl_0 `pseq` consP appl_0
-                                   case kl_if_1 of
-                                       Atom (B (True)) -> do let !appl_2 = ApplC (Func "lambda" (Context (\(!kl_Parse_X) -> do !appl_3 <- kl_V1238 `pseq` hd kl_V1238
-                                                                                                                               !appl_4 <- appl_3 `pseq` tl appl_3
-                                                                                                                               let !aw_5 = Types.Atom (Types.UnboundSym "shen.hdtl")
-                                                                                                                               !appl_6 <- kl_V1238 `pseq` applyWrapper aw_5 [kl_V1238]
-                                                                                                                               let !aw_7 = Types.Atom (Types.UnboundSym "shen.pair")
-                                                                                                                               !appl_8 <- appl_4 `pseq` (appl_6 `pseq` applyWrapper aw_7 [appl_4,
-                                                                                                                                                                                          appl_6])
-                                                                                                                               !appl_9 <- appl_8 `pseq` hd appl_8
-                                                                                                                               let !aw_10 = Types.Atom (Types.UnboundSym "shen.pair")
-                                                                                                                               appl_9 `pseq` (kl_Parse_X `pseq` applyWrapper aw_10 [appl_9,
-                                                                                                                                                                                    kl_Parse_X]))))
-                                                             !appl_11 <- kl_V1238 `pseq` hd kl_V1238
-                                                             !appl_12 <- appl_11 `pseq` hd appl_11
-                                                             appl_12 `pseq` applyWrapper appl_2 [appl_12]
-                                       Atom (B (False)) -> do do let !aw_13 = Types.Atom (Types.UnboundSym "fail")
-                                                                 applyWrapper aw_13 []
-                                       _ -> throwError "if: expected boolean"
-
-kl_shen_compile_to_machine_code :: Types.KLValue ->
-                                   Types.KLValue -> Types.KLContext Types.Env Types.KLValue
-kl_shen_compile_to_machine_code (!kl_V1241) (!kl_V1242) = do let !appl_0 = ApplC (Func "lambda" (Context (\(!kl_LambdaPlus) -> do let !appl_1 = ApplC (Func "lambda" (Context (\(!kl_KL) -> do let !appl_2 = ApplC (Func "lambda" (Context (\(!kl_Record) -> do return kl_KL)))
-                                                                                                                                                                                               !appl_3 <- kl_V1241 `pseq` (kl_KL `pseq` kl_shen_record_source kl_V1241 kl_KL)
-                                                                                                                                                                                               appl_3 `pseq` applyWrapper appl_2 [appl_3])))
-                                                                                                                                  !appl_4 <- kl_V1241 `pseq` (kl_LambdaPlus `pseq` kl_shen_compile_to_kl kl_V1241 kl_LambdaPlus)
-                                                                                                                                  appl_4 `pseq` applyWrapper appl_1 [appl_4])))
-                                                             !appl_5 <- kl_V1241 `pseq` (kl_V1242 `pseq` kl_shen_compile_to_lambdaPlus kl_V1241 kl_V1242)
-                                                             appl_5 `pseq` applyWrapper appl_0 [appl_5]
-
-kl_shen_record_source :: Types.KLValue ->
-                         Types.KLValue -> Types.KLContext Types.Env Types.KLValue
-kl_shen_record_source (!kl_V1247) (!kl_V1248) = do !kl_if_0 <- value (Types.Atom (Types.UnboundSym "shen.*installing-kl*"))
-                                                   case kl_if_0 of
-                                                       Atom (B (True)) -> do return (Types.Atom (Types.UnboundSym "shen.skip"))
-                                                       Atom (B (False)) -> do do !appl_1 <- value (Types.Atom (Types.UnboundSym "*property-vector*"))
-                                                                                 let !aw_2 = Types.Atom (Types.UnboundSym "put")
-                                                                                 kl_V1247 `pseq` (kl_V1248 `pseq` (appl_1 `pseq` applyWrapper aw_2 [kl_V1247,
-                                                                                                                                                    Types.Atom (Types.UnboundSym "shen.source"),
-                                                                                                                                                    kl_V1248,
-                                                                                                                                                    appl_1]))
-                                                       _ -> throwError "if: expected boolean"
-
-kl_shen_compile_to_lambdaPlus :: Types.KLValue ->
-                                 Types.KLValue -> Types.KLContext Types.Env Types.KLValue
-kl_shen_compile_to_lambdaPlus (!kl_V1251) (!kl_V1252) = do let !appl_0 = ApplC (Func "lambda" (Context (\(!kl_Arity) -> do let !appl_1 = ApplC (Func "lambda" (Context (\(!kl_UpDateSymbolTable) -> do let !appl_2 = ApplC (Func "lambda" (Context (\(!kl_Free) -> do let !appl_3 = ApplC (Func "lambda" (Context (\(!kl_Variables) -> do let !appl_4 = ApplC (Func "lambda" (Context (\(!kl_Strip) -> do let !appl_5 = ApplC (Func "lambda" (Context (\(!kl_Abstractions) -> do let !appl_6 = ApplC (Func "lambda" (Context (\(!kl_Applications) -> do !appl_7 <- kl_Applications `pseq` klCons kl_Applications (Types.Atom Types.Nil)
-                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                        kl_Variables `pseq` (appl_7 `pseq` klCons kl_Variables appl_7))))
-                                                                                                                                                                                                                                                                                                                                                                                                                                                                                 let !appl_8 = ApplC (Func "lambda" (Context (\(!kl_X) -> do kl_Variables `pseq` (kl_X `pseq` kl_shen_application_build kl_Variables kl_X))))
-                                                                                                                                                                                                                                                                                                                                                                                                                                                                                 let !aw_9 = Types.Atom (Types.UnboundSym "map")
-                                                                                                                                                                                                                                                                                                                                                                                                                                                                                 !appl_10 <- appl_8 `pseq` (kl_Abstractions `pseq` applyWrapper aw_9 [appl_8,
-                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                      kl_Abstractions])
-                                                                                                                                                                                                                                                                                                                                                                                                                                                                                 appl_10 `pseq` applyWrapper appl_6 [appl_10])))
-                                                                                                                                                                                                                                                                                                                                                                                                          let !appl_11 = ApplC (Func "lambda" (Context (\(!kl_X) -> do kl_X `pseq` kl_shen_abstract_rule kl_X)))
-                                                                                                                                                                                                                                                                                                                                                                                                          let !aw_12 = Types.Atom (Types.UnboundSym "map")
-                                                                                                                                                                                                                                                                                                                                                                                                          !appl_13 <- appl_11 `pseq` (kl_Strip `pseq` applyWrapper aw_12 [appl_11,
-                                                                                                                                                                                                                                                                                                                                                                                                                                                                          kl_Strip])
-                                                                                                                                                                                                                                                                                                                                                                                                          appl_13 `pseq` applyWrapper appl_5 [appl_13])))
-                                                                                                                                                                                                                                                                                                                                          let !appl_14 = ApplC (Func "lambda" (Context (\(!kl_X) -> do kl_X `pseq` kl_shen_strip_protect kl_X)))
-                                                                                                                                                                                                                                                                                                                                          let !aw_15 = Types.Atom (Types.UnboundSym "map")
-                                                                                                                                                                                                                                                                                                                                          !appl_16 <- appl_14 `pseq` (kl_V1252 `pseq` applyWrapper aw_15 [appl_14,
-                                                                                                                                                                                                                                                                                                                                                                                                          kl_V1252])
-                                                                                                                                                                                                                                                                                                                                          appl_16 `pseq` applyWrapper appl_4 [appl_16])))
-                                                                                                                                                                                                                                                                      !appl_17 <- kl_Arity `pseq` kl_shen_parameters kl_Arity
-                                                                                                                                                                                                                                                                      appl_17 `pseq` applyWrapper appl_3 [appl_17])))
-                                                                                                                                                                                                       let !appl_18 = ApplC (Func "lambda" (Context (\(!kl_Rule) -> do kl_V1251 `pseq` (kl_Rule `pseq` kl_shen_free_variable_check kl_V1251 kl_Rule))))
-                                                                                                                                                                                                       let !aw_19 = Types.Atom (Types.UnboundSym "map")
-                                                                                                                                                                                                       !appl_20 <- appl_18 `pseq` (kl_V1252 `pseq` applyWrapper aw_19 [appl_18,
-                                                                                                                                                                                                                                                                       kl_V1252])
-                                                                                                                                                                                                       appl_20 `pseq` applyWrapper appl_2 [appl_20])))
-                                                                                                                           !appl_21 <- kl_V1251 `pseq` (kl_Arity `pseq` kl_shen_update_symbol_table kl_V1251 kl_Arity)
-                                                                                                                           appl_21 `pseq` applyWrapper appl_1 [appl_21])))
-                                                           !appl_22 <- kl_V1251 `pseq` (kl_V1252 `pseq` kl_shen_aritycheck kl_V1251 kl_V1252)
-                                                           appl_22 `pseq` applyWrapper appl_0 [appl_22]
-
-kl_shen_update_symbol_table :: Types.KLValue ->
-                               Types.KLValue -> Types.KLContext Types.Env Types.KLValue
-kl_shen_update_symbol_table (!kl_V1255) (!kl_V1256) = do !appl_0 <- value (Types.Atom (Types.UnboundSym "shen.*symbol-table*"))
-                                                         !appl_1 <- kl_V1255 `pseq` (kl_V1256 `pseq` (appl_0 `pseq` kl_shen_update_symbol_table_h kl_V1255 kl_V1256 appl_0 (Types.Atom Types.Nil)))
-                                                         appl_1 `pseq` klSet (Types.Atom (Types.UnboundSym "shen.*symbol-table*")) appl_1
-
-kl_shen_update_symbol_table_h :: Types.KLValue ->
-                                 Types.KLValue ->
-                                 Types.KLValue ->
-                                 Types.KLValue -> Types.KLContext Types.Env Types.KLValue
-kl_shen_update_symbol_table_h (!kl_V1264) (!kl_V1265) (!kl_V1266) (!kl_V1267) = do let pat_cond_0 = do let !appl_1 = ApplC (Func "lambda" (Context (\(!kl_NewEntry) -> do kl_NewEntry `pseq` (kl_V1267 `pseq` klCons kl_NewEntry kl_V1267))))
-                                                                                                       let !aw_2 = Types.Atom (Types.UnboundSym "shen.lambda-form")
-                                                                                                       !appl_3 <- kl_V1264 `pseq` (kl_V1265 `pseq` applyWrapper aw_2 [kl_V1264,
-                                                                                                                                                                      kl_V1265])
-                                                                                                       !appl_4 <- appl_3 `pseq` evalKL appl_3
-                                                                                                       !appl_5 <- kl_V1264 `pseq` (appl_4 `pseq` klCons kl_V1264 appl_4)
-                                                                                                       appl_5 `pseq` applyWrapper appl_1 [appl_5]
-                                                                                       pat_cond_6 kl_V1266 kl_V1266h kl_V1266hh kl_V1266ht kl_V1266t = do let !appl_7 = ApplC (Func "lambda" (Context (\(!kl_ChangedEntry) -> do !appl_8 <- kl_ChangedEntry `pseq` (kl_V1267 `pseq` klCons kl_ChangedEntry kl_V1267)
-                                                                                                                                                                                                                                 let !aw_9 = Types.Atom (Types.UnboundSym "append")
-                                                                                                                                                                                                                                 kl_V1266t `pseq` (appl_8 `pseq` applyWrapper aw_9 [kl_V1266t,
-                                                                                                                                                                                                                                                                                    appl_8]))))
-                                                                                                                                                          let !aw_10 = Types.Atom (Types.UnboundSym "shen.lambda-form")
-                                                                                                                                                          !appl_11 <- kl_V1266hh `pseq` (kl_V1265 `pseq` applyWrapper aw_10 [kl_V1266hh,
-                                                                                                                                                                                                                             kl_V1265])
-                                                                                                                                                          !appl_12 <- appl_11 `pseq` evalKL appl_11
-                                                                                                                                                          !appl_13 <- kl_V1266hh `pseq` (appl_12 `pseq` klCons kl_V1266hh appl_12)
-                                                                                                                                                          appl_13 `pseq` applyWrapper appl_7 [appl_13]
-                                                                                       pat_cond_14 kl_V1266 kl_V1266h kl_V1266t = do !appl_15 <- kl_V1266h `pseq` (kl_V1267 `pseq` klCons kl_V1266h kl_V1267)
-                                                                                                                                     kl_V1264 `pseq` (kl_V1265 `pseq` (kl_V1266t `pseq` (appl_15 `pseq` kl_shen_update_symbol_table_h kl_V1264 kl_V1265 kl_V1266t appl_15)))
-                                                                                       pat_cond_16 = do do let !aw_17 = Types.Atom (Types.UnboundSym "shen.f_error")
-                                                                                                           applyWrapper aw_17 [ApplC (wrapNamed "shen.update-symbol-table-h" kl_shen_update_symbol_table_h)]
-                                                                                    in case kl_V1266 of
-                                                                                           kl_V1266@(Atom (Nil)) -> pat_cond_0
-                                                                                           !(kl_V1266@(Cons (!(kl_V1266h@(Cons (!kl_V1266hh)
-                                                                                                                               (!kl_V1266ht))))
-                                                                                                            (!kl_V1266t))) | eqCore kl_V1266hh kl_V1264 -> pat_cond_6 kl_V1266 kl_V1266h kl_V1266hh kl_V1266ht kl_V1266t
-                                                                                           !(kl_V1266@(Cons (!kl_V1266h)
-                                                                                                            (!kl_V1266t))) -> pat_cond_14 kl_V1266 kl_V1266h kl_V1266t
-                                                                                           _ -> pat_cond_16
-
-kl_shen_free_variable_check :: Types.KLValue ->
-                               Types.KLValue -> Types.KLContext Types.Env Types.KLValue
-kl_shen_free_variable_check (!kl_V1270) (!kl_V1271) = do let pat_cond_0 kl_V1271 kl_V1271h kl_V1271t kl_V1271th = do let !appl_1 = ApplC (Func "lambda" (Context (\(!kl_Bound) -> do let !appl_2 = ApplC (Func "lambda" (Context (\(!kl_Free) -> do kl_V1270 `pseq` (kl_Free `pseq` kl_shen_free_variable_warnings kl_V1270 kl_Free))))
-                                                                                                                                                                                     !appl_3 <- kl_Bound `pseq` (kl_V1271th `pseq` kl_shen_extract_free_vars kl_Bound kl_V1271th)
-                                                                                                                                                                                     appl_3 `pseq` applyWrapper appl_2 [appl_3])))
-                                                                                                                     !appl_4 <- kl_V1271h `pseq` kl_shen_extract_vars kl_V1271h
-                                                                                                                     appl_4 `pseq` applyWrapper appl_1 [appl_4]
-                                                             pat_cond_5 = do do let !aw_6 = Types.Atom (Types.UnboundSym "shen.f_error")
-                                                                                applyWrapper aw_6 [ApplC (wrapNamed "shen.free_variable_check" kl_shen_free_variable_check)]
-                                                          in case kl_V1271 of
-                                                                 !(kl_V1271@(Cons (!kl_V1271h)
-                                                                                  (!(kl_V1271t@(Cons (!kl_V1271th)
-                                                                                                     (Atom (Nil))))))) -> pat_cond_0 kl_V1271 kl_V1271h kl_V1271t kl_V1271th
-                                                                 _ -> pat_cond_5
-
-kl_shen_extract_vars :: Types.KLValue ->
-                        Types.KLContext Types.Env Types.KLValue
-kl_shen_extract_vars (!kl_V1273) = do let !aw_0 = Types.Atom (Types.UnboundSym "variable?")
-                                      !kl_if_1 <- kl_V1273 `pseq` applyWrapper aw_0 [kl_V1273]
-                                      case kl_if_1 of
-                                          Atom (B (True)) -> do kl_V1273 `pseq` klCons kl_V1273 (Types.Atom Types.Nil)
-                                          Atom (B (False)) -> do let pat_cond_2 kl_V1273 kl_V1273h kl_V1273t = do !appl_3 <- kl_V1273h `pseq` kl_shen_extract_vars kl_V1273h
-                                                                                                                  !appl_4 <- kl_V1273t `pseq` kl_shen_extract_vars kl_V1273t
-                                                                                                                  let !aw_5 = Types.Atom (Types.UnboundSym "union")
-                                                                                                                  appl_3 `pseq` (appl_4 `pseq` applyWrapper aw_5 [appl_3,
-                                                                                                                                                                  appl_4])
-                                                                     pat_cond_6 = do do return (Types.Atom Types.Nil)
-                                                                  in case kl_V1273 of
-                                                                         !(kl_V1273@(Cons (!kl_V1273h)
-                                                                                          (!kl_V1273t))) -> pat_cond_2 kl_V1273 kl_V1273h kl_V1273t
-                                                                         _ -> pat_cond_6
-                                          _ -> throwError "if: expected boolean"
-
-kl_shen_extract_free_vars :: Types.KLValue ->
-                             Types.KLValue -> Types.KLContext Types.Env Types.KLValue
-kl_shen_extract_free_vars (!kl_V1285) (!kl_V1286) = do let pat_cond_0 kl_V1286 kl_V1286t kl_V1286th = do return (Types.Atom Types.Nil)
-                                                           pat_cond_1 = do let !aw_2 = Types.Atom (Types.UnboundSym "variable?")
-                                                                           !kl_if_3 <- kl_V1286 `pseq` applyWrapper aw_2 [kl_V1286]
-                                                                           !kl_if_4 <- case kl_if_3 of
-                                                                                           Atom (B (True)) -> do let !aw_5 = Types.Atom (Types.UnboundSym "element?")
-                                                                                                                 !appl_6 <- kl_V1286 `pseq` (kl_V1285 `pseq` applyWrapper aw_5 [kl_V1286,
-                                                                                                                                                                                kl_V1285])
-                                                                                                                 let !aw_7 = Types.Atom (Types.UnboundSym "not")
-                                                                                                                 !kl_if_8 <- appl_6 `pseq` applyWrapper aw_7 [appl_6]
-                                                                                                                 case kl_if_8 of
-                                                                                                                     Atom (B (True)) -> do return (Atom (B True))
-                                                                                                                     Atom (B (False)) -> do do return (Atom (B False))
-                                                                                                                     _ -> throwError "if: expected boolean"
-                                                                                           Atom (B (False)) -> do do return (Atom (B False))
-                                                                                           _ -> throwError "if: expected boolean"
-                                                                           case kl_if_4 of
-                                                                               Atom (B (True)) -> do kl_V1286 `pseq` klCons kl_V1286 (Types.Atom Types.Nil)
-                                                                               Atom (B (False)) -> do let pat_cond_9 kl_V1286 kl_V1286t kl_V1286th kl_V1286tt kl_V1286tth = do !appl_10 <- kl_V1286th `pseq` (kl_V1285 `pseq` klCons kl_V1286th kl_V1285)
-                                                                                                                                                                               appl_10 `pseq` (kl_V1286tth `pseq` kl_shen_extract_free_vars appl_10 kl_V1286tth)
-                                                                                                          pat_cond_11 kl_V1286 kl_V1286t kl_V1286th kl_V1286tt kl_V1286tth kl_V1286ttt kl_V1286ttth = do !appl_12 <- kl_V1285 `pseq` (kl_V1286tth `pseq` kl_shen_extract_free_vars kl_V1285 kl_V1286tth)
-                                                                                                                                                                                                         !appl_13 <- kl_V1286th `pseq` (kl_V1285 `pseq` klCons kl_V1286th kl_V1285)
-                                                                                                                                                                                                         !appl_14 <- appl_13 `pseq` (kl_V1286ttth `pseq` kl_shen_extract_free_vars appl_13 kl_V1286ttth)
-                                                                                                                                                                                                         let !aw_15 = Types.Atom (Types.UnboundSym "union")
-                                                                                                                                                                                                         appl_12 `pseq` (appl_14 `pseq` applyWrapper aw_15 [appl_12,
-                                                                                                                                                                                                                                                            appl_14])
-                                                                                                          pat_cond_16 kl_V1286 kl_V1286h kl_V1286t = do !appl_17 <- kl_V1285 `pseq` (kl_V1286h `pseq` kl_shen_extract_free_vars kl_V1285 kl_V1286h)
-                                                                                                                                                        !appl_18 <- kl_V1285 `pseq` (kl_V1286t `pseq` kl_shen_extract_free_vars kl_V1285 kl_V1286t)
-                                                                                                                                                        let !aw_19 = Types.Atom (Types.UnboundSym "union")
-                                                                                                                                                        appl_17 `pseq` (appl_18 `pseq` applyWrapper aw_19 [appl_17,
-                                                                                                                                                                                                           appl_18])
-                                                                                                          pat_cond_20 = do do return (Types.Atom Types.Nil)
-                                                                                                       in case kl_V1286 of
-                                                                                                              !(kl_V1286@(Cons (Atom (UnboundSym "lambda"))
-                                                                                                                               (!(kl_V1286t@(Cons (!kl_V1286th)
-                                                                                                                                                  (!(kl_V1286tt@(Cons (!kl_V1286tth)
-                                                                                                                                                                      (Atom (Nil)))))))))) -> pat_cond_9 kl_V1286 kl_V1286t kl_V1286th kl_V1286tt kl_V1286tth
-                                                                                                              !(kl_V1286@(Cons (ApplC (PL "lambda"
-                                                                                                                                          _))
-                                                                                                                               (!(kl_V1286t@(Cons (!kl_V1286th)
-                                                                                                                                                  (!(kl_V1286tt@(Cons (!kl_V1286tth)
-                                                                                                                                                                      (Atom (Nil)))))))))) -> pat_cond_9 kl_V1286 kl_V1286t kl_V1286th kl_V1286tt kl_V1286tth
-                                                                                                              !(kl_V1286@(Cons (ApplC (Func "lambda"
-                                                                                                                                            _))
-                                                                                                                               (!(kl_V1286t@(Cons (!kl_V1286th)
-                                                                                                                                                  (!(kl_V1286tt@(Cons (!kl_V1286tth)
-                                                                                                                                                                      (Atom (Nil)))))))))) -> pat_cond_9 kl_V1286 kl_V1286t kl_V1286th kl_V1286tt kl_V1286tth
-                                                                                                              !(kl_V1286@(Cons (Atom (UnboundSym "let"))
-                                                                                                                               (!(kl_V1286t@(Cons (!kl_V1286th)
-                                                                                                                                                  (!(kl_V1286tt@(Cons (!kl_V1286tth)
-                                                                                                                                                                      (!(kl_V1286ttt@(Cons (!kl_V1286ttth)
-                                                                                                                                                                                           (Atom (Nil))))))))))))) -> pat_cond_11 kl_V1286 kl_V1286t kl_V1286th kl_V1286tt kl_V1286tth kl_V1286ttt kl_V1286ttth
-                                                                                                              !(kl_V1286@(Cons (ApplC (PL "let"
-                                                                                                                                          _))
-                                                                                                                               (!(kl_V1286t@(Cons (!kl_V1286th)
-                                                                                                                                                  (!(kl_V1286tt@(Cons (!kl_V1286tth)
-                                                                                                                                                                      (!(kl_V1286ttt@(Cons (!kl_V1286ttth)
-                                                                                                                                                                                           (Atom (Nil))))))))))))) -> pat_cond_11 kl_V1286 kl_V1286t kl_V1286th kl_V1286tt kl_V1286tth kl_V1286ttt kl_V1286ttth
-                                                                                                              !(kl_V1286@(Cons (ApplC (Func "let"
-                                                                                                                                            _))
-                                                                                                                               (!(kl_V1286t@(Cons (!kl_V1286th)
-                                                                                                                                                  (!(kl_V1286tt@(Cons (!kl_V1286tth)
-                                                                                                                                                                      (!(kl_V1286ttt@(Cons (!kl_V1286ttth)
-                                                                                                                                                                                           (Atom (Nil))))))))))))) -> pat_cond_11 kl_V1286 kl_V1286t kl_V1286th kl_V1286tt kl_V1286tth kl_V1286ttt kl_V1286ttth
-                                                                                                              !(kl_V1286@(Cons (!kl_V1286h)
-                                                                                                                               (!kl_V1286t))) -> pat_cond_16 kl_V1286 kl_V1286h kl_V1286t
-                                                                                                              _ -> pat_cond_20
-                                                                               _ -> throwError "if: expected boolean"
-                                                        in case kl_V1286 of
-                                                               !(kl_V1286@(Cons (Atom (UnboundSym "protect"))
-                                                                                (!(kl_V1286t@(Cons (!kl_V1286th)
-                                                                                                   (Atom (Nil))))))) -> pat_cond_0 kl_V1286 kl_V1286t kl_V1286th
-                                                               !(kl_V1286@(Cons (ApplC (PL "protect"
-                                                                                           _))
-                                                                                (!(kl_V1286t@(Cons (!kl_V1286th)
-                                                                                                   (Atom (Nil))))))) -> pat_cond_0 kl_V1286 kl_V1286t kl_V1286th
-                                                               !(kl_V1286@(Cons (ApplC (Func "protect"
-                                                                                             _))
-                                                                                (!(kl_V1286t@(Cons (!kl_V1286th)
-                                                                                                   (Atom (Nil))))))) -> pat_cond_0 kl_V1286 kl_V1286t kl_V1286th
-                                                               _ -> pat_cond_1
-
-kl_shen_free_variable_warnings :: Types.KLValue ->
-                                  Types.KLValue -> Types.KLContext Types.Env Types.KLValue
-kl_shen_free_variable_warnings (!kl_V1291) (!kl_V1292) = do let pat_cond_0 = do return (Types.Atom (Types.UnboundSym "_"))
-                                                                pat_cond_1 = do do !appl_2 <- kl_V1292 `pseq` kl_shen_list_variables kl_V1292
-                                                                                   let !aw_3 = Types.Atom (Types.UnboundSym "shen.app")
-                                                                                   !appl_4 <- appl_2 `pseq` applyWrapper aw_3 [appl_2,
-                                                                                                                               Types.Atom (Types.Str ""),
-                                                                                                                               Types.Atom (Types.UnboundSym "shen.a")]
-                                                                                   !appl_5 <- appl_4 `pseq` cn (Types.Atom (Types.Str ": ")) appl_4
-                                                                                   let !aw_6 = Types.Atom (Types.UnboundSym "shen.app")
-                                                                                   !appl_7 <- kl_V1291 `pseq` (appl_5 `pseq` applyWrapper aw_6 [kl_V1291,
-                                                                                                                                                appl_5,
-                                                                                                                                                Types.Atom (Types.UnboundSym "shen.a")])
-                                                                                   !appl_8 <- appl_7 `pseq` cn (Types.Atom (Types.Str "error: the following variables are free in ")) appl_7
-                                                                                   appl_8 `pseq` simpleError appl_8
-                                                             in case kl_V1292 of
-                                                                    kl_V1292@(Atom (Nil)) -> pat_cond_0
-                                                                    _ -> pat_cond_1
-
-kl_shen_list_variables :: Types.KLValue ->
-                          Types.KLContext Types.Env Types.KLValue
-kl_shen_list_variables (!kl_V1294) = do let pat_cond_0 kl_V1294 kl_V1294h = do !appl_1 <- kl_V1294h `pseq` str kl_V1294h
-                                                                               appl_1 `pseq` cn appl_1 (Types.Atom (Types.Str "."))
-                                            pat_cond_2 kl_V1294 kl_V1294h kl_V1294t = do !appl_3 <- kl_V1294h `pseq` str kl_V1294h
-                                                                                         !appl_4 <- kl_V1294t `pseq` kl_shen_list_variables kl_V1294t
-                                                                                         !appl_5 <- appl_4 `pseq` cn (Types.Atom (Types.Str ", ")) appl_4
-                                                                                         appl_3 `pseq` (appl_5 `pseq` cn appl_3 appl_5)
-                                            pat_cond_6 = do do let !aw_7 = Types.Atom (Types.UnboundSym "shen.f_error")
-                                                               applyWrapper aw_7 [ApplC (wrapNamed "shen.list_variables" kl_shen_list_variables)]
-                                         in case kl_V1294 of
-                                                !(kl_V1294@(Cons (!kl_V1294h)
-                                                                 (Atom (Nil)))) -> pat_cond_0 kl_V1294 kl_V1294h
-                                                !(kl_V1294@(Cons (!kl_V1294h)
-                                                                 (!kl_V1294t))) -> pat_cond_2 kl_V1294 kl_V1294h kl_V1294t
-                                                _ -> pat_cond_6
-
-kl_shen_strip_protect :: Types.KLValue ->
-                         Types.KLContext Types.Env Types.KLValue
-kl_shen_strip_protect (!kl_V1296) = do let pat_cond_0 kl_V1296 kl_V1296t kl_V1296th = do kl_V1296th `pseq` kl_shen_strip_protect kl_V1296th
-                                           pat_cond_1 kl_V1296 kl_V1296h kl_V1296t = do let !appl_2 = ApplC (Func "lambda" (Context (\(!kl_Z) -> do kl_Z `pseq` kl_shen_strip_protect kl_Z)))
-                                                                                        let !aw_3 = Types.Atom (Types.UnboundSym "map")
-                                                                                        appl_2 `pseq` (kl_V1296 `pseq` applyWrapper aw_3 [appl_2,
-                                                                                                                                          kl_V1296])
-                                           pat_cond_4 = do do return kl_V1296
-                                        in case kl_V1296 of
-                                               !(kl_V1296@(Cons (Atom (UnboundSym "protect"))
-                                                                (!(kl_V1296t@(Cons (!kl_V1296th)
-                                                                                   (Atom (Nil))))))) -> pat_cond_0 kl_V1296 kl_V1296t kl_V1296th
-                                               !(kl_V1296@(Cons (ApplC (PL "protect" _))
-                                                                (!(kl_V1296t@(Cons (!kl_V1296th)
-                                                                                   (Atom (Nil))))))) -> pat_cond_0 kl_V1296 kl_V1296t kl_V1296th
-                                               !(kl_V1296@(Cons (ApplC (Func "protect" _))
-                                                                (!(kl_V1296t@(Cons (!kl_V1296th)
-                                                                                   (Atom (Nil))))))) -> pat_cond_0 kl_V1296 kl_V1296t kl_V1296th
-                                               !(kl_V1296@(Cons (!kl_V1296h)
-                                                                (!kl_V1296t))) -> pat_cond_1 kl_V1296 kl_V1296h kl_V1296t
-                                               _ -> pat_cond_4
-
-kl_shen_linearise :: Types.KLValue ->
-                     Types.KLContext Types.Env Types.KLValue
-kl_shen_linearise (!kl_V1298) = do let pat_cond_0 kl_V1298 kl_V1298h kl_V1298t kl_V1298th = do !appl_1 <- kl_V1298h `pseq` kl_shen_flatten kl_V1298h
-                                                                                               appl_1 `pseq` (kl_V1298h `pseq` (kl_V1298th `pseq` kl_shen_linearise_help appl_1 kl_V1298h kl_V1298th))
-                                       pat_cond_2 = do do let !aw_3 = Types.Atom (Types.UnboundSym "shen.f_error")
-                                                          applyWrapper aw_3 [ApplC (wrapNamed "shen.linearise" kl_shen_linearise)]
-                                    in case kl_V1298 of
-                                           !(kl_V1298@(Cons (!kl_V1298h)
-                                                            (!(kl_V1298t@(Cons (!kl_V1298th)
-                                                                               (Atom (Nil))))))) -> pat_cond_0 kl_V1298 kl_V1298h kl_V1298t kl_V1298th
-                                           _ -> pat_cond_2
-
-kl_shen_flatten :: Types.KLValue ->
-                   Types.KLContext Types.Env Types.KLValue
-kl_shen_flatten (!kl_V1300) = do let pat_cond_0 = do return (Types.Atom Types.Nil)
-                                     pat_cond_1 kl_V1300 kl_V1300h kl_V1300t = do !appl_2 <- kl_V1300h `pseq` kl_shen_flatten kl_V1300h
-                                                                                  !appl_3 <- kl_V1300t `pseq` kl_shen_flatten kl_V1300t
-                                                                                  let !aw_4 = Types.Atom (Types.UnboundSym "append")
-                                                                                  appl_2 `pseq` (appl_3 `pseq` applyWrapper aw_4 [appl_2,
-                                                                                                                                  appl_3])
-                                     pat_cond_5 = do do kl_V1300 `pseq` klCons kl_V1300 (Types.Atom Types.Nil)
-                                  in case kl_V1300 of
-                                         kl_V1300@(Atom (Nil)) -> pat_cond_0
-                                         !(kl_V1300@(Cons (!kl_V1300h)
-                                                          (!kl_V1300t))) -> pat_cond_1 kl_V1300 kl_V1300h kl_V1300t
-                                         _ -> pat_cond_5
-
-kl_shen_linearise_help :: Types.KLValue ->
-                          Types.KLValue ->
-                          Types.KLValue -> Types.KLContext Types.Env Types.KLValue
-kl_shen_linearise_help (!kl_V1304) (!kl_V1305) (!kl_V1306) = do let pat_cond_0 = do !appl_1 <- kl_V1306 `pseq` klCons kl_V1306 (Types.Atom Types.Nil)
-                                                                                    kl_V1305 `pseq` (appl_1 `pseq` klCons kl_V1305 appl_1)
-                                                                    pat_cond_2 kl_V1304 kl_V1304h kl_V1304t = do let !aw_3 = Types.Atom (Types.UnboundSym "variable?")
-                                                                                                                 !kl_if_4 <- kl_V1304h `pseq` applyWrapper aw_3 [kl_V1304h]
-                                                                                                                 !kl_if_5 <- case kl_if_4 of
-                                                                                                                                 Atom (B (True)) -> do let !aw_6 = Types.Atom (Types.UnboundSym "element?")
-                                                                                                                                                       !kl_if_7 <- kl_V1304h `pseq` (kl_V1304t `pseq` applyWrapper aw_6 [kl_V1304h,
-                                                                                                                                                                                                                         kl_V1304t])
-                                                                                                                                                       case kl_if_7 of
-                                                                                                                                                           Atom (B (True)) -> do return (Atom (B True))
-                                                                                                                                                           Atom (B (False)) -> do do return (Atom (B False))
-                                                                                                                                                           _ -> throwError "if: expected boolean"
-                                                                                                                                 Atom (B (False)) -> do do return (Atom (B False))
-                                                                                                                                 _ -> throwError "if: expected boolean"
-                                                                                                                 case kl_if_5 of
-                                                                                                                     Atom (B (True)) -> do let !appl_8 = ApplC (Func "lambda" (Context (\(!kl_Var) -> do let !appl_9 = ApplC (Func "lambda" (Context (\(!kl_NewAction) -> do let !appl_10 = ApplC (Func "lambda" (Context (\(!kl_NewPatts) -> do kl_V1304t `pseq` (kl_NewPatts `pseq` (kl_NewAction `pseq` kl_shen_linearise_help kl_V1304t kl_NewPatts kl_NewAction)))))
-                                                                                                                                                                                                                                                                             !appl_11 <- kl_V1304h `pseq` (kl_Var `pseq` (kl_V1305 `pseq` kl_shen_linearise_X kl_V1304h kl_Var kl_V1305))
-                                                                                                                                                                                                                                                                             appl_11 `pseq` applyWrapper appl_10 [appl_11])))
-                                                                                                                                                                                                         !appl_12 <- kl_Var `pseq` klCons kl_Var (Types.Atom Types.Nil)
-                                                                                                                                                                                                         !appl_13 <- kl_V1304h `pseq` (appl_12 `pseq` klCons kl_V1304h appl_12)
-                                                                                                                                                                                                         !appl_14 <- appl_13 `pseq` klCons (ApplC (wrapNamed "=" eq)) appl_13
-                                                                                                                                                                                                         !appl_15 <- kl_V1306 `pseq` klCons kl_V1306 (Types.Atom Types.Nil)
-                                                                                                                                                                                                         !appl_16 <- appl_14 `pseq` (appl_15 `pseq` klCons appl_14 appl_15)
-                                                                                                                                                                                                         !appl_17 <- appl_16 `pseq` klCons (Types.Atom (Types.UnboundSym "where")) appl_16
-                                                                                                                                                                                                         appl_17 `pseq` applyWrapper appl_9 [appl_17])))
-                                                                                                                                           let !aw_18 = Types.Atom (Types.UnboundSym "gensym")
-                                                                                                                                           !appl_19 <- kl_V1304h `pseq` applyWrapper aw_18 [kl_V1304h]
-                                                                                                                                           appl_19 `pseq` applyWrapper appl_8 [appl_19]
-                                                                                                                     Atom (B (False)) -> do do kl_V1304t `pseq` (kl_V1305 `pseq` (kl_V1306 `pseq` kl_shen_linearise_help kl_V1304t kl_V1305 kl_V1306))
-                                                                                                                     _ -> throwError "if: expected boolean"
-                                                                    pat_cond_20 = do do let !aw_21 = Types.Atom (Types.UnboundSym "shen.f_error")
-                                                                                        applyWrapper aw_21 [ApplC (wrapNamed "shen.linearise_help" kl_shen_linearise_help)]
-                                                                 in case kl_V1304 of
-                                                                        kl_V1304@(Atom (Nil)) -> pat_cond_0
-                                                                        !(kl_V1304@(Cons (!kl_V1304h)
-                                                                                         (!kl_V1304t))) -> pat_cond_2 kl_V1304 kl_V1304h kl_V1304t
-                                                                        _ -> pat_cond_20
-
-kl_shen_linearise_X :: Types.KLValue ->
-                       Types.KLValue ->
-                       Types.KLValue -> Types.KLContext Types.Env Types.KLValue
-kl_shen_linearise_X (!kl_V1319) (!kl_V1320) (!kl_V1321) = do !kl_if_0 <- kl_V1321 `pseq` (kl_V1319 `pseq` eq kl_V1321 kl_V1319)
-                                                             case kl_if_0 of
-                                                                 Atom (B (True)) -> do return kl_V1320
-                                                                 Atom (B (False)) -> do let pat_cond_1 kl_V1321 kl_V1321h kl_V1321t = do let !appl_2 = ApplC (Func "lambda" (Context (\(!kl_L) -> do !kl_if_3 <- kl_L `pseq` (kl_V1321h `pseq` eq kl_L kl_V1321h)
-                                                                                                                                                                                                     case kl_if_3 of
-                                                                                                                                                                                                         Atom (B (True)) -> do !appl_4 <- kl_V1319 `pseq` (kl_V1320 `pseq` (kl_V1321t `pseq` kl_shen_linearise_X kl_V1319 kl_V1320 kl_V1321t))
-                                                                                                                                                                                                                               kl_V1321h `pseq` (appl_4 `pseq` klCons kl_V1321h appl_4)
-                                                                                                                                                                                                         Atom (B (False)) -> do do kl_L `pseq` (kl_V1321t `pseq` klCons kl_L kl_V1321t)
-                                                                                                                                                                                                         _ -> throwError "if: expected boolean")))
-                                                                                                                                         !appl_5 <- kl_V1319 `pseq` (kl_V1320 `pseq` (kl_V1321h `pseq` kl_shen_linearise_X kl_V1319 kl_V1320 kl_V1321h))
-                                                                                                                                         appl_5 `pseq` applyWrapper appl_2 [appl_5]
-                                                                                            pat_cond_6 = do do return kl_V1321
-                                                                                         in case kl_V1321 of
-                                                                                                !(kl_V1321@(Cons (!kl_V1321h)
-                                                                                                                 (!kl_V1321t))) -> pat_cond_1 kl_V1321 kl_V1321h kl_V1321t
-                                                                                                _ -> pat_cond_6
-                                                                 _ -> throwError "if: expected boolean"
-
-kl_shen_aritycheck :: Types.KLValue ->
-                      Types.KLValue -> Types.KLContext Types.Env Types.KLValue
-kl_shen_aritycheck (!kl_V1324) (!kl_V1325) = do let pat_cond_0 kl_V1325 kl_V1325h kl_V1325hh kl_V1325ht kl_V1325hth = do !appl_1 <- kl_V1325hth `pseq` kl_shen_aritycheck_action kl_V1325hth
-                                                                                                                         let !aw_2 = Types.Atom (Types.UnboundSym "arity")
-                                                                                                                         !appl_3 <- kl_V1324 `pseq` applyWrapper aw_2 [kl_V1324]
-                                                                                                                         let !aw_4 = Types.Atom (Types.UnboundSym "length")
-                                                                                                                         !appl_5 <- kl_V1325hh `pseq` applyWrapper aw_4 [kl_V1325hh]
-                                                                                                                         !appl_6 <- kl_V1324 `pseq` (appl_3 `pseq` (appl_5 `pseq` kl_shen_aritycheck_name kl_V1324 appl_3 appl_5))
-                                                                                                                         let !aw_7 = Types.Atom (Types.UnboundSym "do")
-                                                                                                                         appl_1 `pseq` (appl_6 `pseq` applyWrapper aw_7 [appl_1,
-                                                                                                                                                                         appl_6])
-                                                    pat_cond_8 kl_V1325 kl_V1325h kl_V1325hh kl_V1325ht kl_V1325hth kl_V1325t kl_V1325th kl_V1325thh kl_V1325tht kl_V1325thth kl_V1325tt = do let !aw_9 = Types.Atom (Types.UnboundSym "length")
-                                                                                                                                                                                              !appl_10 <- kl_V1325hh `pseq` applyWrapper aw_9 [kl_V1325hh]
-                                                                                                                                                                                              let !aw_11 = Types.Atom (Types.UnboundSym "length")
-                                                                                                                                                                                              !appl_12 <- kl_V1325thh `pseq` applyWrapper aw_11 [kl_V1325thh]
-                                                                                                                                                                                              !kl_if_13 <- appl_10 `pseq` (appl_12 `pseq` eq appl_10 appl_12)
-                                                                                                                                                                                              case kl_if_13 of
-                                                                                                                                                                                                  Atom (B (True)) -> do !appl_14 <- kl_V1325hth `pseq` kl_shen_aritycheck_action kl_V1325hth
-                                                                                                                                                                                                                        !appl_15 <- kl_V1324 `pseq` (kl_V1325t `pseq` kl_shen_aritycheck kl_V1324 kl_V1325t)
-                                                                                                                                                                                                                        let !aw_16 = Types.Atom (Types.UnboundSym "do")
-                                                                                                                                                                                                                        appl_14 `pseq` (appl_15 `pseq` applyWrapper aw_16 [appl_14,
-                                                                                                                                                                                                                                                                           appl_15])
-                                                                                                                                                                                                  Atom (B (False)) -> do do let !aw_17 = Types.Atom (Types.UnboundSym "shen.app")
-                                                                                                                                                                                                                            !appl_18 <- kl_V1324 `pseq` applyWrapper aw_17 [kl_V1324,
-                                                                                                                                                                                                                                                                            Types.Atom (Types.Str "\n"),
-                                                                                                                                                                                                                                                                            Types.Atom (Types.UnboundSym "shen.a")]
-                                                                                                                                                                                                                            !appl_19 <- appl_18 `pseq` cn (Types.Atom (Types.Str "arity error in ")) appl_18
-                                                                                                                                                                                                                            appl_19 `pseq` simpleError appl_19
-                                                                                                                                                                                                  _ -> throwError "if: expected boolean"
-                                                    pat_cond_20 = do do let !aw_21 = Types.Atom (Types.UnboundSym "shen.f_error")
-                                                                        applyWrapper aw_21 [ApplC (wrapNamed "shen.aritycheck" kl_shen_aritycheck)]
-                                                 in case kl_V1325 of
-                                                        !(kl_V1325@(Cons (!(kl_V1325h@(Cons (!kl_V1325hh)
-                                                                                            (!(kl_V1325ht@(Cons (!kl_V1325hth)
-                                                                                                                (Atom (Nil))))))))
-                                                                         (Atom (Nil)))) -> pat_cond_0 kl_V1325 kl_V1325h kl_V1325hh kl_V1325ht kl_V1325hth
-                                                        !(kl_V1325@(Cons (!(kl_V1325h@(Cons (!kl_V1325hh)
-                                                                                            (!(kl_V1325ht@(Cons (!kl_V1325hth)
-                                                                                                                (Atom (Nil))))))))
-                                                                         (!(kl_V1325t@(Cons (!(kl_V1325th@(Cons (!kl_V1325thh)
-                                                                                                                (!(kl_V1325tht@(Cons (!kl_V1325thth)
-                                                                                                                                     (Atom (Nil))))))))
-                                                                                            (!kl_V1325tt)))))) -> pat_cond_8 kl_V1325 kl_V1325h kl_V1325hh kl_V1325ht kl_V1325hth kl_V1325t kl_V1325th kl_V1325thh kl_V1325tht kl_V1325thth kl_V1325tt
-                                                        _ -> pat_cond_20
-
-kl_shen_aritycheck_name :: Types.KLValue ->
-                           Types.KLValue ->
-                           Types.KLValue -> Types.KLContext Types.Env Types.KLValue
-kl_shen_aritycheck_name (!kl_V1338) (!kl_V1339) (!kl_V1340) = do let pat_cond_0 = do return kl_V1340
-                                                                     pat_cond_1 = do !kl_if_2 <- kl_V1340 `pseq` (kl_V1339 `pseq` eq kl_V1340 kl_V1339)
-                                                                                     case kl_if_2 of
-                                                                                         Atom (B (True)) -> do return kl_V1340
-                                                                                         Atom (B (False)) -> do do let !aw_3 = Types.Atom (Types.UnboundSym "shen.app")
-                                                                                                                   !appl_4 <- kl_V1338 `pseq` applyWrapper aw_3 [kl_V1338,
-                                                                                                                                                                 Types.Atom (Types.Str " can cause errors.\n"),
-                                                                                                                                                                 Types.Atom (Types.UnboundSym "shen.a")]
-                                                                                                                   !appl_5 <- appl_4 `pseq` cn (Types.Atom (Types.Str "\nwarning: changing the arity of ")) appl_4
-                                                                                                                   let !aw_6 = Types.Atom (Types.UnboundSym "stoutput")
-                                                                                                                   !appl_7 <- applyWrapper aw_6 []
-                                                                                                                   let !aw_8 = Types.Atom (Types.UnboundSym "shen.prhush")
-                                                                                                                   !appl_9 <- appl_5 `pseq` (appl_7 `pseq` applyWrapper aw_8 [appl_5,
-                                                                                                                                                                              appl_7])
-                                                                                                                   let !aw_10 = Types.Atom (Types.UnboundSym "do")
-                                                                                                                   appl_9 `pseq` (kl_V1340 `pseq` applyWrapper aw_10 [appl_9,
-                                                                                                                                                                      kl_V1340])
-                                                                                         _ -> throwError "if: expected boolean"
-                                                                  in case kl_V1339 of
-                                                                         kl_V1339@(Atom (N (KI (-1)))) -> pat_cond_0
-                                                                         _ -> pat_cond_1
-
-kl_shen_aritycheck_action :: Types.KLValue ->
-                             Types.KLContext Types.Env Types.KLValue
-kl_shen_aritycheck_action (!kl_V1346) = do let pat_cond_0 kl_V1346 kl_V1346h kl_V1346t = do !appl_1 <- kl_V1346h `pseq` (kl_V1346t `pseq` kl_shen_aah kl_V1346h kl_V1346t)
-                                                                                            let !appl_2 = ApplC (Func "lambda" (Context (\(!kl_Y) -> do kl_Y `pseq` kl_shen_aritycheck_action kl_Y)))
-                                                                                            let !aw_3 = Types.Atom (Types.UnboundSym "map")
-                                                                                            !appl_4 <- appl_2 `pseq` (kl_V1346 `pseq` applyWrapper aw_3 [appl_2,
-                                                                                                                                                         kl_V1346])
-                                                                                            let !aw_5 = Types.Atom (Types.UnboundSym "do")
-                                                                                            appl_1 `pseq` (appl_4 `pseq` applyWrapper aw_5 [appl_1,
-                                                                                                                                            appl_4])
-                                               pat_cond_6 = do do return (Types.Atom (Types.UnboundSym "shen.skip"))
-                                            in case kl_V1346 of
-                                                   !(kl_V1346@(Cons (!kl_V1346h)
-                                                                    (!kl_V1346t))) -> pat_cond_0 kl_V1346 kl_V1346h kl_V1346t
-                                                   _ -> pat_cond_6
-
-kl_shen_aah :: Types.KLValue ->
-               Types.KLValue -> Types.KLContext Types.Env Types.KLValue
-kl_shen_aah (!kl_V1349) (!kl_V1350) = do let !appl_0 = ApplC (Func "lambda" (Context (\(!kl_Arity) -> do let !appl_1 = ApplC (Func "lambda" (Context (\(!kl_Len) -> do !kl_if_2 <- kl_Arity `pseq` greaterThan kl_Arity (Types.Atom (Types.N (Types.KI (-1))))
-                                                                                                                                                                       !kl_if_3 <- case kl_if_2 of
-                                                                                                                                                                                       Atom (B (True)) -> do !kl_if_4 <- kl_Len `pseq` (kl_Arity `pseq` greaterThan kl_Len kl_Arity)
-                                                                                                                                                                                                             case kl_if_4 of
-                                                                                                                                                                                                                 Atom (B (True)) -> do return (Atom (B True))
-                                                                                                                                                                                                                 Atom (B (False)) -> do do return (Atom (B False))
-                                                                                                                                                                                                                 _ -> throwError "if: expected boolean"
-                                                                                                                                                                                       Atom (B (False)) -> do do return (Atom (B False))
-                                                                                                                                                                                       _ -> throwError "if: expected boolean"
-                                                                                                                                                                       case kl_if_3 of
-                                                                                                                                                                           Atom (B (True)) -> do !kl_if_5 <- kl_Len `pseq` greaterThan kl_Len (Types.Atom (Types.N (Types.KI 1)))
-                                                                                                                                                                                                 !appl_6 <- case kl_if_5 of
-                                                                                                                                                                                                                Atom (B (True)) -> do return (Types.Atom (Types.Str "s"))
-                                                                                                                                                                                                                Atom (B (False)) -> do do return (Types.Atom (Types.Str ""))
-                                                                                                                                                                                                                _ -> throwError "if: expected boolean"
-                                                                                                                                                                                                 let !aw_7 = Types.Atom (Types.UnboundSym "shen.app")
-                                                                                                                                                                                                 !appl_8 <- appl_6 `pseq` applyWrapper aw_7 [appl_6,
-                                                                                                                                                                                                                                             Types.Atom (Types.Str ".\n"),
-                                                                                                                                                                                                                                             Types.Atom (Types.UnboundSym "shen.a")]
-                                                                                                                                                                                                 !appl_9 <- appl_8 `pseq` cn (Types.Atom (Types.Str " argument")) appl_8
-                                                                                                                                                                                                 let !aw_10 = Types.Atom (Types.UnboundSym "shen.app")
-                                                                                                                                                                                                 !appl_11 <- kl_Len `pseq` (appl_9 `pseq` applyWrapper aw_10 [kl_Len,
-                                                                                                                                                                                                                                                              appl_9,
-                                                                                                                                                                                                                                                              Types.Atom (Types.UnboundSym "shen.a")])
-                                                                                                                                                                                                 !appl_12 <- appl_11 `pseq` cn (Types.Atom (Types.Str " might not like ")) appl_11
-                                                                                                                                                                                                 let !aw_13 = Types.Atom (Types.UnboundSym "shen.app")
-                                                                                                                                                                                                 !appl_14 <- kl_V1349 `pseq` (appl_12 `pseq` applyWrapper aw_13 [kl_V1349,
-                                                                                                                                                                                                                                                                 appl_12,
-                                                                                                                                                                                                                                                                 Types.Atom (Types.UnboundSym "shen.a")])
-                                                                                                                                                                                                 !appl_15 <- appl_14 `pseq` cn (Types.Atom (Types.Str "warning: ")) appl_14
-                                                                                                                                                                                                 let !aw_16 = Types.Atom (Types.UnboundSym "stoutput")
-                                                                                                                                                                                                 !appl_17 <- applyWrapper aw_16 []
-                                                                                                                                                                                                 let !aw_18 = Types.Atom (Types.UnboundSym "shen.prhush")
-                                                                                                                                                                                                 appl_15 `pseq` (appl_17 `pseq` applyWrapper aw_18 [appl_15,
-                                                                                                                                                                                                                                                    appl_17])
-                                                                                                                                                                           Atom (B (False)) -> do do return (Types.Atom (Types.UnboundSym "shen.skip"))
-                                                                                                                                                                           _ -> throwError "if: expected boolean")))
-                                                                                                         let !aw_19 = Types.Atom (Types.UnboundSym "length")
-                                                                                                         !appl_20 <- kl_V1350 `pseq` applyWrapper aw_19 [kl_V1350]
-                                                                                                         appl_20 `pseq` applyWrapper appl_1 [appl_20])))
-                                         let !aw_21 = Types.Atom (Types.UnboundSym "arity")
-                                         !appl_22 <- kl_V1349 `pseq` applyWrapper aw_21 [kl_V1349]
-                                         appl_22 `pseq` applyWrapper appl_0 [appl_22]
-
-kl_shen_abstract_rule :: Types.KLValue ->
-                         Types.KLContext Types.Env Types.KLValue
-kl_shen_abstract_rule (!kl_V1352) = do let pat_cond_0 kl_V1352 kl_V1352h kl_V1352t kl_V1352th = do kl_V1352h `pseq` (kl_V1352th `pseq` kl_shen_abstraction_build kl_V1352h kl_V1352th)
-                                           pat_cond_1 = do do let !aw_2 = Types.Atom (Types.UnboundSym "shen.f_error")
-                                                              applyWrapper aw_2 [ApplC (wrapNamed "shen.abstract_rule" kl_shen_abstract_rule)]
-                                        in case kl_V1352 of
-                                               !(kl_V1352@(Cons (!kl_V1352h)
-                                                                (!(kl_V1352t@(Cons (!kl_V1352th)
-                                                                                   (Atom (Nil))))))) -> pat_cond_0 kl_V1352 kl_V1352h kl_V1352t kl_V1352th
-                                               _ -> pat_cond_1
-
-kl_shen_abstraction_build :: Types.KLValue ->
-                             Types.KLValue -> Types.KLContext Types.Env Types.KLValue
-kl_shen_abstraction_build (!kl_V1355) (!kl_V1356) = do let pat_cond_0 = do return kl_V1356
-                                                           pat_cond_1 kl_V1355 kl_V1355h kl_V1355t = do !appl_2 <- kl_V1355t `pseq` (kl_V1356 `pseq` kl_shen_abstraction_build kl_V1355t kl_V1356)
-                                                                                                        !appl_3 <- appl_2 `pseq` klCons appl_2 (Types.Atom Types.Nil)
-                                                                                                        !appl_4 <- kl_V1355h `pseq` (appl_3 `pseq` klCons kl_V1355h appl_3)
-                                                                                                        appl_4 `pseq` klCons (Types.Atom (Types.UnboundSym "/.")) appl_4
-                                                           pat_cond_5 = do do let !aw_6 = Types.Atom (Types.UnboundSym "shen.f_error")
-                                                                              applyWrapper aw_6 [ApplC (wrapNamed "shen.abstraction_build" kl_shen_abstraction_build)]
-                                                        in case kl_V1355 of
-                                                               kl_V1355@(Atom (Nil)) -> pat_cond_0
-                                                               !(kl_V1355@(Cons (!kl_V1355h)
-                                                                                (!kl_V1355t))) -> pat_cond_1 kl_V1355 kl_V1355h kl_V1355t
-                                                               _ -> pat_cond_5
-
-kl_shen_parameters :: Types.KLValue ->
-                      Types.KLContext Types.Env Types.KLValue
-kl_shen_parameters (!kl_V1358) = do let pat_cond_0 = do return (Types.Atom Types.Nil)
-                                        pat_cond_1 = do do let !aw_2 = Types.Atom (Types.UnboundSym "gensym")
-                                                           !appl_3 <- applyWrapper aw_2 [Types.Atom (Types.UnboundSym "V")]
-                                                           !appl_4 <- kl_V1358 `pseq` Primitives.subtract kl_V1358 (Types.Atom (Types.N (Types.KI 1)))
-                                                           !appl_5 <- appl_4 `pseq` kl_shen_parameters appl_4
-                                                           appl_3 `pseq` (appl_5 `pseq` klCons appl_3 appl_5)
-                                     in case kl_V1358 of
-                                            kl_V1358@(Atom (N (KI 0))) -> pat_cond_0
-                                            _ -> pat_cond_1
-
-kl_shen_application_build :: Types.KLValue ->
-                             Types.KLValue -> Types.KLContext Types.Env Types.KLValue
-kl_shen_application_build (!kl_V1361) (!kl_V1362) = do let pat_cond_0 = do return kl_V1362
-                                                           pat_cond_1 kl_V1361 kl_V1361h kl_V1361t = do !appl_2 <- kl_V1361h `pseq` klCons kl_V1361h (Types.Atom Types.Nil)
-                                                                                                        !appl_3 <- kl_V1362 `pseq` (appl_2 `pseq` klCons kl_V1362 appl_2)
-                                                                                                        kl_V1361t `pseq` (appl_3 `pseq` kl_shen_application_build kl_V1361t appl_3)
-                                                           pat_cond_4 = do do let !aw_5 = Types.Atom (Types.UnboundSym "shen.f_error")
-                                                                              applyWrapper aw_5 [ApplC (wrapNamed "shen.application_build" kl_shen_application_build)]
-                                                        in case kl_V1361 of
-                                                               kl_V1361@(Atom (Nil)) -> pat_cond_0
-                                                               !(kl_V1361@(Cons (!kl_V1361h)
-                                                                                (!kl_V1361t))) -> pat_cond_1 kl_V1361 kl_V1361h kl_V1361t
-                                                               _ -> pat_cond_4
-
-kl_shen_compile_to_kl :: Types.KLValue ->
-                         Types.KLValue -> Types.KLContext Types.Env Types.KLValue
-kl_shen_compile_to_kl (!kl_V1365) (!kl_V1366) = do let pat_cond_0 kl_V1366 kl_V1366h kl_V1366t kl_V1366th = do let !appl_1 = ApplC (Func "lambda" (Context (\(!kl_Arity) -> do let !appl_2 = ApplC (Func "lambda" (Context (\(!kl_Reduce) -> do let !appl_3 = ApplC (Func "lambda" (Context (\(!kl_CondExpression) -> do let !appl_4 = ApplC (Func "lambda" (Context (\(!kl_TypeTable) -> do let !appl_5 = ApplC (Func "lambda" (Context (\(!kl_TypedCondExpression) -> do let !appl_6 = ApplC (Func "lambda" (Context (\(!kl_KL) -> do return kl_KL)))
-                                                                                                                                                                                                                                                                                                                                                                                                                                                                           !appl_7 <- kl_TypedCondExpression `pseq` klCons kl_TypedCondExpression (Types.Atom Types.Nil)
-                                                                                                                                                                                                                                                                                                                                                                                                                                                                           !appl_8 <- kl_V1366h `pseq` (appl_7 `pseq` klCons kl_V1366h appl_7)
-                                                                                                                                                                                                                                                                                                                                                                                                                                                                           !appl_9 <- kl_V1365 `pseq` (appl_8 `pseq` klCons kl_V1365 appl_8)
-                                                                                                                                                                                                                                                                                                                                                                                                                                                                           !appl_10 <- appl_9 `pseq` klCons (Types.Atom (Types.UnboundSym "defun")) appl_9
-                                                                                                                                                                                                                                                                                                                                                                                                                                                                           appl_10 `pseq` applyWrapper appl_6 [appl_10])))
-                                                                                                                                                                                                                                                                                                                                                                                             !kl_if_11 <- value (Types.Atom (Types.UnboundSym "shen.*optimise*"))
-                                                                                                                                                                                                                                                                                                                                                                                             !appl_12 <- case kl_if_11 of
-                                                                                                                                                                                                                                                                                                                                                                                                             Atom (B (True)) -> do kl_V1366h `pseq` (kl_TypeTable `pseq` (kl_CondExpression `pseq` kl_shen_assign_types kl_V1366h kl_TypeTable kl_CondExpression))
-                                                                                                                                                                                                                                                                                                                                                                                                             Atom (B (False)) -> do do return kl_CondExpression
-                                                                                                                                                                                                                                                                                                                                                                                                             _ -> throwError "if: expected boolean"
-                                                                                                                                                                                                                                                                                                                                                                                             appl_12 `pseq` applyWrapper appl_5 [appl_12])))
-                                                                                                                                                                                                                                                                                                                         !kl_if_13 <- value (Types.Atom (Types.UnboundSym "shen.*optimise*"))
-                                                                                                                                                                                                                                                                                                                         !appl_14 <- case kl_if_13 of
-                                                                                                                                                                                                                                                                                                                                         Atom (B (True)) -> do !appl_15 <- kl_V1365 `pseq` kl_shen_get_type kl_V1365
-                                                                                                                                                                                                                                                                                                                                                               appl_15 `pseq` (kl_V1366h `pseq` kl_shen_typextable appl_15 kl_V1366h)
-                                                                                                                                                                                                                                                                                                                                         Atom (B (False)) -> do do return (Types.Atom (Types.UnboundSym "shen.skip"))
-                                                                                                                                                                                                                                                                                                                                         _ -> throwError "if: expected boolean"
-                                                                                                                                                                                                                                                                                                                         appl_14 `pseq` applyWrapper appl_4 [appl_14])))
-                                                                                                                                                                                                                                                !appl_16 <- kl_V1365 `pseq` (kl_V1366h `pseq` (kl_Reduce `pseq` kl_shen_cond_expression kl_V1365 kl_V1366h kl_Reduce))
-                                                                                                                                                                                                                                                appl_16 `pseq` applyWrapper appl_3 [appl_16])))
-                                                                                                                                                                               let !appl_17 = ApplC (Func "lambda" (Context (\(!kl_X) -> do kl_X `pseq` kl_shen_reduce kl_X)))
-                                                                                                                                                                               let !aw_18 = Types.Atom (Types.UnboundSym "map")
-                                                                                                                                                                               !appl_19 <- appl_17 `pseq` (kl_V1366th `pseq` applyWrapper aw_18 [appl_17,
-                                                                                                                                                                                                                                                 kl_V1366th])
-                                                                                                                                                                               appl_19 `pseq` applyWrapper appl_2 [appl_19])))
-                                                                                                               let !aw_20 = Types.Atom (Types.UnboundSym "length")
-                                                                                                               !appl_21 <- kl_V1366h `pseq` applyWrapper aw_20 [kl_V1366h]
-                                                                                                               !appl_22 <- kl_V1365 `pseq` (appl_21 `pseq` kl_shen_store_arity kl_V1365 appl_21)
-                                                                                                               appl_22 `pseq` applyWrapper appl_1 [appl_22]
-                                                       pat_cond_23 = do do let !aw_24 = Types.Atom (Types.UnboundSym "shen.f_error")
-                                                                           applyWrapper aw_24 [ApplC (wrapNamed "shen.compile_to_kl" kl_shen_compile_to_kl)]
-                                                    in case kl_V1366 of
-                                                           !(kl_V1366@(Cons (!kl_V1366h)
-                                                                            (!(kl_V1366t@(Cons (!kl_V1366th)
-                                                                                               (Atom (Nil))))))) -> pat_cond_0 kl_V1366 kl_V1366h kl_V1366t kl_V1366th
-                                                           _ -> pat_cond_23
-
-kl_shen_get_type :: Types.KLValue ->
-                    Types.KLContext Types.Env Types.KLValue
-kl_shen_get_type (!kl_V1372) = do let pat_cond_0 kl_V1372 kl_V1372h kl_V1372t = do return (Types.Atom (Types.UnboundSym "shen.skip"))
-                                      pat_cond_1 = do do let !appl_2 = ApplC (Func "lambda" (Context (\(!kl_FType) -> do let !aw_3 = Types.Atom (Types.UnboundSym "empty?")
-                                                                                                                         !kl_if_4 <- kl_FType `pseq` applyWrapper aw_3 [kl_FType]
-                                                                                                                         case kl_if_4 of
-                                                                                                                             Atom (B (True)) -> do return (Types.Atom (Types.UnboundSym "shen.skip"))
-                                                                                                                             Atom (B (False)) -> do do kl_FType `pseq` tl kl_FType
-                                                                                                                             _ -> throwError "if: expected boolean")))
-                                                         !appl_5 <- value (Types.Atom (Types.UnboundSym "shen.*signedfuncs*"))
-                                                         let !aw_6 = Types.Atom (Types.UnboundSym "assoc")
-                                                         !appl_7 <- kl_V1372 `pseq` (appl_5 `pseq` applyWrapper aw_6 [kl_V1372,
-                                                                                                                      appl_5])
-                                                         appl_7 `pseq` applyWrapper appl_2 [appl_7]
-                                   in case kl_V1372 of
-                                          !(kl_V1372@(Cons (!kl_V1372h)
-                                                           (!kl_V1372t))) -> pat_cond_0 kl_V1372 kl_V1372h kl_V1372t
-                                          _ -> pat_cond_1
-
-kl_shen_typextable :: Types.KLValue ->
-                      Types.KLValue -> Types.KLContext Types.Env Types.KLValue
-kl_shen_typextable (!kl_V1383) (!kl_V1384) = do !kl_if_0 <- let pat_cond_1 kl_V1383 kl_V1383h kl_V1383t = do !kl_if_2 <- let pat_cond_3 kl_V1383t kl_V1383th kl_V1383tt = do !kl_if_4 <- let pat_cond_5 = do !kl_if_6 <- let pat_cond_7 kl_V1383tt kl_V1383tth kl_V1383ttt = do !kl_if_8 <- let pat_cond_9 = do let pat_cond_10 kl_V1384 kl_V1384h kl_V1384t = do return (Atom (B True))
-                                                                                                                                                                                                                                                                                                                    pat_cond_11 = do do return (Atom (B False))
-                                                                                                                                                                                                                                                                                                                 in case kl_V1384 of
-                                                                                                                                                                                                                                                                                                                        !(kl_V1384@(Cons (!kl_V1384h)
-                                                                                                                                                                                                                                                                                                                                         (!kl_V1384t))) -> pat_cond_10 kl_V1384 kl_V1384h kl_V1384t
-                                                                                                                                                                                                                                                                                                                        _ -> pat_cond_11
-                                                                                                                                                                                                                                                                                                pat_cond_12 = do do return (Atom (B False))
-                                                                                                                                                                                                                                                                                             in case kl_V1383ttt of
-                                                                                                                                                                                                                                                                                                    kl_V1383ttt@(Atom (Nil)) -> pat_cond_9
-                                                                                                                                                                                                                                                                                                    _ -> pat_cond_12
-                                                                                                                                                                                                                                                                                case kl_if_8 of
-                                                                                                                                                                                                                                                                                    Atom (B (True)) -> do return (Atom (B True))
-                                                                                                                                                                                                                                                                                    Atom (B (False)) -> do do return (Atom (B False))
-                                                                                                                                                                                                                                                                                    _ -> throwError "if: expected boolean"
-                                                                                                                                                                                                                             pat_cond_13 = do do return (Atom (B False))
-                                                                                                                                                                                                                          in case kl_V1383tt of
-                                                                                                                                                                                                                                 !(kl_V1383tt@(Cons (!kl_V1383tth)
-                                                                                                                                                                                                                                                    (!kl_V1383ttt))) -> pat_cond_7 kl_V1383tt kl_V1383tth kl_V1383ttt
-                                                                                                                                                                                                                                 _ -> pat_cond_13
-                                                                                                                                                                                                             case kl_if_6 of
-                                                                                                                                                                                                                 Atom (B (True)) -> do return (Atom (B True))
-                                                                                                                                                                                                                 Atom (B (False)) -> do do return (Atom (B False))
-                                                                                                                                                                                                                 _ -> throwError "if: expected boolean"
-                                                                                                                                                                                             pat_cond_14 = do do return (Atom (B False))
-                                                                                                                                                                                          in case kl_V1383th of
-                                                                                                                                                                                                 kl_V1383th@(Atom (UnboundSym "-->")) -> pat_cond_5
-                                                                                                                                                                                                 kl_V1383th@(ApplC (PL "-->"
-                                                                                                                                                                                                                       _)) -> pat_cond_5
-                                                                                                                                                                                                 kl_V1383th@(ApplC (Func "-->"
-                                                                                                                                                                                                                         _)) -> pat_cond_5
-                                                                                                                                                                                                 _ -> pat_cond_14
-                                                                                                                                                                             case kl_if_4 of
-                                                                                                                                                                                 Atom (B (True)) -> do return (Atom (B True))
-                                                                                                                                                                                 Atom (B (False)) -> do do return (Atom (B False))
-                                                                                                                                                                                 _ -> throwError "if: expected boolean"
-                                                                                                                             pat_cond_15 = do do return (Atom (B False))
-                                                                                                                          in case kl_V1383t of
-                                                                                                                                 !(kl_V1383t@(Cons (!kl_V1383th)
-                                                                                                                                                   (!kl_V1383tt))) -> pat_cond_3 kl_V1383t kl_V1383th kl_V1383tt
-                                                                                                                                 _ -> pat_cond_15
-                                                                                                             case kl_if_2 of
-                                                                                                                 Atom (B (True)) -> do return (Atom (B True))
-                                                                                                                 Atom (B (False)) -> do do return (Atom (B False))
-                                                                                                                 _ -> throwError "if: expected boolean"
-                                                                pat_cond_16 = do do return (Atom (B False))
-                                                             in case kl_V1383 of
-                                                                    !(kl_V1383@(Cons (!kl_V1383h)
-                                                                                     (!kl_V1383t))) -> pat_cond_1 kl_V1383 kl_V1383h kl_V1383t
-                                                                    _ -> pat_cond_16
-                                                case kl_if_0 of
-                                                    Atom (B (True)) -> do !appl_17 <- kl_V1383 `pseq` hd kl_V1383
-                                                                          let !aw_18 = Types.Atom (Types.UnboundSym "variable?")
-                                                                          !kl_if_19 <- appl_17 `pseq` applyWrapper aw_18 [appl_17]
-                                                                          case kl_if_19 of
-                                                                              Atom (B (True)) -> do !appl_20 <- kl_V1383 `pseq` tl kl_V1383
-                                                                                                    !appl_21 <- appl_20 `pseq` tl appl_20
-                                                                                                    !appl_22 <- appl_21 `pseq` hd appl_21
-                                                                                                    !appl_23 <- kl_V1384 `pseq` tl kl_V1384
-                                                                                                    appl_22 `pseq` (appl_23 `pseq` kl_shen_typextable appl_22 appl_23)
-                                                                              Atom (B (False)) -> do do !appl_24 <- kl_V1384 `pseq` hd kl_V1384
-                                                                                                        !appl_25 <- kl_V1383 `pseq` hd kl_V1383
-                                                                                                        !appl_26 <- appl_24 `pseq` (appl_25 `pseq` klCons appl_24 appl_25)
-                                                                                                        !appl_27 <- kl_V1383 `pseq` tl kl_V1383
-                                                                                                        !appl_28 <- appl_27 `pseq` tl appl_27
-                                                                                                        !appl_29 <- appl_28 `pseq` hd appl_28
-                                                                                                        !appl_30 <- kl_V1384 `pseq` tl kl_V1384
-                                                                                                        !appl_31 <- appl_29 `pseq` (appl_30 `pseq` kl_shen_typextable appl_29 appl_30)
-                                                                                                        appl_26 `pseq` (appl_31 `pseq` klCons appl_26 appl_31)
-                                                                              _ -> throwError "if: expected boolean"
-                                                    Atom (B (False)) -> do do return (Types.Atom Types.Nil)
-                                                    _ -> throwError "if: expected boolean"
-
-kl_shen_assign_types :: Types.KLValue ->
-                        Types.KLValue ->
-                        Types.KLValue -> Types.KLContext Types.Env Types.KLValue
-kl_shen_assign_types (!kl_V1388) (!kl_V1389) (!kl_V1390) = do let pat_cond_0 kl_V1390 kl_V1390t kl_V1390th kl_V1390tt kl_V1390tth kl_V1390ttt kl_V1390ttth = do !appl_1 <- kl_V1388 `pseq` (kl_V1389 `pseq` (kl_V1390tth `pseq` kl_shen_assign_types kl_V1388 kl_V1389 kl_V1390tth))
-                                                                                                                                                                !appl_2 <- kl_V1390th `pseq` (kl_V1388 `pseq` klCons kl_V1390th kl_V1388)
-                                                                                                                                                                !appl_3 <- appl_2 `pseq` (kl_V1389 `pseq` (kl_V1390ttth `pseq` kl_shen_assign_types appl_2 kl_V1389 kl_V1390ttth))
-                                                                                                                                                                !appl_4 <- appl_3 `pseq` klCons appl_3 (Types.Atom Types.Nil)
-                                                                                                                                                                !appl_5 <- appl_1 `pseq` (appl_4 `pseq` klCons appl_1 appl_4)
-                                                                                                                                                                !appl_6 <- kl_V1390th `pseq` (appl_5 `pseq` klCons kl_V1390th appl_5)
-                                                                                                                                                                appl_6 `pseq` klCons (Types.Atom (Types.UnboundSym "let")) appl_6
-                                                                  pat_cond_7 kl_V1390 kl_V1390t kl_V1390th kl_V1390tt kl_V1390tth = do !appl_8 <- kl_V1390th `pseq` (kl_V1388 `pseq` klCons kl_V1390th kl_V1388)
-                                                                                                                                       !appl_9 <- appl_8 `pseq` (kl_V1389 `pseq` (kl_V1390tth `pseq` kl_shen_assign_types appl_8 kl_V1389 kl_V1390tth))
-                                                                                                                                       !appl_10 <- appl_9 `pseq` klCons appl_9 (Types.Atom Types.Nil)
-                                                                                                                                       !appl_11 <- kl_V1390th `pseq` (appl_10 `pseq` klCons kl_V1390th appl_10)
-                                                                                                                                       appl_11 `pseq` klCons (Types.Atom (Types.UnboundSym "lambda")) appl_11
-                                                                  pat_cond_12 kl_V1390 kl_V1390t = do let !appl_13 = ApplC (Func "lambda" (Context (\(!kl_Y) -> do !appl_14 <- kl_Y `pseq` hd kl_Y
-                                                                                                                                                                   !appl_15 <- kl_V1388 `pseq` (kl_V1389 `pseq` (appl_14 `pseq` kl_shen_assign_types kl_V1388 kl_V1389 appl_14))
-                                                                                                                                                                   !appl_16 <- kl_Y `pseq` tl kl_Y
-                                                                                                                                                                   !appl_17 <- appl_16 `pseq` hd appl_16
-                                                                                                                                                                   !appl_18 <- kl_V1388 `pseq` (kl_V1389 `pseq` (appl_17 `pseq` kl_shen_assign_types kl_V1388 kl_V1389 appl_17))
-                                                                                                                                                                   !appl_19 <- appl_18 `pseq` klCons appl_18 (Types.Atom Types.Nil)
-                                                                                                                                                                   appl_15 `pseq` (appl_19 `pseq` klCons appl_15 appl_19))))
-                                                                                                      let !aw_20 = Types.Atom (Types.UnboundSym "map")
-                                                                                                      !appl_21 <- appl_13 `pseq` (kl_V1390t `pseq` applyWrapper aw_20 [appl_13,
-                                                                                                                                                                       kl_V1390t])
-                                                                                                      appl_21 `pseq` klCons (Types.Atom (Types.UnboundSym "cond")) appl_21
-                                                                  pat_cond_22 kl_V1390 kl_V1390h kl_V1390t = do let !appl_23 = ApplC (Func "lambda" (Context (\(!kl_NewTable) -> do let !appl_24 = ApplC (Func "lambda" (Context (\(!kl_Y) -> do let !aw_25 = Types.Atom (Types.UnboundSym "append")
-                                                                                                                                                                                                                                                 !appl_26 <- kl_V1389 `pseq` (kl_NewTable `pseq` applyWrapper aw_25 [kl_V1389,
-                                                                                                                                                                                                                                                                                                                     kl_NewTable])
-                                                                                                                                                                                                                                                 kl_V1388 `pseq` (appl_26 `pseq` (kl_Y `pseq` kl_shen_assign_types kl_V1388 appl_26 kl_Y)))))
-                                                                                                                                                                                    let !aw_27 = Types.Atom (Types.UnboundSym "map")
-                                                                                                                                                                                    !appl_28 <- appl_24 `pseq` (kl_V1390t `pseq` applyWrapper aw_27 [appl_24,
-                                                                                                                                                                                                                                                     kl_V1390t])
-                                                                                                                                                                                    kl_V1390h `pseq` (appl_28 `pseq` klCons kl_V1390h appl_28))))
-                                                                                                                !appl_29 <- kl_V1390h `pseq` kl_shen_get_type kl_V1390h
-                                                                                                                !appl_30 <- appl_29 `pseq` (kl_V1390t `pseq` kl_shen_typextable appl_29 kl_V1390t)
-                                                                                                                appl_30 `pseq` applyWrapper appl_23 [appl_30]
-                                                                  pat_cond_31 = do do let !appl_32 = ApplC (Func "lambda" (Context (\(!kl_AtomType) -> do let pat_cond_33 kl_AtomType kl_AtomTypeh kl_AtomTypet = do !appl_34 <- kl_AtomTypet `pseq` klCons kl_AtomTypet (Types.Atom Types.Nil)
-                                                                                                                                                                                                                     !appl_35 <- kl_V1390 `pseq` (appl_34 `pseq` klCons kl_V1390 appl_34)
-                                                                                                                                                                                                                     appl_35 `pseq` klCons (ApplC (wrapNamed "type" typeA)) appl_35
-                                                                                                                                                              pat_cond_36 = do do let !aw_37 = Types.Atom (Types.UnboundSym "element?")
-                                                                                                                                                                                  !kl_if_38 <- kl_V1390 `pseq` (kl_V1388 `pseq` applyWrapper aw_37 [kl_V1390,
-                                                                                                                                                                                                                                                    kl_V1388])
-                                                                                                                                                                                  case kl_if_38 of
-                                                                                                                                                                                      Atom (B (True)) -> do return kl_V1390
-                                                                                                                                                                                      Atom (B (False)) -> do do kl_V1390 `pseq` kl_shen_atom_type kl_V1390
-                                                                                                                                                                                      _ -> throwError "if: expected boolean"
-                                                                                                                                                           in case kl_AtomType of
-                                                                                                                                                                  !(kl_AtomType@(Cons (!kl_AtomTypeh)
-                                                                                                                                                                                      (!kl_AtomTypet))) -> pat_cond_33 kl_AtomType kl_AtomTypeh kl_AtomTypet
-                                                                                                                                                                  _ -> pat_cond_36)))
-                                                                                      let !aw_39 = Types.Atom (Types.UnboundSym "assoc")
-                                                                                      !appl_40 <- kl_V1390 `pseq` (kl_V1389 `pseq` applyWrapper aw_39 [kl_V1390,
-                                                                                                                                                       kl_V1389])
-                                                                                      appl_40 `pseq` applyWrapper appl_32 [appl_40]
-                                                               in case kl_V1390 of
-                                                                      !(kl_V1390@(Cons (Atom (UnboundSym "let"))
-                                                                                       (!(kl_V1390t@(Cons (!kl_V1390th)
-                                                                                                          (!(kl_V1390tt@(Cons (!kl_V1390tth)
-                                                                                                                              (!(kl_V1390ttt@(Cons (!kl_V1390ttth)
-                                                                                                                                                   (Atom (Nil))))))))))))) -> pat_cond_0 kl_V1390 kl_V1390t kl_V1390th kl_V1390tt kl_V1390tth kl_V1390ttt kl_V1390ttth
-                                                                      !(kl_V1390@(Cons (ApplC (PL "let"
-                                                                                                  _))
-                                                                                       (!(kl_V1390t@(Cons (!kl_V1390th)
-                                                                                                          (!(kl_V1390tt@(Cons (!kl_V1390tth)
-                                                                                                                              (!(kl_V1390ttt@(Cons (!kl_V1390ttth)
-                                                                                                                                                   (Atom (Nil))))))))))))) -> pat_cond_0 kl_V1390 kl_V1390t kl_V1390th kl_V1390tt kl_V1390tth kl_V1390ttt kl_V1390ttth
-                                                                      !(kl_V1390@(Cons (ApplC (Func "let"
-                                                                                                    _))
-                                                                                       (!(kl_V1390t@(Cons (!kl_V1390th)
-                                                                                                          (!(kl_V1390tt@(Cons (!kl_V1390tth)
-                                                                                                                              (!(kl_V1390ttt@(Cons (!kl_V1390ttth)
-                                                                                                                                                   (Atom (Nil))))))))))))) -> pat_cond_0 kl_V1390 kl_V1390t kl_V1390th kl_V1390tt kl_V1390tth kl_V1390ttt kl_V1390ttth
-                                                                      !(kl_V1390@(Cons (Atom (UnboundSym "lambda"))
-                                                                                       (!(kl_V1390t@(Cons (!kl_V1390th)
-                                                                                                          (!(kl_V1390tt@(Cons (!kl_V1390tth)
-                                                                                                                              (Atom (Nil)))))))))) -> pat_cond_7 kl_V1390 kl_V1390t kl_V1390th kl_V1390tt kl_V1390tth
-                                                                      !(kl_V1390@(Cons (ApplC (PL "lambda"
-                                                                                                  _))
-                                                                                       (!(kl_V1390t@(Cons (!kl_V1390th)
-                                                                                                          (!(kl_V1390tt@(Cons (!kl_V1390tth)
-                                                                                                                              (Atom (Nil)))))))))) -> pat_cond_7 kl_V1390 kl_V1390t kl_V1390th kl_V1390tt kl_V1390tth
-                                                                      !(kl_V1390@(Cons (ApplC (Func "lambda"
-                                                                                                    _))
-                                                                                       (!(kl_V1390t@(Cons (!kl_V1390th)
-                                                                                                          (!(kl_V1390tt@(Cons (!kl_V1390tth)
-                                                                                                                              (Atom (Nil)))))))))) -> pat_cond_7 kl_V1390 kl_V1390t kl_V1390th kl_V1390tt kl_V1390tth
-                                                                      !(kl_V1390@(Cons (Atom (UnboundSym "cond"))
-                                                                                       (!kl_V1390t))) -> pat_cond_12 kl_V1390 kl_V1390t
-                                                                      !(kl_V1390@(Cons (ApplC (PL "cond"
-                                                                                                  _))
-                                                                                       (!kl_V1390t))) -> pat_cond_12 kl_V1390 kl_V1390t
-                                                                      !(kl_V1390@(Cons (ApplC (Func "cond"
-                                                                                                    _))
-                                                                                       (!kl_V1390t))) -> pat_cond_12 kl_V1390 kl_V1390t
-                                                                      !(kl_V1390@(Cons (!kl_V1390h)
-                                                                                       (!kl_V1390t))) -> pat_cond_22 kl_V1390 kl_V1390h kl_V1390t
-                                                                      _ -> pat_cond_31
-
-kl_shen_atom_type :: Types.KLValue ->
-                     Types.KLContext Types.Env Types.KLValue
-kl_shen_atom_type (!kl_V1392) = do !kl_if_0 <- kl_V1392 `pseq` stringP kl_V1392
-                                   case kl_if_0 of
-                                       Atom (B (True)) -> do !appl_1 <- klCons (Types.Atom (Types.UnboundSym "string")) (Types.Atom Types.Nil)
-                                                             !appl_2 <- kl_V1392 `pseq` (appl_1 `pseq` klCons kl_V1392 appl_1)
-                                                             appl_2 `pseq` klCons (ApplC (wrapNamed "type" typeA)) appl_2
-                                       Atom (B (False)) -> do do !kl_if_3 <- kl_V1392 `pseq` numberP kl_V1392
-                                                                 case kl_if_3 of
-                                                                     Atom (B (True)) -> do !appl_4 <- klCons (Types.Atom (Types.UnboundSym "number")) (Types.Atom Types.Nil)
-                                                                                           !appl_5 <- kl_V1392 `pseq` (appl_4 `pseq` klCons kl_V1392 appl_4)
-                                                                                           appl_5 `pseq` klCons (ApplC (wrapNamed "type" typeA)) appl_5
-                                                                     Atom (B (False)) -> do do let !aw_6 = Types.Atom (Types.UnboundSym "boolean?")
-                                                                                               !kl_if_7 <- kl_V1392 `pseq` applyWrapper aw_6 [kl_V1392]
-                                                                                               case kl_if_7 of
-                                                                                                   Atom (B (True)) -> do !appl_8 <- klCons (Types.Atom (Types.UnboundSym "boolean")) (Types.Atom Types.Nil)
-                                                                                                                         !appl_9 <- kl_V1392 `pseq` (appl_8 `pseq` klCons kl_V1392 appl_8)
-                                                                                                                         appl_9 `pseq` klCons (ApplC (wrapNamed "type" typeA)) appl_9
-                                                                                                   Atom (B (False)) -> do do let !aw_10 = Types.Atom (Types.UnboundSym "symbol?")
-                                                                                                                             !kl_if_11 <- kl_V1392 `pseq` applyWrapper aw_10 [kl_V1392]
-                                                                                                                             case kl_if_11 of
-                                                                                                                                 Atom (B (True)) -> do !appl_12 <- klCons (Types.Atom (Types.UnboundSym "symbol")) (Types.Atom Types.Nil)
-                                                                                                                                                       !appl_13 <- kl_V1392 `pseq` (appl_12 `pseq` klCons kl_V1392 appl_12)
-                                                                                                                                                       appl_13 `pseq` klCons (ApplC (wrapNamed "type" typeA)) appl_13
-                                                                                                                                 Atom (B (False)) -> do do return kl_V1392
-                                                                                                                                 _ -> throwError "if: expected boolean"
-                                                                                                   _ -> throwError "if: expected boolean"
-                                                                     _ -> throwError "if: expected boolean"
-                                       _ -> throwError "if: expected boolean"
-
-kl_shen_store_arity :: Types.KLValue ->
-                       Types.KLValue -> Types.KLContext Types.Env Types.KLValue
-kl_shen_store_arity (!kl_V1397) (!kl_V1398) = do !kl_if_0 <- value (Types.Atom (Types.UnboundSym "shen.*installing-kl*"))
-                                                 case kl_if_0 of
-                                                     Atom (B (True)) -> do return (Types.Atom (Types.UnboundSym "shen.skip"))
-                                                     Atom (B (False)) -> do do !appl_1 <- value (Types.Atom (Types.UnboundSym "*property-vector*"))
-                                                                               let !aw_2 = Types.Atom (Types.UnboundSym "put")
-                                                                               kl_V1397 `pseq` (kl_V1398 `pseq` (appl_1 `pseq` applyWrapper aw_2 [kl_V1397,
-                                                                                                                                                  Types.Atom (Types.UnboundSym "arity"),
-                                                                                                                                                  kl_V1398,
-                                                                                                                                                  appl_1]))
-                                                     _ -> throwError "if: expected boolean"
-
-kl_shen_reduce :: Types.KLValue ->
-                  Types.KLContext Types.Env Types.KLValue
-kl_shen_reduce (!kl_V1400) = do !appl_0 <- klSet (Types.Atom (Types.UnboundSym "shen.*teststack*")) (Types.Atom Types.Nil)
-                                let !appl_1 = ApplC (Func "lambda" (Context (\(!kl_Result) -> do !appl_2 <- value (Types.Atom (Types.UnboundSym "shen.*teststack*"))
-                                                                                                 let !aw_3 = Types.Atom (Types.UnboundSym "reverse")
-                                                                                                 !appl_4 <- appl_2 `pseq` applyWrapper aw_3 [appl_2]
-                                                                                                 !appl_5 <- appl_4 `pseq` klCons (Types.Atom (Types.UnboundSym "shen.tests")) appl_4
-                                                                                                 !appl_6 <- appl_5 `pseq` klCons (Types.Atom (Types.UnboundSym ":")) appl_5
-                                                                                                 !appl_7 <- kl_Result `pseq` klCons kl_Result (Types.Atom Types.Nil)
-                                                                                                 appl_6 `pseq` (appl_7 `pseq` klCons appl_6 appl_7))))
-                                !appl_8 <- kl_V1400 `pseq` kl_shen_reduce_help kl_V1400
-                                !appl_9 <- appl_8 `pseq` applyWrapper appl_1 [appl_8]
-                                let !aw_10 = Types.Atom (Types.UnboundSym "do")
-                                appl_0 `pseq` (appl_9 `pseq` applyWrapper aw_10 [appl_0, appl_9])
-
-kl_shen_reduce_help :: Types.KLValue ->
-                       Types.KLContext Types.Env Types.KLValue
-kl_shen_reduce_help (!kl_V1402) = do let pat_cond_0 kl_V1402 kl_V1402h kl_V1402ht kl_V1402hth kl_V1402htht kl_V1402hthth kl_V1402hthtt kl_V1402hthtth kl_V1402htt kl_V1402htth kl_V1402t kl_V1402th = do !appl_1 <- kl_V1402t `pseq` klCons (ApplC (wrapNamed "cons?" consP)) kl_V1402t
-                                                                                                                                                                                                         !appl_2 <- appl_1 `pseq` kl_shen_add_test appl_1
-                                                                                                                                                                                                         let !appl_3 = ApplC (Func "lambda" (Context (\(!kl_Abstraction) -> do let !appl_4 = ApplC (Func "lambda" (Context (\(!kl_Application) -> do kl_Application `pseq` kl_shen_reduce_help kl_Application)))
-                                                                                                                                                                                                                                                                               !appl_5 <- kl_V1402t `pseq` klCons (ApplC (wrapNamed "hd" hd)) kl_V1402t
-                                                                                                                                                                                                                                                                               !appl_6 <- appl_5 `pseq` klCons appl_5 (Types.Atom Types.Nil)
-                                                                                                                                                                                                                                                                               !appl_7 <- kl_Abstraction `pseq` (appl_6 `pseq` klCons kl_Abstraction appl_6)
-                                                                                                                                                                                                                                                                               !appl_8 <- kl_V1402t `pseq` klCons (ApplC (wrapNamed "tl" tl)) kl_V1402t
-                                                                                                                                                                                                                                                                               !appl_9 <- appl_8 `pseq` klCons appl_8 (Types.Atom Types.Nil)
-                                                                                                                                                                                                                                                                               !appl_10 <- appl_7 `pseq` (appl_9 `pseq` klCons appl_7 appl_9)
-                                                                                                                                                                                                                                                                               appl_10 `pseq` applyWrapper appl_4 [appl_10])))
-                                                                                                                                                                                                         !appl_11 <- kl_V1402th `pseq` (kl_V1402hth `pseq` (kl_V1402htth `pseq` kl_shen_ebr kl_V1402th kl_V1402hth kl_V1402htth))
-                                                                                                                                                                                                         !appl_12 <- appl_11 `pseq` klCons appl_11 (Types.Atom Types.Nil)
-                                                                                                                                                                                                         !appl_13 <- kl_V1402hthtth `pseq` (appl_12 `pseq` klCons kl_V1402hthtth appl_12)
-                                                                                                                                                                                                         !appl_14 <- appl_13 `pseq` klCons (Types.Atom (Types.UnboundSym "/.")) appl_13
-                                                                                                                                                                                                         !appl_15 <- appl_14 `pseq` klCons appl_14 (Types.Atom Types.Nil)
-                                                                                                                                                                                                         !appl_16 <- kl_V1402hthth `pseq` (appl_15 `pseq` klCons kl_V1402hthth appl_15)
-                                                                                                                                                                                                         !appl_17 <- appl_16 `pseq` klCons (Types.Atom (Types.UnboundSym "/.")) appl_16
-                                                                                                                                                                                                         !appl_18 <- appl_17 `pseq` applyWrapper appl_3 [appl_17]
-                                                                                                                                                                                                         let !aw_19 = Types.Atom (Types.UnboundSym "do")
-                                                                                                                                                                                                         appl_2 `pseq` (appl_18 `pseq` applyWrapper aw_19 [appl_2,
-                                                                                                                                                                                                                                                           appl_18])
-                                         pat_cond_20 kl_V1402 kl_V1402h kl_V1402ht kl_V1402hth kl_V1402htht kl_V1402hthth kl_V1402hthtt kl_V1402hthtth kl_V1402htt kl_V1402htth kl_V1402t kl_V1402th = do !appl_21 <- kl_V1402t `pseq` klCons (Types.Atom (Types.UnboundSym "tuple?")) kl_V1402t
-                                                                                                                                                                                                          !appl_22 <- appl_21 `pseq` kl_shen_add_test appl_21
-                                                                                                                                                                                                          let !appl_23 = ApplC (Func "lambda" (Context (\(!kl_Abstraction) -> do let !appl_24 = ApplC (Func "lambda" (Context (\(!kl_Application) -> do kl_Application `pseq` kl_shen_reduce_help kl_Application)))
-                                                                                                                                                                                                                                                                                 !appl_25 <- kl_V1402t `pseq` klCons (Types.Atom (Types.UnboundSym "fst")) kl_V1402t
-                                                                                                                                                                                                                                                                                 !appl_26 <- appl_25 `pseq` klCons appl_25 (Types.Atom Types.Nil)
-                                                                                                                                                                                                                                                                                 !appl_27 <- kl_Abstraction `pseq` (appl_26 `pseq` klCons kl_Abstraction appl_26)
-                                                                                                                                                                                                                                                                                 !appl_28 <- kl_V1402t `pseq` klCons (Types.Atom (Types.UnboundSym "snd")) kl_V1402t
-                                                                                                                                                                                                                                                                                 !appl_29 <- appl_28 `pseq` klCons appl_28 (Types.Atom Types.Nil)
-                                                                                                                                                                                                                                                                                 !appl_30 <- appl_27 `pseq` (appl_29 `pseq` klCons appl_27 appl_29)
-                                                                                                                                                                                                                                                                                 appl_30 `pseq` applyWrapper appl_24 [appl_30])))
-                                                                                                                                                                                                          !appl_31 <- kl_V1402th `pseq` (kl_V1402hth `pseq` (kl_V1402htth `pseq` kl_shen_ebr kl_V1402th kl_V1402hth kl_V1402htth))
-                                                                                                                                                                                                          !appl_32 <- appl_31 `pseq` klCons appl_31 (Types.Atom Types.Nil)
-                                                                                                                                                                                                          !appl_33 <- kl_V1402hthtth `pseq` (appl_32 `pseq` klCons kl_V1402hthtth appl_32)
-                                                                                                                                                                                                          !appl_34 <- appl_33 `pseq` klCons (Types.Atom (Types.UnboundSym "/.")) appl_33
-                                                                                                                                                                                                          !appl_35 <- appl_34 `pseq` klCons appl_34 (Types.Atom Types.Nil)
-                                                                                                                                                                                                          !appl_36 <- kl_V1402hthth `pseq` (appl_35 `pseq` klCons kl_V1402hthth appl_35)
-                                                                                                                                                                                                          !appl_37 <- appl_36 `pseq` klCons (Types.Atom (Types.UnboundSym "/.")) appl_36
-                                                                                                                                                                                                          !appl_38 <- appl_37 `pseq` applyWrapper appl_23 [appl_37]
-                                                                                                                                                                                                          let !aw_39 = Types.Atom (Types.UnboundSym "do")
-                                                                                                                                                                                                          appl_22 `pseq` (appl_38 `pseq` applyWrapper aw_39 [appl_22,
-                                                                                                                                                                                                                                                             appl_38])
-                                         pat_cond_40 kl_V1402 kl_V1402h kl_V1402ht kl_V1402hth kl_V1402htht kl_V1402hthth kl_V1402hthtt kl_V1402hthtth kl_V1402htt kl_V1402htth kl_V1402t kl_V1402th = do !appl_41 <- kl_V1402t `pseq` klCons (Types.Atom (Types.UnboundSym "shen.+vector?")) kl_V1402t
-                                                                                                                                                                                                          !appl_42 <- appl_41 `pseq` kl_shen_add_test appl_41
-                                                                                                                                                                                                          let !appl_43 = ApplC (Func "lambda" (Context (\(!kl_Abstraction) -> do let !appl_44 = ApplC (Func "lambda" (Context (\(!kl_Application) -> do kl_Application `pseq` kl_shen_reduce_help kl_Application)))
-                                                                                                                                                                                                                                                                                 !appl_45 <- kl_V1402t `pseq` klCons (Types.Atom (Types.UnboundSym "hdv")) kl_V1402t
-                                                                                                                                                                                                                                                                                 !appl_46 <- appl_45 `pseq` klCons appl_45 (Types.Atom Types.Nil)
-                                                                                                                                                                                                                                                                                 !appl_47 <- kl_Abstraction `pseq` (appl_46 `pseq` klCons kl_Abstraction appl_46)
-                                                                                                                                                                                                                                                                                 !appl_48 <- kl_V1402t `pseq` klCons (Types.Atom (Types.UnboundSym "tlv")) kl_V1402t
-                                                                                                                                                                                                                                                                                 !appl_49 <- appl_48 `pseq` klCons appl_48 (Types.Atom Types.Nil)
-                                                                                                                                                                                                                                                                                 !appl_50 <- appl_47 `pseq` (appl_49 `pseq` klCons appl_47 appl_49)
-                                                                                                                                                                                                                                                                                 appl_50 `pseq` applyWrapper appl_44 [appl_50])))
-                                                                                                                                                                                                          !appl_51 <- kl_V1402th `pseq` (kl_V1402hth `pseq` (kl_V1402htth `pseq` kl_shen_ebr kl_V1402th kl_V1402hth kl_V1402htth))
-                                                                                                                                                                                                          !appl_52 <- appl_51 `pseq` klCons appl_51 (Types.Atom Types.Nil)
-                                                                                                                                                                                                          !appl_53 <- kl_V1402hthtth `pseq` (appl_52 `pseq` klCons kl_V1402hthtth appl_52)
-                                                                                                                                                                                                          !appl_54 <- appl_53 `pseq` klCons (Types.Atom (Types.UnboundSym "/.")) appl_53
-                                                                                                                                                                                                          !appl_55 <- appl_54 `pseq` klCons appl_54 (Types.Atom Types.Nil)
-                                                                                                                                                                                                          !appl_56 <- kl_V1402hthth `pseq` (appl_55 `pseq` klCons kl_V1402hthth appl_55)
-                                                                                                                                                                                                          !appl_57 <- appl_56 `pseq` klCons (Types.Atom (Types.UnboundSym "/.")) appl_56
-                                                                                                                                                                                                          !appl_58 <- appl_57 `pseq` applyWrapper appl_43 [appl_57]
-                                                                                                                                                                                                          let !aw_59 = Types.Atom (Types.UnboundSym "do")
-                                                                                                                                                                                                          appl_42 `pseq` (appl_58 `pseq` applyWrapper aw_59 [appl_42,
-                                                                                                                                                                                                                                                             appl_58])
-                                         pat_cond_60 kl_V1402 kl_V1402h kl_V1402ht kl_V1402hth kl_V1402htht kl_V1402hthth kl_V1402hthtt kl_V1402hthtth kl_V1402htt kl_V1402htth kl_V1402t kl_V1402th = do !appl_61 <- kl_V1402t `pseq` klCons (ApplC (wrapNamed "shen.+string?" kl_shen_PlusstringP)) kl_V1402t
-                                                                                                                                                                                                          !appl_62 <- appl_61 `pseq` kl_shen_add_test appl_61
-                                                                                                                                                                                                          let !appl_63 = ApplC (Func "lambda" (Context (\(!kl_Abstraction) -> do let !appl_64 = ApplC (Func "lambda" (Context (\(!kl_Application) -> do kl_Application `pseq` kl_shen_reduce_help kl_Application)))
-                                                                                                                                                                                                                                                                                 !appl_65 <- klCons (Types.Atom (Types.N (Types.KI 0))) (Types.Atom Types.Nil)
-                                                                                                                                                                                                                                                                                 !appl_66 <- kl_V1402th `pseq` (appl_65 `pseq` klCons kl_V1402th appl_65)
-                                                                                                                                                                                                                                                                                 !appl_67 <- appl_66 `pseq` klCons (ApplC (wrapNamed "pos" pos)) appl_66
-                                                                                                                                                                                                                                                                                 !appl_68 <- appl_67 `pseq` klCons appl_67 (Types.Atom Types.Nil)
-                                                                                                                                                                                                                                                                                 !appl_69 <- kl_Abstraction `pseq` (appl_68 `pseq` klCons kl_Abstraction appl_68)
-                                                                                                                                                                                                                                                                                 !appl_70 <- kl_V1402t `pseq` klCons (ApplC (wrapNamed "tlstr" tlstr)) kl_V1402t
-                                                                                                                                                                                                                                                                                 !appl_71 <- appl_70 `pseq` klCons appl_70 (Types.Atom Types.Nil)
-                                                                                                                                                                                                                                                                                 !appl_72 <- appl_69 `pseq` (appl_71 `pseq` klCons appl_69 appl_71)
-                                                                                                                                                                                                                                                                                 appl_72 `pseq` applyWrapper appl_64 [appl_72])))
-                                                                                                                                                                                                          !appl_73 <- kl_V1402th `pseq` (kl_V1402hth `pseq` (kl_V1402htth `pseq` kl_shen_ebr kl_V1402th kl_V1402hth kl_V1402htth))
-                                                                                                                                                                                                          !appl_74 <- appl_73 `pseq` klCons appl_73 (Types.Atom Types.Nil)
-                                                                                                                                                                                                          !appl_75 <- kl_V1402hthtth `pseq` (appl_74 `pseq` klCons kl_V1402hthtth appl_74)
-                                                                                                                                                                                                          !appl_76 <- appl_75 `pseq` klCons (Types.Atom (Types.UnboundSym "/.")) appl_75
-                                                                                                                                                                                                          !appl_77 <- appl_76 `pseq` klCons appl_76 (Types.Atom Types.Nil)
-                                                                                                                                                                                                          !appl_78 <- kl_V1402hthth `pseq` (appl_77 `pseq` klCons kl_V1402hthth appl_77)
-                                                                                                                                                                                                          !appl_79 <- appl_78 `pseq` klCons (Types.Atom (Types.UnboundSym "/.")) appl_78
-                                                                                                                                                                                                          !appl_80 <- appl_79 `pseq` applyWrapper appl_63 [appl_79]
-                                                                                                                                                                                                          let !aw_81 = Types.Atom (Types.UnboundSym "do")
-                                                                                                                                                                                                          appl_62 `pseq` (appl_80 `pseq` applyWrapper aw_81 [appl_62,
-                                                                                                                                                                                                                                                             appl_80])
-                                         pat_cond_82 = do !kl_if_83 <- let pat_cond_84 kl_V1402 kl_V1402h kl_V1402t = do !kl_if_85 <- let pat_cond_86 kl_V1402h kl_V1402hh kl_V1402ht = do !kl_if_87 <- let pat_cond_88 = do !kl_if_89 <- let pat_cond_90 kl_V1402ht kl_V1402hth kl_V1402htt = do !kl_if_91 <- let pat_cond_92 kl_V1402htt kl_V1402htth kl_V1402httt = do !kl_if_93 <- let pat_cond_94 = do !kl_if_95 <- let pat_cond_96 kl_V1402t kl_V1402th kl_V1402tt = do !kl_if_97 <- let pat_cond_98 = do let !aw_99 = Types.Atom (Types.UnboundSym "variable?")
-                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                !appl_100 <- kl_V1402hth `pseq` applyWrapper aw_99 [kl_V1402hth]
-                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                let !aw_101 = Types.Atom (Types.UnboundSym "not")
-                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                !kl_if_102 <- appl_100 `pseq` applyWrapper aw_101 [appl_100]
-                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                case kl_if_102 of
-                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                    Atom (B (True)) -> do return (Atom (B True))
-                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                    Atom (B (False)) -> do do return (Atom (B False))
-                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                    _ -> throwError "if: expected boolean"
-                                                                                                                                                                                                                                                                                                                                                                                                                                                                                               pat_cond_103 = do do return (Atom (B False))
-                                                                                                                                                                                                                                                                                                                                                                                                                                                                                            in case kl_V1402tt of
-                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                   kl_V1402tt@(Atom (Nil)) -> pat_cond_98
-                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                   _ -> pat_cond_103
-                                                                                                                                                                                                                                                                                                                                                                                                                                                                              case kl_if_97 of
-                                                                                                                                                                                                                                                                                                                                                                                                                                                                                  Atom (B (True)) -> do return (Atom (B True))
-                                                                                                                                                                                                                                                                                                                                                                                                                                                                                  Atom (B (False)) -> do do return (Atom (B False))
-                                                                                                                                                                                                                                                                                                                                                                                                                                                                                  _ -> throwError "if: expected boolean"
-                                                                                                                                                                                                                                                                                                                                                                                                                             pat_cond_104 = do do return (Atom (B False))
-                                                                                                                                                                                                                                                                                                                                                                                                                          in case kl_V1402t of
-                                                                                                                                                                                                                                                                                                                                                                                                                                 !(kl_V1402t@(Cons (!kl_V1402th)
-                                                                                                                                                                                                                                                                                                                                                                                                                                                   (!kl_V1402tt))) -> pat_cond_96 kl_V1402t kl_V1402th kl_V1402tt
-                                                                                                                                                                                                                                                                                                                                                                                                                                 _ -> pat_cond_104
-                                                                                                                                                                                                                                                                                                                                                                                                            case kl_if_95 of
-                                                                                                                                                                                                                                                                                                                                                                                                                Atom (B (True)) -> do return (Atom (B True))
-                                                                                                                                                                                                                                                                                                                                                                                                                Atom (B (False)) -> do do return (Atom (B False))
-                                                                                                                                                                                                                                                                                                                                                                                                                _ -> throwError "if: expected boolean"
-                                                                                                                                                                                                                                                                                                                                                                                           pat_cond_105 = do do return (Atom (B False))
-                                                                                                                                                                                                                                                                                                                                                                                        in case kl_V1402httt of
-                                                                                                                                                                                                                                                                                                                                                                                               kl_V1402httt@(Atom (Nil)) -> pat_cond_94
-                                                                                                                                                                                                                                                                                                                                                                                               _ -> pat_cond_105
-                                                                                                                                                                                                                                                                                                                                                                          case kl_if_93 of
-                                                                                                                                                                                                                                                                                                                                                                              Atom (B (True)) -> do return (Atom (B True))
-                                                                                                                                                                                                                                                                                                                                                                              Atom (B (False)) -> do do return (Atom (B False))
-                                                                                                                                                                                                                                                                                                                                                                              _ -> throwError "if: expected boolean"
-                                                                                                                                                                                                                                                                                                                   pat_cond_106 = do do return (Atom (B False))
-                                                                                                                                                                                                                                                                                                                in case kl_V1402htt of
-                                                                                                                                                                                                                                                                                                                       !(kl_V1402htt@(Cons (!kl_V1402htth)
-                                                                                                                                                                                                                                                                                                                                           (!kl_V1402httt))) -> pat_cond_92 kl_V1402htt kl_V1402htth kl_V1402httt
-                                                                                                                                                                                                                                                                                                                       _ -> pat_cond_106
-                                                                                                                                                                                                                                                                                                  case kl_if_91 of
-                                                                                                                                                                                                                                                                                                      Atom (B (True)) -> do return (Atom (B True))
-                                                                                                                                                                                                                                                                                                      Atom (B (False)) -> do do return (Atom (B False))
-                                                                                                                                                                                                                                                                                                      _ -> throwError "if: expected boolean"
-                                                                                                                                                                                                                                              pat_cond_107 = do do return (Atom (B False))
-                                                                                                                                                                                                                                           in case kl_V1402ht of
-                                                                                                                                                                                                                                                  !(kl_V1402ht@(Cons (!kl_V1402hth)
-                                                                                                                                                                                                                                                                     (!kl_V1402htt))) -> pat_cond_90 kl_V1402ht kl_V1402hth kl_V1402htt
-                                                                                                                                                                                                                                                  _ -> pat_cond_107
-                                                                                                                                                                                                                             case kl_if_89 of
-                                                                                                                                                                                                                                 Atom (B (True)) -> do return (Atom (B True))
-                                                                                                                                                                                                                                 Atom (B (False)) -> do do return (Atom (B False))
-                                                                                                                                                                                                                                 _ -> throwError "if: expected boolean"
-                                                                                                                                                                                                            pat_cond_108 = do do return (Atom (B False))
-                                                                                                                                                                                                         in case kl_V1402hh of
-                                                                                                                                                                                                                kl_V1402hh@(Atom (UnboundSym "/.")) -> pat_cond_88
-                                                                                                                                                                                                                kl_V1402hh@(ApplC (PL "/."
-                                                                                                                                                                                                                                      _)) -> pat_cond_88
-                                                                                                                                                                                                                kl_V1402hh@(ApplC (Func "/."
-                                                                                                                                                                                                                                        _)) -> pat_cond_88
-                                                                                                                                                                                                                _ -> pat_cond_108
-                                                                                                                                                                                           case kl_if_87 of
-                                                                                                                                                                                               Atom (B (True)) -> do return (Atom (B True))
-                                                                                                                                                                                               Atom (B (False)) -> do do return (Atom (B False))
-                                                                                                                                                                                               _ -> throwError "if: expected boolean"
-                                                                                                                                          pat_cond_109 = do do return (Atom (B False))
-                                                                                                                                       in case kl_V1402h of
-                                                                                                                                              !(kl_V1402h@(Cons (!kl_V1402hh)
-                                                                                                                                                                (!kl_V1402ht))) -> pat_cond_86 kl_V1402h kl_V1402hh kl_V1402ht
-                                                                                                                                              _ -> pat_cond_109
-                                                                                                                         case kl_if_85 of
-                                                                                                                             Atom (B (True)) -> do return (Atom (B True))
-                                                                                                                             Atom (B (False)) -> do do return (Atom (B False))
-                                                                                                                             _ -> throwError "if: expected boolean"
-                                                                           pat_cond_110 = do do return (Atom (B False))
-                                                                        in case kl_V1402 of
-                                                                               !(kl_V1402@(Cons (!kl_V1402h)
-                                                                                                (!kl_V1402t))) -> pat_cond_84 kl_V1402 kl_V1402h kl_V1402t
-                                                                               _ -> pat_cond_110
-                                                          case kl_if_83 of
-                                                              Atom (B (True)) -> do !appl_111 <- kl_V1402 `pseq` hd kl_V1402
-                                                                                    !appl_112 <- appl_111 `pseq` tl appl_111
-                                                                                    !appl_113 <- appl_112 `pseq` hd appl_112
-                                                                                    !appl_114 <- kl_V1402 `pseq` tl kl_V1402
-                                                                                    !appl_115 <- appl_113 `pseq` (appl_114 `pseq` klCons appl_113 appl_114)
-                                                                                    !appl_116 <- appl_115 `pseq` klCons (ApplC (wrapNamed "=" eq)) appl_115
-                                                                                    !appl_117 <- appl_116 `pseq` kl_shen_add_test appl_116
-                                                                                    !appl_118 <- kl_V1402 `pseq` hd kl_V1402
-                                                                                    !appl_119 <- appl_118 `pseq` tl appl_118
-                                                                                    !appl_120 <- appl_119 `pseq` tl appl_119
-                                                                                    !appl_121 <- appl_120 `pseq` hd appl_120
-                                                                                    !appl_122 <- appl_121 `pseq` kl_shen_reduce_help appl_121
-                                                                                    let !aw_123 = Types.Atom (Types.UnboundSym "do")
-                                                                                    appl_117 `pseq` (appl_122 `pseq` applyWrapper aw_123 [appl_117,
-                                                                                                                                          appl_122])
-                                                              Atom (B (False)) -> do let pat_cond_124 kl_V1402 kl_V1402h kl_V1402ht kl_V1402hth kl_V1402htt kl_V1402htth kl_V1402t kl_V1402th = do !appl_125 <- kl_V1402th `pseq` (kl_V1402hth `pseq` (kl_V1402htth `pseq` kl_shen_ebr kl_V1402th kl_V1402hth kl_V1402htth))
-                                                                                                                                                                                                   appl_125 `pseq` kl_shen_reduce_help appl_125
-                                                                                         pat_cond_126 kl_V1402 kl_V1402t kl_V1402th kl_V1402tt kl_V1402tth = do !appl_127 <- kl_V1402th `pseq` kl_shen_add_test kl_V1402th
-                                                                                                                                                                !appl_128 <- kl_V1402tth `pseq` kl_shen_reduce_help kl_V1402tth
-                                                                                                                                                                let !aw_129 = Types.Atom (Types.UnboundSym "do")
-                                                                                                                                                                appl_127 `pseq` (appl_128 `pseq` applyWrapper aw_129 [appl_127,
-                                                                                                                                                                                                                      appl_128])
-                                                                                         pat_cond_130 kl_V1402 kl_V1402h kl_V1402t kl_V1402th = do let !appl_131 = ApplC (Func "lambda" (Context (\(!kl_Z) -> do !kl_if_132 <- kl_V1402h `pseq` (kl_Z `pseq` eq kl_V1402h kl_Z)
-                                                                                                                                                                                                                 case kl_if_132 of
-                                                                                                                                                                                                                     Atom (B (True)) -> do return kl_V1402
-                                                                                                                                                                                                                     Atom (B (False)) -> do do !appl_133 <- kl_Z `pseq` (kl_V1402t `pseq` klCons kl_Z kl_V1402t)
-                                                                                                                                                                                                                                               appl_133 `pseq` kl_shen_reduce_help appl_133
-                                                                                                                                                                                                                     _ -> throwError "if: expected boolean")))
-                                                                                                                                                   !appl_134 <- kl_V1402h `pseq` kl_shen_reduce_help kl_V1402h
-                                                                                                                                                   appl_134 `pseq` applyWrapper appl_131 [appl_134]
-                                                                                         pat_cond_135 = do do return kl_V1402
-                                                                                      in case kl_V1402 of
-                                                                                             !(kl_V1402@(Cons (!(kl_V1402h@(Cons (Atom (UnboundSym "/."))
-                                                                                                                                 (!(kl_V1402ht@(Cons (!kl_V1402hth)
-                                                                                                                                                     (!(kl_V1402htt@(Cons (!kl_V1402htth)
-                                                                                                                                                                          (Atom (Nil)))))))))))
-                                                                                                              (!(kl_V1402t@(Cons (!kl_V1402th)
-                                                                                                                                 (Atom (Nil))))))) -> pat_cond_124 kl_V1402 kl_V1402h kl_V1402ht kl_V1402hth kl_V1402htt kl_V1402htth kl_V1402t kl_V1402th
-                                                                                             !(kl_V1402@(Cons (!(kl_V1402h@(Cons (ApplC (PL "/."
-                                                                                                                                            _))
-                                                                                                                                 (!(kl_V1402ht@(Cons (!kl_V1402hth)
-                                                                                                                                                     (!(kl_V1402htt@(Cons (!kl_V1402htth)
-                                                                                                                                                                          (Atom (Nil)))))))))))
-                                                                                                              (!(kl_V1402t@(Cons (!kl_V1402th)
-                                                                                                                                 (Atom (Nil))))))) -> pat_cond_124 kl_V1402 kl_V1402h kl_V1402ht kl_V1402hth kl_V1402htt kl_V1402htth kl_V1402t kl_V1402th
-                                                                                             !(kl_V1402@(Cons (!(kl_V1402h@(Cons (ApplC (Func "/."
-                                                                                                                                              _))
-                                                                                                                                 (!(kl_V1402ht@(Cons (!kl_V1402hth)
-                                                                                                                                                     (!(kl_V1402htt@(Cons (!kl_V1402htth)
-                                                                                                                                                                          (Atom (Nil)))))))))))
-                                                                                                              (!(kl_V1402t@(Cons (!kl_V1402th)
-                                                                                                                                 (Atom (Nil))))))) -> pat_cond_124 kl_V1402 kl_V1402h kl_V1402ht kl_V1402hth kl_V1402htt kl_V1402htth kl_V1402t kl_V1402th
-                                                                                             !(kl_V1402@(Cons (Atom (UnboundSym "where"))
-                                                                                                              (!(kl_V1402t@(Cons (!kl_V1402th)
-                                                                                                                                 (!(kl_V1402tt@(Cons (!kl_V1402tth)
-                                                                                                                                                     (Atom (Nil)))))))))) -> pat_cond_126 kl_V1402 kl_V1402t kl_V1402th kl_V1402tt kl_V1402tth
-                                                                                             !(kl_V1402@(Cons (ApplC (PL "where"
-                                                                                                                         _))
-                                                                                                              (!(kl_V1402t@(Cons (!kl_V1402th)
-                                                                                                                                 (!(kl_V1402tt@(Cons (!kl_V1402tth)
-                                                                                                                                                     (Atom (Nil)))))))))) -> pat_cond_126 kl_V1402 kl_V1402t kl_V1402th kl_V1402tt kl_V1402tth
-                                                                                             !(kl_V1402@(Cons (ApplC (Func "where"
-                                                                                                                           _))
-                                                                                                              (!(kl_V1402t@(Cons (!kl_V1402th)
-                                                                                                                                 (!(kl_V1402tt@(Cons (!kl_V1402tth)
-                                                                                                                                                     (Atom (Nil)))))))))) -> pat_cond_126 kl_V1402 kl_V1402t kl_V1402th kl_V1402tt kl_V1402tth
-                                                                                             !(kl_V1402@(Cons (!kl_V1402h)
-                                                                                                              (!(kl_V1402t@(Cons (!kl_V1402th)
-                                                                                                                                 (Atom (Nil))))))) -> pat_cond_130 kl_V1402 kl_V1402h kl_V1402t kl_V1402th
-                                                                                             _ -> pat_cond_135
-                                                              _ -> throwError "if: expected boolean"
-                                      in case kl_V1402 of
-                                             !(kl_V1402@(Cons (!(kl_V1402h@(Cons (Atom (UnboundSym "/."))
-                                                                                 (!(kl_V1402ht@(Cons (!(kl_V1402hth@(Cons (Atom (UnboundSym "cons"))
-                                                                                                                          (!(kl_V1402htht@(Cons (!kl_V1402hthth)
-                                                                                                                                                (!(kl_V1402hthtt@(Cons (!kl_V1402hthtth)
-                                                                                                                                                                       (Atom (Nil)))))))))))
-                                                                                                     (!(kl_V1402htt@(Cons (!kl_V1402htth)
-                                                                                                                          (Atom (Nil)))))))))))
-                                                              (!(kl_V1402t@(Cons (!kl_V1402th)
-                                                                                 (Atom (Nil))))))) -> pat_cond_0 kl_V1402 kl_V1402h kl_V1402ht kl_V1402hth kl_V1402htht kl_V1402hthth kl_V1402hthtt kl_V1402hthtth kl_V1402htt kl_V1402htth kl_V1402t kl_V1402th
-                                             !(kl_V1402@(Cons (!(kl_V1402h@(Cons (Atom (UnboundSym "/."))
-                                                                                 (!(kl_V1402ht@(Cons (!(kl_V1402hth@(Cons (ApplC (PL "cons"
-                                                                                                                                     _))
-                                                                                                                          (!(kl_V1402htht@(Cons (!kl_V1402hthth)
-                                                                                                                                                (!(kl_V1402hthtt@(Cons (!kl_V1402hthtth)
-                                                                                                                                                                       (Atom (Nil)))))))))))
-                                                                                                     (!(kl_V1402htt@(Cons (!kl_V1402htth)
-                                                                                                                          (Atom (Nil)))))))))))
-                                                              (!(kl_V1402t@(Cons (!kl_V1402th)
-                                                                                 (Atom (Nil))))))) -> pat_cond_0 kl_V1402 kl_V1402h kl_V1402ht kl_V1402hth kl_V1402htht kl_V1402hthth kl_V1402hthtt kl_V1402hthtth kl_V1402htt kl_V1402htth kl_V1402t kl_V1402th
-                                             !(kl_V1402@(Cons (!(kl_V1402h@(Cons (Atom (UnboundSym "/."))
-                                                                                 (!(kl_V1402ht@(Cons (!(kl_V1402hth@(Cons (ApplC (Func "cons"
-                                                                                                                                       _))
-                                                                                                                          (!(kl_V1402htht@(Cons (!kl_V1402hthth)
-                                                                                                                                                (!(kl_V1402hthtt@(Cons (!kl_V1402hthtth)
-                                                                                                                                                                       (Atom (Nil)))))))))))
-                                                                                                     (!(kl_V1402htt@(Cons (!kl_V1402htth)
-                                                                                                                          (Atom (Nil)))))))))))
-                                                              (!(kl_V1402t@(Cons (!kl_V1402th)
-                                                                                 (Atom (Nil))))))) -> pat_cond_0 kl_V1402 kl_V1402h kl_V1402ht kl_V1402hth kl_V1402htht kl_V1402hthth kl_V1402hthtt kl_V1402hthtth kl_V1402htt kl_V1402htth kl_V1402t kl_V1402th
-                                             !(kl_V1402@(Cons (!(kl_V1402h@(Cons (ApplC (PL "/." _))
-                                                                                 (!(kl_V1402ht@(Cons (!(kl_V1402hth@(Cons (Atom (UnboundSym "cons"))
-                                                                                                                          (!(kl_V1402htht@(Cons (!kl_V1402hthth)
-                                                                                                                                                (!(kl_V1402hthtt@(Cons (!kl_V1402hthtth)
-                                                                                                                                                                       (Atom (Nil)))))))))))
-                                                                                                     (!(kl_V1402htt@(Cons (!kl_V1402htth)
-                                                                                                                          (Atom (Nil)))))))))))
-                                                              (!(kl_V1402t@(Cons (!kl_V1402th)
-                                                                                 (Atom (Nil))))))) -> pat_cond_0 kl_V1402 kl_V1402h kl_V1402ht kl_V1402hth kl_V1402htht kl_V1402hthth kl_V1402hthtt kl_V1402hthtth kl_V1402htt kl_V1402htth kl_V1402t kl_V1402th
-                                             !(kl_V1402@(Cons (!(kl_V1402h@(Cons (ApplC (PL "/." _))
-                                                                                 (!(kl_V1402ht@(Cons (!(kl_V1402hth@(Cons (ApplC (PL "cons"
-                                                                                                                                     _))
-                                                                                                                          (!(kl_V1402htht@(Cons (!kl_V1402hthth)
-                                                                                                                                                (!(kl_V1402hthtt@(Cons (!kl_V1402hthtth)
-                                                                                                                                                                       (Atom (Nil)))))))))))
-                                                                                                     (!(kl_V1402htt@(Cons (!kl_V1402htth)
-                                                                                                                          (Atom (Nil)))))))))))
-                                                              (!(kl_V1402t@(Cons (!kl_V1402th)
-                                                                                 (Atom (Nil))))))) -> pat_cond_0 kl_V1402 kl_V1402h kl_V1402ht kl_V1402hth kl_V1402htht kl_V1402hthth kl_V1402hthtt kl_V1402hthtth kl_V1402htt kl_V1402htth kl_V1402t kl_V1402th
-                                             !(kl_V1402@(Cons (!(kl_V1402h@(Cons (ApplC (PL "/." _))
-                                                                                 (!(kl_V1402ht@(Cons (!(kl_V1402hth@(Cons (ApplC (Func "cons"
-                                                                                                                                       _))
-                                                                                                                          (!(kl_V1402htht@(Cons (!kl_V1402hthth)
-                                                                                                                                                (!(kl_V1402hthtt@(Cons (!kl_V1402hthtth)
-                                                                                                                                                                       (Atom (Nil)))))))))))
-                                                                                                     (!(kl_V1402htt@(Cons (!kl_V1402htth)
-                                                                                                                          (Atom (Nil)))))))))))
-                                                              (!(kl_V1402t@(Cons (!kl_V1402th)
-                                                                                 (Atom (Nil))))))) -> pat_cond_0 kl_V1402 kl_V1402h kl_V1402ht kl_V1402hth kl_V1402htht kl_V1402hthth kl_V1402hthtt kl_V1402hthtth kl_V1402htt kl_V1402htth kl_V1402t kl_V1402th
-                                             !(kl_V1402@(Cons (!(kl_V1402h@(Cons (ApplC (Func "/."
-                                                                                              _))
-                                                                                 (!(kl_V1402ht@(Cons (!(kl_V1402hth@(Cons (Atom (UnboundSym "cons"))
-                                                                                                                          (!(kl_V1402htht@(Cons (!kl_V1402hthth)
-                                                                                                                                                (!(kl_V1402hthtt@(Cons (!kl_V1402hthtth)
-                                                                                                                                                                       (Atom (Nil)))))))))))
-                                                                                                     (!(kl_V1402htt@(Cons (!kl_V1402htth)
-                                                                                                                          (Atom (Nil)))))))))))
-                                                              (!(kl_V1402t@(Cons (!kl_V1402th)
-                                                                                 (Atom (Nil))))))) -> pat_cond_0 kl_V1402 kl_V1402h kl_V1402ht kl_V1402hth kl_V1402htht kl_V1402hthth kl_V1402hthtt kl_V1402hthtth kl_V1402htt kl_V1402htth kl_V1402t kl_V1402th
-                                             !(kl_V1402@(Cons (!(kl_V1402h@(Cons (ApplC (Func "/."
-                                                                                              _))
-                                                                                 (!(kl_V1402ht@(Cons (!(kl_V1402hth@(Cons (ApplC (PL "cons"
-                                                                                                                                     _))
-                                                                                                                          (!(kl_V1402htht@(Cons (!kl_V1402hthth)
-                                                                                                                                                (!(kl_V1402hthtt@(Cons (!kl_V1402hthtth)
-                                                                                                                                                                       (Atom (Nil)))))))))))
-                                                                                                     (!(kl_V1402htt@(Cons (!kl_V1402htth)
-                                                                                                                          (Atom (Nil)))))))))))
-                                                              (!(kl_V1402t@(Cons (!kl_V1402th)
-                                                                                 (Atom (Nil))))))) -> pat_cond_0 kl_V1402 kl_V1402h kl_V1402ht kl_V1402hth kl_V1402htht kl_V1402hthth kl_V1402hthtt kl_V1402hthtth kl_V1402htt kl_V1402htth kl_V1402t kl_V1402th
-                                             !(kl_V1402@(Cons (!(kl_V1402h@(Cons (ApplC (Func "/."
-                                                                                              _))
-                                                                                 (!(kl_V1402ht@(Cons (!(kl_V1402hth@(Cons (ApplC (Func "cons"
-                                                                                                                                       _))
-                                                                                                                          (!(kl_V1402htht@(Cons (!kl_V1402hthth)
-                                                                                                                                                (!(kl_V1402hthtt@(Cons (!kl_V1402hthtth)
-                                                                                                                                                                       (Atom (Nil)))))))))))
-                                                                                                     (!(kl_V1402htt@(Cons (!kl_V1402htth)
-                                                                                                                          (Atom (Nil)))))))))))
-                                                              (!(kl_V1402t@(Cons (!kl_V1402th)
-                                                                                 (Atom (Nil))))))) -> pat_cond_0 kl_V1402 kl_V1402h kl_V1402ht kl_V1402hth kl_V1402htht kl_V1402hthth kl_V1402hthtt kl_V1402hthtth kl_V1402htt kl_V1402htth kl_V1402t kl_V1402th
-                                             !(kl_V1402@(Cons (!(kl_V1402h@(Cons (Atom (UnboundSym "/."))
-                                                                                 (!(kl_V1402ht@(Cons (!(kl_V1402hth@(Cons (Atom (UnboundSym "@p"))
-                                                                                                                          (!(kl_V1402htht@(Cons (!kl_V1402hthth)
-                                                                                                                                                (!(kl_V1402hthtt@(Cons (!kl_V1402hthtth)
-                                                                                                                                                                       (Atom (Nil)))))))))))
-                                                                                                     (!(kl_V1402htt@(Cons (!kl_V1402htth)
-                                                                                                                          (Atom (Nil)))))))))))
-                                                              (!(kl_V1402t@(Cons (!kl_V1402th)
-                                                                                 (Atom (Nil))))))) -> pat_cond_20 kl_V1402 kl_V1402h kl_V1402ht kl_V1402hth kl_V1402htht kl_V1402hthth kl_V1402hthtt kl_V1402hthtth kl_V1402htt kl_V1402htth kl_V1402t kl_V1402th
-                                             !(kl_V1402@(Cons (!(kl_V1402h@(Cons (Atom (UnboundSym "/."))
-                                                                                 (!(kl_V1402ht@(Cons (!(kl_V1402hth@(Cons (ApplC (PL "@p"
-                                                                                                                                     _))
-                                                                                                                          (!(kl_V1402htht@(Cons (!kl_V1402hthth)
-                                                                                                                                                (!(kl_V1402hthtt@(Cons (!kl_V1402hthtth)
-                                                                                                                                                                       (Atom (Nil)))))))))))
-                                                                                                     (!(kl_V1402htt@(Cons (!kl_V1402htth)
-                                                                                                                          (Atom (Nil)))))))))))
-                                                              (!(kl_V1402t@(Cons (!kl_V1402th)
-                                                                                 (Atom (Nil))))))) -> pat_cond_20 kl_V1402 kl_V1402h kl_V1402ht kl_V1402hth kl_V1402htht kl_V1402hthth kl_V1402hthtt kl_V1402hthtth kl_V1402htt kl_V1402htth kl_V1402t kl_V1402th
-                                             !(kl_V1402@(Cons (!(kl_V1402h@(Cons (Atom (UnboundSym "/."))
-                                                                                 (!(kl_V1402ht@(Cons (!(kl_V1402hth@(Cons (ApplC (Func "@p"
-                                                                                                                                       _))
-                                                                                                                          (!(kl_V1402htht@(Cons (!kl_V1402hthth)
-                                                                                                                                                (!(kl_V1402hthtt@(Cons (!kl_V1402hthtth)
-                                                                                                                                                                       (Atom (Nil)))))))))))
-                                                                                                     (!(kl_V1402htt@(Cons (!kl_V1402htth)
-                                                                                                                          (Atom (Nil)))))))))))
-                                                              (!(kl_V1402t@(Cons (!kl_V1402th)
-                                                                                 (Atom (Nil))))))) -> pat_cond_20 kl_V1402 kl_V1402h kl_V1402ht kl_V1402hth kl_V1402htht kl_V1402hthth kl_V1402hthtt kl_V1402hthtth kl_V1402htt kl_V1402htth kl_V1402t kl_V1402th
-                                             !(kl_V1402@(Cons (!(kl_V1402h@(Cons (ApplC (PL "/." _))
-                                                                                 (!(kl_V1402ht@(Cons (!(kl_V1402hth@(Cons (Atom (UnboundSym "@p"))
-                                                                                                                          (!(kl_V1402htht@(Cons (!kl_V1402hthth)
-                                                                                                                                                (!(kl_V1402hthtt@(Cons (!kl_V1402hthtth)
-                                                                                                                                                                       (Atom (Nil)))))))))))
-                                                                                                     (!(kl_V1402htt@(Cons (!kl_V1402htth)
-                                                                                                                          (Atom (Nil)))))))))))
-                                                              (!(kl_V1402t@(Cons (!kl_V1402th)
-                                                                                 (Atom (Nil))))))) -> pat_cond_20 kl_V1402 kl_V1402h kl_V1402ht kl_V1402hth kl_V1402htht kl_V1402hthth kl_V1402hthtt kl_V1402hthtth kl_V1402htt kl_V1402htth kl_V1402t kl_V1402th
-                                             !(kl_V1402@(Cons (!(kl_V1402h@(Cons (ApplC (PL "/." _))
-                                                                                 (!(kl_V1402ht@(Cons (!(kl_V1402hth@(Cons (ApplC (PL "@p"
-                                                                                                                                     _))
-                                                                                                                          (!(kl_V1402htht@(Cons (!kl_V1402hthth)
-                                                                                                                                                (!(kl_V1402hthtt@(Cons (!kl_V1402hthtth)
-                                                                                                                                                                       (Atom (Nil)))))))))))
-                                                                                                     (!(kl_V1402htt@(Cons (!kl_V1402htth)
-                                                                                                                          (Atom (Nil)))))))))))
-                                                              (!(kl_V1402t@(Cons (!kl_V1402th)
-                                                                                 (Atom (Nil))))))) -> pat_cond_20 kl_V1402 kl_V1402h kl_V1402ht kl_V1402hth kl_V1402htht kl_V1402hthth kl_V1402hthtt kl_V1402hthtth kl_V1402htt kl_V1402htth kl_V1402t kl_V1402th
-                                             !(kl_V1402@(Cons (!(kl_V1402h@(Cons (ApplC (PL "/." _))
-                                                                                 (!(kl_V1402ht@(Cons (!(kl_V1402hth@(Cons (ApplC (Func "@p"
-                                                                                                                                       _))
-                                                                                                                          (!(kl_V1402htht@(Cons (!kl_V1402hthth)
-                                                                                                                                                (!(kl_V1402hthtt@(Cons (!kl_V1402hthtth)
-                                                                                                                                                                       (Atom (Nil)))))))))))
-                                                                                                     (!(kl_V1402htt@(Cons (!kl_V1402htth)
-                                                                                                                          (Atom (Nil)))))))))))
-                                                              (!(kl_V1402t@(Cons (!kl_V1402th)
-                                                                                 (Atom (Nil))))))) -> pat_cond_20 kl_V1402 kl_V1402h kl_V1402ht kl_V1402hth kl_V1402htht kl_V1402hthth kl_V1402hthtt kl_V1402hthtth kl_V1402htt kl_V1402htth kl_V1402t kl_V1402th
-                                             !(kl_V1402@(Cons (!(kl_V1402h@(Cons (ApplC (Func "/."
-                                                                                              _))
-                                                                                 (!(kl_V1402ht@(Cons (!(kl_V1402hth@(Cons (Atom (UnboundSym "@p"))
-                                                                                                                          (!(kl_V1402htht@(Cons (!kl_V1402hthth)
-                                                                                                                                                (!(kl_V1402hthtt@(Cons (!kl_V1402hthtth)
-                                                                                                                                                                       (Atom (Nil)))))))))))
-                                                                                                     (!(kl_V1402htt@(Cons (!kl_V1402htth)
-                                                                                                                          (Atom (Nil)))))))))))
-                                                              (!(kl_V1402t@(Cons (!kl_V1402th)
-                                                                                 (Atom (Nil))))))) -> pat_cond_20 kl_V1402 kl_V1402h kl_V1402ht kl_V1402hth kl_V1402htht kl_V1402hthth kl_V1402hthtt kl_V1402hthtth kl_V1402htt kl_V1402htth kl_V1402t kl_V1402th
-                                             !(kl_V1402@(Cons (!(kl_V1402h@(Cons (ApplC (Func "/."
-                                                                                              _))
-                                                                                 (!(kl_V1402ht@(Cons (!(kl_V1402hth@(Cons (ApplC (PL "@p"
-                                                                                                                                     _))
-                                                                                                                          (!(kl_V1402htht@(Cons (!kl_V1402hthth)
-                                                                                                                                                (!(kl_V1402hthtt@(Cons (!kl_V1402hthtth)
-                                                                                                                                                                       (Atom (Nil)))))))))))
-                                                                                                     (!(kl_V1402htt@(Cons (!kl_V1402htth)
-                                                                                                                          (Atom (Nil)))))))))))
-                                                              (!(kl_V1402t@(Cons (!kl_V1402th)
-                                                                                 (Atom (Nil))))))) -> pat_cond_20 kl_V1402 kl_V1402h kl_V1402ht kl_V1402hth kl_V1402htht kl_V1402hthth kl_V1402hthtt kl_V1402hthtth kl_V1402htt kl_V1402htth kl_V1402t kl_V1402th
-                                             !(kl_V1402@(Cons (!(kl_V1402h@(Cons (ApplC (Func "/."
-                                                                                              _))
-                                                                                 (!(kl_V1402ht@(Cons (!(kl_V1402hth@(Cons (ApplC (Func "@p"
-                                                                                                                                       _))
-                                                                                                                          (!(kl_V1402htht@(Cons (!kl_V1402hthth)
-                                                                                                                                                (!(kl_V1402hthtt@(Cons (!kl_V1402hthtth)
-                                                                                                                                                                       (Atom (Nil)))))))))))
-                                                                                                     (!(kl_V1402htt@(Cons (!kl_V1402htth)
-                                                                                                                          (Atom (Nil)))))))))))
-                                                              (!(kl_V1402t@(Cons (!kl_V1402th)
-                                                                                 (Atom (Nil))))))) -> pat_cond_20 kl_V1402 kl_V1402h kl_V1402ht kl_V1402hth kl_V1402htht kl_V1402hthth kl_V1402hthtt kl_V1402hthtth kl_V1402htt kl_V1402htth kl_V1402t kl_V1402th
-                                             !(kl_V1402@(Cons (!(kl_V1402h@(Cons (Atom (UnboundSym "/."))
-                                                                                 (!(kl_V1402ht@(Cons (!(kl_V1402hth@(Cons (Atom (UnboundSym "@v"))
-                                                                                                                          (!(kl_V1402htht@(Cons (!kl_V1402hthth)
-                                                                                                                                                (!(kl_V1402hthtt@(Cons (!kl_V1402hthtth)
-                                                                                                                                                                       (Atom (Nil)))))))))))
-                                                                                                     (!(kl_V1402htt@(Cons (!kl_V1402htth)
-                                                                                                                          (Atom (Nil)))))))))))
-                                                              (!(kl_V1402t@(Cons (!kl_V1402th)
-                                                                                 (Atom (Nil))))))) -> pat_cond_40 kl_V1402 kl_V1402h kl_V1402ht kl_V1402hth kl_V1402htht kl_V1402hthth kl_V1402hthtt kl_V1402hthtth kl_V1402htt kl_V1402htth kl_V1402t kl_V1402th
-                                             !(kl_V1402@(Cons (!(kl_V1402h@(Cons (Atom (UnboundSym "/."))
-                                                                                 (!(kl_V1402ht@(Cons (!(kl_V1402hth@(Cons (ApplC (PL "@v"
-                                                                                                                                     _))
-                                                                                                                          (!(kl_V1402htht@(Cons (!kl_V1402hthth)
-                                                                                                                                                (!(kl_V1402hthtt@(Cons (!kl_V1402hthtth)
-                                                                                                                                                                       (Atom (Nil)))))))))))
-                                                                                                     (!(kl_V1402htt@(Cons (!kl_V1402htth)
-                                                                                                                          (Atom (Nil)))))))))))
-                                                              (!(kl_V1402t@(Cons (!kl_V1402th)
-                                                                                 (Atom (Nil))))))) -> pat_cond_40 kl_V1402 kl_V1402h kl_V1402ht kl_V1402hth kl_V1402htht kl_V1402hthth kl_V1402hthtt kl_V1402hthtth kl_V1402htt kl_V1402htth kl_V1402t kl_V1402th
-                                             !(kl_V1402@(Cons (!(kl_V1402h@(Cons (Atom (UnboundSym "/."))
-                                                                                 (!(kl_V1402ht@(Cons (!(kl_V1402hth@(Cons (ApplC (Func "@v"
-                                                                                                                                       _))
-                                                                                                                          (!(kl_V1402htht@(Cons (!kl_V1402hthth)
-                                                                                                                                                (!(kl_V1402hthtt@(Cons (!kl_V1402hthtth)
-                                                                                                                                                                       (Atom (Nil)))))))))))
-                                                                                                     (!(kl_V1402htt@(Cons (!kl_V1402htth)
-                                                                                                                          (Atom (Nil)))))))))))
-                                                              (!(kl_V1402t@(Cons (!kl_V1402th)
-                                                                                 (Atom (Nil))))))) -> pat_cond_40 kl_V1402 kl_V1402h kl_V1402ht kl_V1402hth kl_V1402htht kl_V1402hthth kl_V1402hthtt kl_V1402hthtth kl_V1402htt kl_V1402htth kl_V1402t kl_V1402th
-                                             !(kl_V1402@(Cons (!(kl_V1402h@(Cons (ApplC (PL "/." _))
-                                                                                 (!(kl_V1402ht@(Cons (!(kl_V1402hth@(Cons (Atom (UnboundSym "@v"))
-                                                                                                                          (!(kl_V1402htht@(Cons (!kl_V1402hthth)
-                                                                                                                                                (!(kl_V1402hthtt@(Cons (!kl_V1402hthtth)
-                                                                                                                                                                       (Atom (Nil)))))))))))
-                                                                                                     (!(kl_V1402htt@(Cons (!kl_V1402htth)
-                                                                                                                          (Atom (Nil)))))))))))
-                                                              (!(kl_V1402t@(Cons (!kl_V1402th)
-                                                                                 (Atom (Nil))))))) -> pat_cond_40 kl_V1402 kl_V1402h kl_V1402ht kl_V1402hth kl_V1402htht kl_V1402hthth kl_V1402hthtt kl_V1402hthtth kl_V1402htt kl_V1402htth kl_V1402t kl_V1402th
-                                             !(kl_V1402@(Cons (!(kl_V1402h@(Cons (ApplC (PL "/." _))
-                                                                                 (!(kl_V1402ht@(Cons (!(kl_V1402hth@(Cons (ApplC (PL "@v"
-                                                                                                                                     _))
-                                                                                                                          (!(kl_V1402htht@(Cons (!kl_V1402hthth)
-                                                                                                                                                (!(kl_V1402hthtt@(Cons (!kl_V1402hthtth)
-                                                                                                                                                                       (Atom (Nil)))))))))))
-                                                                                                     (!(kl_V1402htt@(Cons (!kl_V1402htth)
-                                                                                                                          (Atom (Nil)))))))))))
-                                                              (!(kl_V1402t@(Cons (!kl_V1402th)
-                                                                                 (Atom (Nil))))))) -> pat_cond_40 kl_V1402 kl_V1402h kl_V1402ht kl_V1402hth kl_V1402htht kl_V1402hthth kl_V1402hthtt kl_V1402hthtth kl_V1402htt kl_V1402htth kl_V1402t kl_V1402th
-                                             !(kl_V1402@(Cons (!(kl_V1402h@(Cons (ApplC (PL "/." _))
-                                                                                 (!(kl_V1402ht@(Cons (!(kl_V1402hth@(Cons (ApplC (Func "@v"
-                                                                                                                                       _))
-                                                                                                                          (!(kl_V1402htht@(Cons (!kl_V1402hthth)
-                                                                                                                                                (!(kl_V1402hthtt@(Cons (!kl_V1402hthtth)
-                                                                                                                                                                       (Atom (Nil)))))))))))
-                                                                                                     (!(kl_V1402htt@(Cons (!kl_V1402htth)
-                                                                                                                          (Atom (Nil)))))))))))
-                                                              (!(kl_V1402t@(Cons (!kl_V1402th)
-                                                                                 (Atom (Nil))))))) -> pat_cond_40 kl_V1402 kl_V1402h kl_V1402ht kl_V1402hth kl_V1402htht kl_V1402hthth kl_V1402hthtt kl_V1402hthtth kl_V1402htt kl_V1402htth kl_V1402t kl_V1402th
-                                             !(kl_V1402@(Cons (!(kl_V1402h@(Cons (ApplC (Func "/."
-                                                                                              _))
-                                                                                 (!(kl_V1402ht@(Cons (!(kl_V1402hth@(Cons (Atom (UnboundSym "@v"))
-                                                                                                                          (!(kl_V1402htht@(Cons (!kl_V1402hthth)
-                                                                                                                                                (!(kl_V1402hthtt@(Cons (!kl_V1402hthtth)
-                                                                                                                                                                       (Atom (Nil)))))))))))
-                                                                                                     (!(kl_V1402htt@(Cons (!kl_V1402htth)
-                                                                                                                          (Atom (Nil)))))))))))
-                                                              (!(kl_V1402t@(Cons (!kl_V1402th)
-                                                                                 (Atom (Nil))))))) -> pat_cond_40 kl_V1402 kl_V1402h kl_V1402ht kl_V1402hth kl_V1402htht kl_V1402hthth kl_V1402hthtt kl_V1402hthtth kl_V1402htt kl_V1402htth kl_V1402t kl_V1402th
-                                             !(kl_V1402@(Cons (!(kl_V1402h@(Cons (ApplC (Func "/."
-                                                                                              _))
-                                                                                 (!(kl_V1402ht@(Cons (!(kl_V1402hth@(Cons (ApplC (PL "@v"
-                                                                                                                                     _))
-                                                                                                                          (!(kl_V1402htht@(Cons (!kl_V1402hthth)
-                                                                                                                                                (!(kl_V1402hthtt@(Cons (!kl_V1402hthtth)
-                                                                                                                                                                       (Atom (Nil)))))))))))
-                                                                                                     (!(kl_V1402htt@(Cons (!kl_V1402htth)
-                                                                                                                          (Atom (Nil)))))))))))
-                                                              (!(kl_V1402t@(Cons (!kl_V1402th)
-                                                                                 (Atom (Nil))))))) -> pat_cond_40 kl_V1402 kl_V1402h kl_V1402ht kl_V1402hth kl_V1402htht kl_V1402hthth kl_V1402hthtt kl_V1402hthtth kl_V1402htt kl_V1402htth kl_V1402t kl_V1402th
-                                             !(kl_V1402@(Cons (!(kl_V1402h@(Cons (ApplC (Func "/."
-                                                                                              _))
-                                                                                 (!(kl_V1402ht@(Cons (!(kl_V1402hth@(Cons (ApplC (Func "@v"
-                                                                                                                                       _))
-                                                                                                                          (!(kl_V1402htht@(Cons (!kl_V1402hthth)
-                                                                                                                                                (!(kl_V1402hthtt@(Cons (!kl_V1402hthtth)
-                                                                                                                                                                       (Atom (Nil)))))))))))
-                                                                                                     (!(kl_V1402htt@(Cons (!kl_V1402htth)
-                                                                                                                          (Atom (Nil)))))))))))
-                                                              (!(kl_V1402t@(Cons (!kl_V1402th)
-                                                                                 (Atom (Nil))))))) -> pat_cond_40 kl_V1402 kl_V1402h kl_V1402ht kl_V1402hth kl_V1402htht kl_V1402hthth kl_V1402hthtt kl_V1402hthtth kl_V1402htt kl_V1402htth kl_V1402t kl_V1402th
-                                             !(kl_V1402@(Cons (!(kl_V1402h@(Cons (Atom (UnboundSym "/."))
-                                                                                 (!(kl_V1402ht@(Cons (!(kl_V1402hth@(Cons (Atom (UnboundSym "@s"))
-                                                                                                                          (!(kl_V1402htht@(Cons (!kl_V1402hthth)
-                                                                                                                                                (!(kl_V1402hthtt@(Cons (!kl_V1402hthtth)
-                                                                                                                                                                       (Atom (Nil)))))))))))
-                                                                                                     (!(kl_V1402htt@(Cons (!kl_V1402htth)
-                                                                                                                          (Atom (Nil)))))))))))
-                                                              (!(kl_V1402t@(Cons (!kl_V1402th)
-                                                                                 (Atom (Nil))))))) -> pat_cond_60 kl_V1402 kl_V1402h kl_V1402ht kl_V1402hth kl_V1402htht kl_V1402hthth kl_V1402hthtt kl_V1402hthtth kl_V1402htt kl_V1402htth kl_V1402t kl_V1402th
-                                             !(kl_V1402@(Cons (!(kl_V1402h@(Cons (Atom (UnboundSym "/."))
-                                                                                 (!(kl_V1402ht@(Cons (!(kl_V1402hth@(Cons (ApplC (PL "@s"
-                                                                                                                                     _))
-                                                                                                                          (!(kl_V1402htht@(Cons (!kl_V1402hthth)
-                                                                                                                                                (!(kl_V1402hthtt@(Cons (!kl_V1402hthtth)
-                                                                                                                                                                       (Atom (Nil)))))))))))
-                                                                                                     (!(kl_V1402htt@(Cons (!kl_V1402htth)
-                                                                                                                          (Atom (Nil)))))))))))
-                                                              (!(kl_V1402t@(Cons (!kl_V1402th)
-                                                                                 (Atom (Nil))))))) -> pat_cond_60 kl_V1402 kl_V1402h kl_V1402ht kl_V1402hth kl_V1402htht kl_V1402hthth kl_V1402hthtt kl_V1402hthtth kl_V1402htt kl_V1402htth kl_V1402t kl_V1402th
-                                             !(kl_V1402@(Cons (!(kl_V1402h@(Cons (Atom (UnboundSym "/."))
-                                                                                 (!(kl_V1402ht@(Cons (!(kl_V1402hth@(Cons (ApplC (Func "@s"
-                                                                                                                                       _))
-                                                                                                                          (!(kl_V1402htht@(Cons (!kl_V1402hthth)
-                                                                                                                                                (!(kl_V1402hthtt@(Cons (!kl_V1402hthtth)
-                                                                                                                                                                       (Atom (Nil)))))))))))
-                                                                                                     (!(kl_V1402htt@(Cons (!kl_V1402htth)
-                                                                                                                          (Atom (Nil)))))))))))
-                                                              (!(kl_V1402t@(Cons (!kl_V1402th)
-                                                                                 (Atom (Nil))))))) -> pat_cond_60 kl_V1402 kl_V1402h kl_V1402ht kl_V1402hth kl_V1402htht kl_V1402hthth kl_V1402hthtt kl_V1402hthtth kl_V1402htt kl_V1402htth kl_V1402t kl_V1402th
-                                             !(kl_V1402@(Cons (!(kl_V1402h@(Cons (ApplC (PL "/." _))
-                                                                                 (!(kl_V1402ht@(Cons (!(kl_V1402hth@(Cons (Atom (UnboundSym "@s"))
-                                                                                                                          (!(kl_V1402htht@(Cons (!kl_V1402hthth)
-                                                                                                                                                (!(kl_V1402hthtt@(Cons (!kl_V1402hthtth)
-                                                                                                                                                                       (Atom (Nil)))))))))))
-                                                                                                     (!(kl_V1402htt@(Cons (!kl_V1402htth)
-                                                                                                                          (Atom (Nil)))))))))))
-                                                              (!(kl_V1402t@(Cons (!kl_V1402th)
-                                                                                 (Atom (Nil))))))) -> pat_cond_60 kl_V1402 kl_V1402h kl_V1402ht kl_V1402hth kl_V1402htht kl_V1402hthth kl_V1402hthtt kl_V1402hthtth kl_V1402htt kl_V1402htth kl_V1402t kl_V1402th
-                                             !(kl_V1402@(Cons (!(kl_V1402h@(Cons (ApplC (PL "/." _))
-                                                                                 (!(kl_V1402ht@(Cons (!(kl_V1402hth@(Cons (ApplC (PL "@s"
-                                                                                                                                     _))
-                                                                                                                          (!(kl_V1402htht@(Cons (!kl_V1402hthth)
-                                                                                                                                                (!(kl_V1402hthtt@(Cons (!kl_V1402hthtth)
-                                                                                                                                                                       (Atom (Nil)))))))))))
-                                                                                                     (!(kl_V1402htt@(Cons (!kl_V1402htth)
-                                                                                                                          (Atom (Nil)))))))))))
-                                                              (!(kl_V1402t@(Cons (!kl_V1402th)
-                                                                                 (Atom (Nil))))))) -> pat_cond_60 kl_V1402 kl_V1402h kl_V1402ht kl_V1402hth kl_V1402htht kl_V1402hthth kl_V1402hthtt kl_V1402hthtth kl_V1402htt kl_V1402htth kl_V1402t kl_V1402th
-                                             !(kl_V1402@(Cons (!(kl_V1402h@(Cons (ApplC (PL "/." _))
-                                                                                 (!(kl_V1402ht@(Cons (!(kl_V1402hth@(Cons (ApplC (Func "@s"
-                                                                                                                                       _))
-                                                                                                                          (!(kl_V1402htht@(Cons (!kl_V1402hthth)
-                                                                                                                                                (!(kl_V1402hthtt@(Cons (!kl_V1402hthtth)
-                                                                                                                                                                       (Atom (Nil)))))))))))
-                                                                                                     (!(kl_V1402htt@(Cons (!kl_V1402htth)
-                                                                                                                          (Atom (Nil)))))))))))
-                                                              (!(kl_V1402t@(Cons (!kl_V1402th)
-                                                                                 (Atom (Nil))))))) -> pat_cond_60 kl_V1402 kl_V1402h kl_V1402ht kl_V1402hth kl_V1402htht kl_V1402hthth kl_V1402hthtt kl_V1402hthtth kl_V1402htt kl_V1402htth kl_V1402t kl_V1402th
-                                             !(kl_V1402@(Cons (!(kl_V1402h@(Cons (ApplC (Func "/."
-                                                                                              _))
-                                                                                 (!(kl_V1402ht@(Cons (!(kl_V1402hth@(Cons (Atom (UnboundSym "@s"))
-                                                                                                                          (!(kl_V1402htht@(Cons (!kl_V1402hthth)
-                                                                                                                                                (!(kl_V1402hthtt@(Cons (!kl_V1402hthtth)
-                                                                                                                                                                       (Atom (Nil)))))))))))
-                                                                                                     (!(kl_V1402htt@(Cons (!kl_V1402htth)
-                                                                                                                          (Atom (Nil)))))))))))
-                                                              (!(kl_V1402t@(Cons (!kl_V1402th)
-                                                                                 (Atom (Nil))))))) -> pat_cond_60 kl_V1402 kl_V1402h kl_V1402ht kl_V1402hth kl_V1402htht kl_V1402hthth kl_V1402hthtt kl_V1402hthtth kl_V1402htt kl_V1402htth kl_V1402t kl_V1402th
-                                             !(kl_V1402@(Cons (!(kl_V1402h@(Cons (ApplC (Func "/."
-                                                                                              _))
-                                                                                 (!(kl_V1402ht@(Cons (!(kl_V1402hth@(Cons (ApplC (PL "@s"
-                                                                                                                                     _))
-                                                                                                                          (!(kl_V1402htht@(Cons (!kl_V1402hthth)
-                                                                                                                                                (!(kl_V1402hthtt@(Cons (!kl_V1402hthtth)
-                                                                                                                                                                       (Atom (Nil)))))))))))
-                                                                                                     (!(kl_V1402htt@(Cons (!kl_V1402htth)
-                                                                                                                          (Atom (Nil)))))))))))
-                                                              (!(kl_V1402t@(Cons (!kl_V1402th)
-                                                                                 (Atom (Nil))))))) -> pat_cond_60 kl_V1402 kl_V1402h kl_V1402ht kl_V1402hth kl_V1402htht kl_V1402hthth kl_V1402hthtt kl_V1402hthtth kl_V1402htt kl_V1402htth kl_V1402t kl_V1402th
-                                             !(kl_V1402@(Cons (!(kl_V1402h@(Cons (ApplC (Func "/."
-                                                                                              _))
-                                                                                 (!(kl_V1402ht@(Cons (!(kl_V1402hth@(Cons (ApplC (Func "@s"
-                                                                                                                                       _))
-                                                                                                                          (!(kl_V1402htht@(Cons (!kl_V1402hthth)
-                                                                                                                                                (!(kl_V1402hthtt@(Cons (!kl_V1402hthtth)
-                                                                                                                                                                       (Atom (Nil)))))))))))
-                                                                                                     (!(kl_V1402htt@(Cons (!kl_V1402htth)
-                                                                                                                          (Atom (Nil)))))))))))
-                                                              (!(kl_V1402t@(Cons (!kl_V1402th)
-                                                                                 (Atom (Nil))))))) -> pat_cond_60 kl_V1402 kl_V1402h kl_V1402ht kl_V1402hth kl_V1402htht kl_V1402hthth kl_V1402hthtt kl_V1402hthtth kl_V1402htt kl_V1402htth kl_V1402t kl_V1402th
-                                             _ -> pat_cond_82
-
-kl_shen_PlusstringP :: Types.KLValue ->
-                       Types.KLContext Types.Env Types.KLValue
-kl_shen_PlusstringP (!kl_V1404) = do let pat_cond_0 = do return (Atom (B False))
-                                         pat_cond_1 = do do kl_V1404 `pseq` stringP kl_V1404
-                                      in case kl_V1404 of
-                                             kl_V1404@(Atom (Str "")) -> pat_cond_0
-                                             _ -> pat_cond_1
-
-kl_shen_Plusvector :: Types.KLValue ->
-                      Types.KLContext Types.Env Types.KLValue
-kl_shen_Plusvector (!kl_V1406) = do let !aw_0 = Types.Atom (Types.UnboundSym "vector")
-                                    !appl_1 <- applyWrapper aw_0 [Types.Atom (Types.N (Types.KI 0))]
-                                    !kl_if_2 <- kl_V1406 `pseq` (appl_1 `pseq` eq kl_V1406 appl_1)
-                                    case kl_if_2 of
-                                        Atom (B (True)) -> do return (Atom (B False))
-                                        Atom (B (False)) -> do do let !aw_3 = Types.Atom (Types.UnboundSym "vector?")
-                                                                  kl_V1406 `pseq` applyWrapper aw_3 [kl_V1406]
-                                        _ -> throwError "if: expected boolean"
-
-kl_shen_ebr :: Types.KLValue ->
-               Types.KLValue ->
-               Types.KLValue -> Types.KLContext Types.Env Types.KLValue
-kl_shen_ebr (!kl_V1420) (!kl_V1421) (!kl_V1422) = do !kl_if_0 <- kl_V1422 `pseq` (kl_V1421 `pseq` eq kl_V1422 kl_V1421)
-                                                     case kl_if_0 of
-                                                         Atom (B (True)) -> do return kl_V1420
-                                                         Atom (B (False)) -> do !kl_if_1 <- let pat_cond_2 kl_V1422 kl_V1422h kl_V1422t = do !kl_if_3 <- let pat_cond_4 = do !kl_if_5 <- let pat_cond_6 kl_V1422t kl_V1422th kl_V1422tt = do !kl_if_7 <- let pat_cond_8 kl_V1422tt kl_V1422tth kl_V1422ttt = do !kl_if_9 <- let pat_cond_10 = do let !aw_11 = Types.Atom (Types.UnboundSym "occurrences")
-                                                                                                                                                                                                                                                                                                                                                 !appl_12 <- kl_V1421 `pseq` (kl_V1422th `pseq` applyWrapper aw_11 [kl_V1421,
-                                                                                                                                                                                                                                                                                                                                                                                                                    kl_V1422th])
-                                                                                                                                                                                                                                                                                                                                                 !kl_if_13 <- appl_12 `pseq` greaterThan appl_12 (Types.Atom (Types.N (Types.KI 0)))
-                                                                                                                                                                                                                                                                                                                                                 case kl_if_13 of
-                                                                                                                                                                                                                                                                                                                                                     Atom (B (True)) -> do return (Atom (B True))
-                                                                                                                                                                                                                                                                                                                                                     Atom (B (False)) -> do do return (Atom (B False))
-                                                                                                                                                                                                                                                                                                                                                     _ -> throwError "if: expected boolean"
-                                                                                                                                                                                                                                                                                                                                pat_cond_14 = do do return (Atom (B False))
-                                                                                                                                                                                                                                                                                                                             in case kl_V1422ttt of
-                                                                                                                                                                                                                                                                                                                                    kl_V1422ttt@(Atom (Nil)) -> pat_cond_10
-                                                                                                                                                                                                                                                                                                                                    _ -> pat_cond_14
-                                                                                                                                                                                                                                                                                                                case kl_if_9 of
-                                                                                                                                                                                                                                                                                                                    Atom (B (True)) -> do return (Atom (B True))
-                                                                                                                                                                                                                                                                                                                    Atom (B (False)) -> do do return (Atom (B False))
-                                                                                                                                                                                                                                                                                                                    _ -> throwError "if: expected boolean"
-                                                                                                                                                                                                                                                             pat_cond_15 = do do return (Atom (B False))
-                                                                                                                                                                                                                                                          in case kl_V1422tt of
-                                                                                                                                                                                                                                                                 !(kl_V1422tt@(Cons (!kl_V1422tth)
-                                                                                                                                                                                                                                                                                    (!kl_V1422ttt))) -> pat_cond_8 kl_V1422tt kl_V1422tth kl_V1422ttt
-                                                                                                                                                                                                                                                                 _ -> pat_cond_15
-                                                                                                                                                                                                                                             case kl_if_7 of
-                                                                                                                                                                                                                                                 Atom (B (True)) -> do return (Atom (B True))
-                                                                                                                                                                                                                                                 Atom (B (False)) -> do do return (Atom (B False))
-                                                                                                                                                                                                                                                 _ -> throwError "if: expected boolean"
-                                                                                                                                                                                             pat_cond_16 = do do return (Atom (B False))
-                                                                                                                                                                                          in case kl_V1422t of
-                                                                                                                                                                                                 !(kl_V1422t@(Cons (!kl_V1422th)
-                                                                                                                                                                                                                   (!kl_V1422tt))) -> pat_cond_6 kl_V1422t kl_V1422th kl_V1422tt
-                                                                                                                                                                                                 _ -> pat_cond_16
-                                                                                                                                                                             case kl_if_5 of
-                                                                                                                                                                                 Atom (B (True)) -> do return (Atom (B True))
-                                                                                                                                                                                 Atom (B (False)) -> do do return (Atom (B False))
-                                                                                                                                                                                 _ -> throwError "if: expected boolean"
-                                                                                                                                                             pat_cond_17 = do do return (Atom (B False))
-                                                                                                                                                          in case kl_V1422h of
-                                                                                                                                                                 kl_V1422h@(Atom (UnboundSym "/.")) -> pat_cond_4
-                                                                                                                                                                 kl_V1422h@(ApplC (PL "/."
-                                                                                                                                                                                      _)) -> pat_cond_4
-                                                                                                                                                                 kl_V1422h@(ApplC (Func "/."
-                                                                                                                                                                                        _)) -> pat_cond_4
-                                                                                                                                                                 _ -> pat_cond_17
-                                                                                                                                             case kl_if_3 of
-                                                                                                                                                 Atom (B (True)) -> do return (Atom (B True))
-                                                                                                                                                 Atom (B (False)) -> do do return (Atom (B False))
-                                                                                                                                                 _ -> throwError "if: expected boolean"
-                                                                                                pat_cond_18 = do do return (Atom (B False))
-                                                                                             in case kl_V1422 of
-                                                                                                    !(kl_V1422@(Cons (!kl_V1422h)
-                                                                                                                     (!kl_V1422t))) -> pat_cond_2 kl_V1422 kl_V1422h kl_V1422t
-                                                                                                    _ -> pat_cond_18
-                                                                                case kl_if_1 of
-                                                                                    Atom (B (True)) -> do return kl_V1422
-                                                                                    Atom (B (False)) -> do !kl_if_19 <- let pat_cond_20 kl_V1422 kl_V1422h kl_V1422t = do !kl_if_21 <- let pat_cond_22 = do !kl_if_23 <- let pat_cond_24 kl_V1422t kl_V1422th kl_V1422tt = do !kl_if_25 <- let pat_cond_26 kl_V1422tt kl_V1422tth kl_V1422ttt = do !kl_if_27 <- let pat_cond_28 = do let !aw_29 = Types.Atom (Types.UnboundSym "occurrences")
-                                                                                                                                                                                                                                                                                                                                                                                     !appl_30 <- kl_V1421 `pseq` (kl_V1422th `pseq` applyWrapper aw_29 [kl_V1421,
-                                                                                                                                                                                                                                                                                                                                                                                                                                                        kl_V1422th])
-                                                                                                                                                                                                                                                                                                                                                                                     !kl_if_31 <- appl_30 `pseq` greaterThan appl_30 (Types.Atom (Types.N (Types.KI 0)))
-                                                                                                                                                                                                                                                                                                                                                                                     case kl_if_31 of
-                                                                                                                                                                                                                                                                                                                                                                                         Atom (B (True)) -> do return (Atom (B True))
-                                                                                                                                                                                                                                                                                                                                                                                         Atom (B (False)) -> do do return (Atom (B False))
-                                                                                                                                                                                                                                                                                                                                                                                         _ -> throwError "if: expected boolean"
-                                                                                                                                                                                                                                                                                                                                                                    pat_cond_32 = do do return (Atom (B False))
-                                                                                                                                                                                                                                                                                                                                                                 in case kl_V1422ttt of
-                                                                                                                                                                                                                                                                                                                                                                        kl_V1422ttt@(Atom (Nil)) -> pat_cond_28
-                                                                                                                                                                                                                                                                                                                                                                        _ -> pat_cond_32
-                                                                                                                                                                                                                                                                                                                                                   case kl_if_27 of
-                                                                                                                                                                                                                                                                                                                                                       Atom (B (True)) -> do return (Atom (B True))
-                                                                                                                                                                                                                                                                                                                                                       Atom (B (False)) -> do do return (Atom (B False))
-                                                                                                                                                                                                                                                                                                                                                       _ -> throwError "if: expected boolean"
-                                                                                                                                                                                                                                                                                               pat_cond_33 = do do return (Atom (B False))
-                                                                                                                                                                                                                                                                                            in case kl_V1422tt of
-                                                                                                                                                                                                                                                                                                   !(kl_V1422tt@(Cons (!kl_V1422tth)
-                                                                                                                                                                                                                                                                                                                      (!kl_V1422ttt))) -> pat_cond_26 kl_V1422tt kl_V1422tth kl_V1422ttt
-                                                                                                                                                                                                                                                                                                   _ -> pat_cond_33
-                                                                                                                                                                                                                                                                              case kl_if_25 of
-                                                                                                                                                                                                                                                                                  Atom (B (True)) -> do return (Atom (B True))
-                                                                                                                                                                                                                                                                                  Atom (B (False)) -> do do return (Atom (B False))
-                                                                                                                                                                                                                                                                                  _ -> throwError "if: expected boolean"
-                                                                                                                                                                                                                             pat_cond_34 = do do return (Atom (B False))
-                                                                                                                                                                                                                          in case kl_V1422t of
-                                                                                                                                                                                                                                 !(kl_V1422t@(Cons (!kl_V1422th)
-                                                                                                                                                                                                                                                   (!kl_V1422tt))) -> pat_cond_24 kl_V1422t kl_V1422th kl_V1422tt
-                                                                                                                                                                                                                                 _ -> pat_cond_34
-                                                                                                                                                                                                            case kl_if_23 of
-                                                                                                                                                                                                                Atom (B (True)) -> do return (Atom (B True))
-                                                                                                                                                                                                                Atom (B (False)) -> do do return (Atom (B False))
-                                                                                                                                                                                                                _ -> throwError "if: expected boolean"
-                                                                                                                                                                                           pat_cond_35 = do do return (Atom (B False))
-                                                                                                                                                                                        in case kl_V1422h of
-                                                                                                                                                                                               kl_V1422h@(Atom (UnboundSym "lambda")) -> pat_cond_22
-                                                                                                                                                                                               kl_V1422h@(ApplC (PL "lambda"
-                                                                                                                                                                                                                    _)) -> pat_cond_22
-                                                                                                                                                                                               kl_V1422h@(ApplC (Func "lambda"
-                                                                                                                                                                                                                      _)) -> pat_cond_22
-                                                                                                                                                                                               _ -> pat_cond_35
-                                                                                                                                                                          case kl_if_21 of
-                                                                                                                                                                              Atom (B (True)) -> do return (Atom (B True))
-                                                                                                                                                                              Atom (B (False)) -> do do return (Atom (B False))
-                                                                                                                                                                              _ -> throwError "if: expected boolean"
-                                                                                                                            pat_cond_36 = do do return (Atom (B False))
-                                                                                                                         in case kl_V1422 of
-                                                                                                                                !(kl_V1422@(Cons (!kl_V1422h)
-                                                                                                                                                 (!kl_V1422t))) -> pat_cond_20 kl_V1422 kl_V1422h kl_V1422t
-                                                                                                                                _ -> pat_cond_36
-                                                                                                           case kl_if_19 of
-                                                                                                               Atom (B (True)) -> do return kl_V1422
-                                                                                                               Atom (B (False)) -> do let pat_cond_37 kl_V1422 kl_V1422t kl_V1422th kl_V1422tt kl_V1422tth kl_V1422ttt kl_V1422ttth = do !appl_38 <- kl_V1420 `pseq` (kl_V1422th `pseq` (kl_V1422tth `pseq` kl_shen_ebr kl_V1420 kl_V1422th kl_V1422tth))
-                                                                                                                                                                                                                                         !appl_39 <- appl_38 `pseq` (kl_V1422ttt `pseq` klCons appl_38 kl_V1422ttt)
-                                                                                                                                                                                                                                         !appl_40 <- kl_V1422th `pseq` (appl_39 `pseq` klCons kl_V1422th appl_39)
-                                                                                                                                                                                                                                         appl_40 `pseq` klCons (Types.Atom (Types.UnboundSym "let")) appl_40
-                                                                                                                                          pat_cond_41 kl_V1422 kl_V1422h kl_V1422t = do !appl_42 <- kl_V1420 `pseq` (kl_V1421 `pseq` (kl_V1422h `pseq` kl_shen_ebr kl_V1420 kl_V1421 kl_V1422h))
-                                                                                                                                                                                        !appl_43 <- kl_V1420 `pseq` (kl_V1421 `pseq` (kl_V1422t `pseq` kl_shen_ebr kl_V1420 kl_V1421 kl_V1422t))
-                                                                                                                                                                                        appl_42 `pseq` (appl_43 `pseq` klCons appl_42 appl_43)
-                                                                                                                                          pat_cond_44 = do do return kl_V1422
-                                                                                                                                       in case kl_V1422 of
-                                                                                                                                              !(kl_V1422@(Cons (Atom (UnboundSym "let"))
-                                                                                                                                                               (!(kl_V1422t@(Cons (!kl_V1422th)
-                                                                                                                                                                                  (!(kl_V1422tt@(Cons (!kl_V1422tth)
-                                                                                                                                                                                                      (!(kl_V1422ttt@(Cons (!kl_V1422ttth)
-                                                                                                                                                                                                                           (Atom (Nil))))))))))))) | eqCore kl_V1422th kl_V1421 -> pat_cond_37 kl_V1422 kl_V1422t kl_V1422th kl_V1422tt kl_V1422tth kl_V1422ttt kl_V1422ttth
-                                                                                                                                              !(kl_V1422@(Cons (ApplC (PL "let"
-                                                                                                                                                                          _))
-                                                                                                                                                               (!(kl_V1422t@(Cons (!kl_V1422th)
-                                                                                                                                                                                  (!(kl_V1422tt@(Cons (!kl_V1422tth)
-                                                                                                                                                                                                      (!(kl_V1422ttt@(Cons (!kl_V1422ttth)
-                                                                                                                                                                                                                           (Atom (Nil))))))))))))) | eqCore kl_V1422th kl_V1421 -> pat_cond_37 kl_V1422 kl_V1422t kl_V1422th kl_V1422tt kl_V1422tth kl_V1422ttt kl_V1422ttth
-                                                                                                                                              !(kl_V1422@(Cons (ApplC (Func "let"
-                                                                                                                                                                            _))
-                                                                                                                                                               (!(kl_V1422t@(Cons (!kl_V1422th)
-                                                                                                                                                                                  (!(kl_V1422tt@(Cons (!kl_V1422tth)
-                                                                                                                                                                                                      (!(kl_V1422ttt@(Cons (!kl_V1422ttth)
-                                                                                                                                                                                                                           (Atom (Nil))))))))))))) | eqCore kl_V1422th kl_V1421 -> pat_cond_37 kl_V1422 kl_V1422t kl_V1422th kl_V1422tt kl_V1422tth kl_V1422ttt kl_V1422ttth
-                                                                                                                                              !(kl_V1422@(Cons (!kl_V1422h)
-                                                                                                                                                               (!kl_V1422t))) -> pat_cond_41 kl_V1422 kl_V1422h kl_V1422t
-                                                                                                                                              _ -> pat_cond_44
-                                                                                                               _ -> throwError "if: expected boolean"
-                                                                                    _ -> throwError "if: expected boolean"
-                                                         _ -> throwError "if: expected boolean"
-
-kl_shen_add_test :: Types.KLValue ->
-                    Types.KLContext Types.Env Types.KLValue
-kl_shen_add_test (!kl_V1424) = do !appl_0 <- value (Types.Atom (Types.UnboundSym "shen.*teststack*"))
-                                  !appl_1 <- kl_V1424 `pseq` (appl_0 `pseq` klCons kl_V1424 appl_0)
-                                  appl_1 `pseq` klSet (Types.Atom (Types.UnboundSym "shen.*teststack*")) appl_1
-
-kl_shen_cond_expression :: Types.KLValue ->
-                           Types.KLValue ->
-                           Types.KLValue -> Types.KLContext Types.Env Types.KLValue
-kl_shen_cond_expression (!kl_V1428) (!kl_V1429) (!kl_V1430) = do let !appl_0 = ApplC (Func "lambda" (Context (\(!kl_Err) -> do let !appl_1 = ApplC (Func "lambda" (Context (\(!kl_Cases) -> do let !appl_2 = ApplC (Func "lambda" (Context (\(!kl_EncodeChoices) -> do kl_EncodeChoices `pseq` kl_shen_cond_form kl_EncodeChoices)))
-                                                                                                                                                                                               !appl_3 <- kl_Cases `pseq` (kl_V1428 `pseq` kl_shen_encode_choices kl_Cases kl_V1428)
-                                                                                                                                                                                               appl_3 `pseq` applyWrapper appl_2 [appl_3])))
-                                                                                                                               !appl_4 <- kl_V1430 `pseq` (kl_Err `pseq` kl_shen_case_form kl_V1430 kl_Err)
-                                                                                                                               appl_4 `pseq` applyWrapper appl_1 [appl_4])))
-                                                                 !appl_5 <- kl_V1428 `pseq` kl_shen_err_condition kl_V1428
-                                                                 appl_5 `pseq` applyWrapper appl_0 [appl_5]
-
-kl_shen_cond_form :: Types.KLValue ->
-                     Types.KLContext Types.Env Types.KLValue
-kl_shen_cond_form (!kl_V1434) = do let pat_cond_0 kl_V1434 kl_V1434h kl_V1434ht kl_V1434hth kl_V1434t = do return kl_V1434hth
-                                       pat_cond_1 = do do kl_V1434 `pseq` klCons (Types.Atom (Types.UnboundSym "cond")) kl_V1434
-                                    in case kl_V1434 of
-                                           !(kl_V1434@(Cons (!(kl_V1434h@(Cons (Atom (UnboundSym "true"))
-                                                                               (!(kl_V1434ht@(Cons (!kl_V1434hth)
-                                                                                                   (Atom (Nil))))))))
-                                                            (!kl_V1434t))) -> pat_cond_0 kl_V1434 kl_V1434h kl_V1434ht kl_V1434hth kl_V1434t
-                                           !(kl_V1434@(Cons (!(kl_V1434h@(Cons (Atom (B (True)))
-                                                                               (!(kl_V1434ht@(Cons (!kl_V1434hth)
-                                                                                                   (Atom (Nil))))))))
-                                                            (!kl_V1434t))) -> pat_cond_0 kl_V1434 kl_V1434h kl_V1434ht kl_V1434hth kl_V1434t
-                                           _ -> pat_cond_1
-
-kl_shen_encode_choices :: Types.KLValue ->
-                          Types.KLValue -> Types.KLContext Types.Env Types.KLValue
-kl_shen_encode_choices (!kl_V1439) (!kl_V1440) = do let pat_cond_0 = do return (Types.Atom Types.Nil)
-                                                        pat_cond_1 kl_V1439 kl_V1439h kl_V1439ht kl_V1439hth kl_V1439htht kl_V1439hthth = do !appl_2 <- klCons (Types.Atom (Types.UnboundSym "fail")) (Types.Atom Types.Nil)
-                                                                                                                                             !appl_3 <- appl_2 `pseq` klCons appl_2 (Types.Atom Types.Nil)
-                                                                                                                                             !appl_4 <- appl_3 `pseq` klCons (Types.Atom (Types.UnboundSym "Result")) appl_3
-                                                                                                                                             !appl_5 <- appl_4 `pseq` klCons (ApplC (wrapNamed "=" eq)) appl_4
-                                                                                                                                             !kl_if_6 <- value (Types.Atom (Types.UnboundSym "shen.*installing-kl*"))
-                                                                                                                                             !appl_7 <- case kl_if_6 of
-                                                                                                                                                            Atom (B (True)) -> do !appl_8 <- kl_V1440 `pseq` klCons kl_V1440 (Types.Atom Types.Nil)
-                                                                                                                                                                                  appl_8 `pseq` klCons (ApplC (wrapNamed "shen.sys-error" kl_shen_sys_error)) appl_8
-                                                                                                                                                            Atom (B (False)) -> do do !appl_9 <- kl_V1440 `pseq` klCons kl_V1440 (Types.Atom Types.Nil)
-                                                                                                                                                                                      appl_9 `pseq` klCons (Types.Atom (Types.UnboundSym "shen.f_error")) appl_9
-                                                                                                                                                            _ -> throwError "if: expected boolean"
-                                                                                                                                             !appl_10 <- klCons (Types.Atom (Types.UnboundSym "Result")) (Types.Atom Types.Nil)
-                                                                                                                                             !appl_11 <- appl_7 `pseq` (appl_10 `pseq` klCons appl_7 appl_10)
-                                                                                                                                             !appl_12 <- appl_5 `pseq` (appl_11 `pseq` klCons appl_5 appl_11)
-                                                                                                                                             !appl_13 <- appl_12 `pseq` klCons (Types.Atom (Types.UnboundSym "if")) appl_12
-                                                                                                                                             !appl_14 <- appl_13 `pseq` klCons appl_13 (Types.Atom Types.Nil)
-                                                                                                                                             !appl_15 <- kl_V1439hthth `pseq` (appl_14 `pseq` klCons kl_V1439hthth appl_14)
-                                                                                                                                             !appl_16 <- appl_15 `pseq` klCons (Types.Atom (Types.UnboundSym "Result")) appl_15
-                                                                                                                                             !appl_17 <- appl_16 `pseq` klCons (Types.Atom (Types.UnboundSym "let")) appl_16
-                                                                                                                                             !appl_18 <- appl_17 `pseq` klCons appl_17 (Types.Atom Types.Nil)
-                                                                                                                                             !appl_19 <- appl_18 `pseq` klCons (Atom (B True)) appl_18
-                                                                                                                                             appl_19 `pseq` klCons appl_19 (Types.Atom Types.Nil)
-                                                        pat_cond_20 kl_V1439 kl_V1439h kl_V1439ht kl_V1439hth kl_V1439htht kl_V1439hthth kl_V1439t = do !appl_21 <- klCons (Types.Atom (Types.UnboundSym "fail")) (Types.Atom Types.Nil)
-                                                                                                                                                        !appl_22 <- appl_21 `pseq` klCons appl_21 (Types.Atom Types.Nil)
-                                                                                                                                                        !appl_23 <- appl_22 `pseq` klCons (Types.Atom (Types.UnboundSym "Result")) appl_22
-                                                                                                                                                        !appl_24 <- appl_23 `pseq` klCons (ApplC (wrapNamed "=" eq)) appl_23
-                                                                                                                                                        !appl_25 <- kl_V1439t `pseq` (kl_V1440 `pseq` kl_shen_encode_choices kl_V1439t kl_V1440)
-                                                                                                                                                        !appl_26 <- appl_25 `pseq` kl_shen_cond_form appl_25
-                                                                                                                                                        !appl_27 <- klCons (Types.Atom (Types.UnboundSym "Result")) (Types.Atom Types.Nil)
-                                                                                                                                                        !appl_28 <- appl_26 `pseq` (appl_27 `pseq` klCons appl_26 appl_27)
-                                                                                                                                                        !appl_29 <- appl_24 `pseq` (appl_28 `pseq` klCons appl_24 appl_28)
-                                                                                                                                                        !appl_30 <- appl_29 `pseq` klCons (Types.Atom (Types.UnboundSym "if")) appl_29
-                                                                                                                                                        !appl_31 <- appl_30 `pseq` klCons appl_30 (Types.Atom Types.Nil)
-                                                                                                                                                        !appl_32 <- kl_V1439hthth `pseq` (appl_31 `pseq` klCons kl_V1439hthth appl_31)
-                                                                                                                                                        !appl_33 <- appl_32 `pseq` klCons (Types.Atom (Types.UnboundSym "Result")) appl_32
-                                                                                                                                                        !appl_34 <- appl_33 `pseq` klCons (Types.Atom (Types.UnboundSym "let")) appl_33
-                                                                                                                                                        !appl_35 <- appl_34 `pseq` klCons appl_34 (Types.Atom Types.Nil)
-                                                                                                                                                        !appl_36 <- appl_35 `pseq` klCons (Atom (B True)) appl_35
-                                                                                                                                                        appl_36 `pseq` klCons appl_36 (Types.Atom Types.Nil)
-                                                        pat_cond_37 kl_V1439 kl_V1439h kl_V1439hh kl_V1439ht kl_V1439hth kl_V1439htht kl_V1439hthth kl_V1439t = do !appl_38 <- kl_V1439t `pseq` (kl_V1440 `pseq` kl_shen_encode_choices kl_V1439t kl_V1440)
-                                                                                                                                                                   !appl_39 <- appl_38 `pseq` kl_shen_cond_form appl_38
-                                                                                                                                                                   !appl_40 <- appl_39 `pseq` klCons appl_39 (Types.Atom Types.Nil)
-                                                                                                                                                                   !appl_41 <- appl_40 `pseq` klCons (Types.Atom (Types.UnboundSym "freeze")) appl_40
-                                                                                                                                                                   !appl_42 <- klCons (Types.Atom (Types.UnboundSym "fail")) (Types.Atom Types.Nil)
-                                                                                                                                                                   !appl_43 <- appl_42 `pseq` klCons appl_42 (Types.Atom Types.Nil)
-                                                                                                                                                                   !appl_44 <- appl_43 `pseq` klCons (Types.Atom (Types.UnboundSym "Result")) appl_43
-                                                                                                                                                                   !appl_45 <- appl_44 `pseq` klCons (ApplC (wrapNamed "=" eq)) appl_44
-                                                                                                                                                                   !appl_46 <- klCons (Types.Atom (Types.UnboundSym "Freeze")) (Types.Atom Types.Nil)
-                                                                                                                                                                   !appl_47 <- appl_46 `pseq` klCons (Types.Atom (Types.UnboundSym "thaw")) appl_46
-                                                                                                                                                                   !appl_48 <- klCons (Types.Atom (Types.UnboundSym "Result")) (Types.Atom Types.Nil)
-                                                                                                                                                                   !appl_49 <- appl_47 `pseq` (appl_48 `pseq` klCons appl_47 appl_48)
-                                                                                                                                                                   !appl_50 <- appl_45 `pseq` (appl_49 `pseq` klCons appl_45 appl_49)
-                                                                                                                                                                   !appl_51 <- appl_50 `pseq` klCons (Types.Atom (Types.UnboundSym "if")) appl_50
-                                                                                                                                                                   !appl_52 <- appl_51 `pseq` klCons appl_51 (Types.Atom Types.Nil)
-                                                                                                                                                                   !appl_53 <- kl_V1439hthth `pseq` (appl_52 `pseq` klCons kl_V1439hthth appl_52)
-                                                                                                                                                                   !appl_54 <- appl_53 `pseq` klCons (Types.Atom (Types.UnboundSym "Result")) appl_53
-                                                                                                                                                                   !appl_55 <- appl_54 `pseq` klCons (Types.Atom (Types.UnboundSym "let")) appl_54
-                                                                                                                                                                   !appl_56 <- klCons (Types.Atom (Types.UnboundSym "Freeze")) (Types.Atom Types.Nil)
-                                                                                                                                                                   !appl_57 <- appl_56 `pseq` klCons (Types.Atom (Types.UnboundSym "thaw")) appl_56
-                                                                                                                                                                   !appl_58 <- appl_57 `pseq` klCons appl_57 (Types.Atom Types.Nil)
-                                                                                                                                                                   !appl_59 <- appl_55 `pseq` (appl_58 `pseq` klCons appl_55 appl_58)
-                                                                                                                                                                   !appl_60 <- kl_V1439hh `pseq` (appl_59 `pseq` klCons kl_V1439hh appl_59)
-                                                                                                                                                                   !appl_61 <- appl_60 `pseq` klCons (Types.Atom (Types.UnboundSym "if")) appl_60
-                                                                                                                                                                   !appl_62 <- appl_61 `pseq` klCons appl_61 (Types.Atom Types.Nil)
-                                                                                                                                                                   !appl_63 <- appl_41 `pseq` (appl_62 `pseq` klCons appl_41 appl_62)
-                                                                                                                                                                   !appl_64 <- appl_63 `pseq` klCons (Types.Atom (Types.UnboundSym "Freeze")) appl_63
-                                                                                                                                                                   !appl_65 <- appl_64 `pseq` klCons (Types.Atom (Types.UnboundSym "let")) appl_64
-                                                                                                                                                                   !appl_66 <- appl_65 `pseq` klCons appl_65 (Types.Atom Types.Nil)
-                                                                                                                                                                   !appl_67 <- appl_66 `pseq` klCons (Atom (B True)) appl_66
-                                                                                                                                                                   appl_67 `pseq` klCons appl_67 (Types.Atom Types.Nil)
-                                                        pat_cond_68 kl_V1439 kl_V1439h kl_V1439hh kl_V1439ht kl_V1439hth kl_V1439t = do !appl_69 <- kl_V1439t `pseq` (kl_V1440 `pseq` kl_shen_encode_choices kl_V1439t kl_V1440)
-                                                                                                                                        kl_V1439h `pseq` (appl_69 `pseq` klCons kl_V1439h appl_69)
-                                                        pat_cond_70 = do do let !aw_71 = Types.Atom (Types.UnboundSym "shen.f_error")
-                                                                            applyWrapper aw_71 [ApplC (wrapNamed "shen.encode-choices" kl_shen_encode_choices)]
-                                                     in case kl_V1439 of
-                                                            kl_V1439@(Atom (Nil)) -> pat_cond_0
-                                                            !(kl_V1439@(Cons (!(kl_V1439h@(Cons (Atom (UnboundSym "true"))
-                                                                                                (!(kl_V1439ht@(Cons (!(kl_V1439hth@(Cons (Atom (UnboundSym "shen.choicepoint!"))
-                                                                                                                                         (!(kl_V1439htht@(Cons (!kl_V1439hthth)
-                                                                                                                                                               (Atom (Nil))))))))
-                                                                                                                    (Atom (Nil))))))))
-                                                                             (Atom (Nil)))) -> pat_cond_1 kl_V1439 kl_V1439h kl_V1439ht kl_V1439hth kl_V1439htht kl_V1439hthth
-                                                            !(kl_V1439@(Cons (!(kl_V1439h@(Cons (Atom (UnboundSym "true"))
-                                                                                                (!(kl_V1439ht@(Cons (!(kl_V1439hth@(Cons (ApplC (PL "shen.choicepoint!"
-                                                                                                                                                    _))
-                                                                                                                                         (!(kl_V1439htht@(Cons (!kl_V1439hthth)
-                                                                                                                                                               (Atom (Nil))))))))
-                                                                                                                    (Atom (Nil))))))))
-                                                                             (Atom (Nil)))) -> pat_cond_1 kl_V1439 kl_V1439h kl_V1439ht kl_V1439hth kl_V1439htht kl_V1439hthth
-                                                            !(kl_V1439@(Cons (!(kl_V1439h@(Cons (Atom (UnboundSym "true"))
-                                                                                                (!(kl_V1439ht@(Cons (!(kl_V1439hth@(Cons (ApplC (Func "shen.choicepoint!"
-                                                                                                                                                      _))
-                                                                                                                                         (!(kl_V1439htht@(Cons (!kl_V1439hthth)
-                                                                                                                                                               (Atom (Nil))))))))
-                                                                                                                    (Atom (Nil))))))))
-                                                                             (Atom (Nil)))) -> pat_cond_1 kl_V1439 kl_V1439h kl_V1439ht kl_V1439hth kl_V1439htht kl_V1439hthth
-                                                            !(kl_V1439@(Cons (!(kl_V1439h@(Cons (Atom (B (True)))
-                                                                                                (!(kl_V1439ht@(Cons (!(kl_V1439hth@(Cons (Atom (UnboundSym "shen.choicepoint!"))
-                                                                                                                                         (!(kl_V1439htht@(Cons (!kl_V1439hthth)
-                                                                                                                                                               (Atom (Nil))))))))
-                                                                                                                    (Atom (Nil))))))))
-                                                                             (Atom (Nil)))) -> pat_cond_1 kl_V1439 kl_V1439h kl_V1439ht kl_V1439hth kl_V1439htht kl_V1439hthth
-                                                            !(kl_V1439@(Cons (!(kl_V1439h@(Cons (Atom (B (True)))
-                                                                                                (!(kl_V1439ht@(Cons (!(kl_V1439hth@(Cons (ApplC (PL "shen.choicepoint!"
-                                                                                                                                                    _))
-                                                                                                                                         (!(kl_V1439htht@(Cons (!kl_V1439hthth)
-                                                                                                                                                               (Atom (Nil))))))))
-                                                                                                                    (Atom (Nil))))))))
-                                                                             (Atom (Nil)))) -> pat_cond_1 kl_V1439 kl_V1439h kl_V1439ht kl_V1439hth kl_V1439htht kl_V1439hthth
-                                                            !(kl_V1439@(Cons (!(kl_V1439h@(Cons (Atom (B (True)))
-                                                                                                (!(kl_V1439ht@(Cons (!(kl_V1439hth@(Cons (ApplC (Func "shen.choicepoint!"
-                                                                                                                                                      _))
-                                                                                                                                         (!(kl_V1439htht@(Cons (!kl_V1439hthth)
-                                                                                                                                                               (Atom (Nil))))))))
-                                                                                                                    (Atom (Nil))))))))
-                                                                             (Atom (Nil)))) -> pat_cond_1 kl_V1439 kl_V1439h kl_V1439ht kl_V1439hth kl_V1439htht kl_V1439hthth
-                                                            !(kl_V1439@(Cons (!(kl_V1439h@(Cons (Atom (UnboundSym "true"))
-                                                                                                (!(kl_V1439ht@(Cons (!(kl_V1439hth@(Cons (Atom (UnboundSym "shen.choicepoint!"))
-                                                                                                                                         (!(kl_V1439htht@(Cons (!kl_V1439hthth)
-                                                                                                                                                               (Atom (Nil))))))))
-                                                                                                                    (Atom (Nil))))))))
-                                                                             (!kl_V1439t))) -> pat_cond_20 kl_V1439 kl_V1439h kl_V1439ht kl_V1439hth kl_V1439htht kl_V1439hthth kl_V1439t
-                                                            !(kl_V1439@(Cons (!(kl_V1439h@(Cons (Atom (UnboundSym "true"))
-                                                                                                (!(kl_V1439ht@(Cons (!(kl_V1439hth@(Cons (ApplC (PL "shen.choicepoint!"
-                                                                                                                                                    _))
-                                                                                                                                         (!(kl_V1439htht@(Cons (!kl_V1439hthth)
-                                                                                                                                                               (Atom (Nil))))))))
-                                                                                                                    (Atom (Nil))))))))
-                                                                             (!kl_V1439t))) -> pat_cond_20 kl_V1439 kl_V1439h kl_V1439ht kl_V1439hth kl_V1439htht kl_V1439hthth kl_V1439t
-                                                            !(kl_V1439@(Cons (!(kl_V1439h@(Cons (Atom (UnboundSym "true"))
-                                                                                                (!(kl_V1439ht@(Cons (!(kl_V1439hth@(Cons (ApplC (Func "shen.choicepoint!"
-                                                                                                                                                      _))
-                                                                                                                                         (!(kl_V1439htht@(Cons (!kl_V1439hthth)
-                                                                                                                                                               (Atom (Nil))))))))
-                                                                                                                    (Atom (Nil))))))))
-                                                                             (!kl_V1439t))) -> pat_cond_20 kl_V1439 kl_V1439h kl_V1439ht kl_V1439hth kl_V1439htht kl_V1439hthth kl_V1439t
-                                                            !(kl_V1439@(Cons (!(kl_V1439h@(Cons (Atom (B (True)))
-                                                                                                (!(kl_V1439ht@(Cons (!(kl_V1439hth@(Cons (Atom (UnboundSym "shen.choicepoint!"))
-                                                                                                                                         (!(kl_V1439htht@(Cons (!kl_V1439hthth)
-                                                                                                                                                               (Atom (Nil))))))))
-                                                                                                                    (Atom (Nil))))))))
-                                                                             (!kl_V1439t))) -> pat_cond_20 kl_V1439 kl_V1439h kl_V1439ht kl_V1439hth kl_V1439htht kl_V1439hthth kl_V1439t
-                                                            !(kl_V1439@(Cons (!(kl_V1439h@(Cons (Atom (B (True)))
-                                                                                                (!(kl_V1439ht@(Cons (!(kl_V1439hth@(Cons (ApplC (PL "shen.choicepoint!"
-                                                                                                                                                    _))
-                                                                                                                                         (!(kl_V1439htht@(Cons (!kl_V1439hthth)
-                                                                                                                                                               (Atom (Nil))))))))
-                                                                                                                    (Atom (Nil))))))))
-                                                                             (!kl_V1439t))) -> pat_cond_20 kl_V1439 kl_V1439h kl_V1439ht kl_V1439hth kl_V1439htht kl_V1439hthth kl_V1439t
-                                                            !(kl_V1439@(Cons (!(kl_V1439h@(Cons (Atom (B (True)))
-                                                                                                (!(kl_V1439ht@(Cons (!(kl_V1439hth@(Cons (ApplC (Func "shen.choicepoint!"
-                                                                                                                                                      _))
-                                                                                                                                         (!(kl_V1439htht@(Cons (!kl_V1439hthth)
-                                                                                                                                                               (Atom (Nil))))))))
-                                                                                                                    (Atom (Nil))))))))
-                                                                             (!kl_V1439t))) -> pat_cond_20 kl_V1439 kl_V1439h kl_V1439ht kl_V1439hth kl_V1439htht kl_V1439hthth kl_V1439t
-                                                            !(kl_V1439@(Cons (!(kl_V1439h@(Cons (!kl_V1439hh)
-                                                                                                (!(kl_V1439ht@(Cons (!(kl_V1439hth@(Cons (Atom (UnboundSym "shen.choicepoint!"))
-                                                                                                                                         (!(kl_V1439htht@(Cons (!kl_V1439hthth)
-                                                                                                                                                               (Atom (Nil))))))))
-                                                                                                                    (Atom (Nil))))))))
-                                                                             (!kl_V1439t))) -> pat_cond_37 kl_V1439 kl_V1439h kl_V1439hh kl_V1439ht kl_V1439hth kl_V1439htht kl_V1439hthth kl_V1439t
-                                                            !(kl_V1439@(Cons (!(kl_V1439h@(Cons (!kl_V1439hh)
-                                                                                                (!(kl_V1439ht@(Cons (!(kl_V1439hth@(Cons (ApplC (PL "shen.choicepoint!"
-                                                                                                                                                    _))
-                                                                                                                                         (!(kl_V1439htht@(Cons (!kl_V1439hthth)
-                                                                                                                                                               (Atom (Nil))))))))
-                                                                                                                    (Atom (Nil))))))))
-                                                                             (!kl_V1439t))) -> pat_cond_37 kl_V1439 kl_V1439h kl_V1439hh kl_V1439ht kl_V1439hth kl_V1439htht kl_V1439hthth kl_V1439t
-                                                            !(kl_V1439@(Cons (!(kl_V1439h@(Cons (!kl_V1439hh)
-                                                                                                (!(kl_V1439ht@(Cons (!(kl_V1439hth@(Cons (ApplC (Func "shen.choicepoint!"
-                                                                                                                                                      _))
-                                                                                                                                         (!(kl_V1439htht@(Cons (!kl_V1439hthth)
-                                                                                                                                                               (Atom (Nil))))))))
-                                                                                                                    (Atom (Nil))))))))
-                                                                             (!kl_V1439t))) -> pat_cond_37 kl_V1439 kl_V1439h kl_V1439hh kl_V1439ht kl_V1439hth kl_V1439htht kl_V1439hthth kl_V1439t
-                                                            !(kl_V1439@(Cons (!(kl_V1439h@(Cons (!kl_V1439hh)
-                                                                                                (!(kl_V1439ht@(Cons (!kl_V1439hth)
-                                                                                                                    (Atom (Nil))))))))
-                                                                             (!kl_V1439t))) -> pat_cond_68 kl_V1439 kl_V1439h kl_V1439hh kl_V1439ht kl_V1439hth kl_V1439t
-                                                            _ -> pat_cond_70
-
-kl_shen_case_form :: Types.KLValue ->
-                     Types.KLValue -> Types.KLContext Types.Env Types.KLValue
-kl_shen_case_form (!kl_V1447) (!kl_V1448) = do let pat_cond_0 = do kl_V1448 `pseq` klCons kl_V1448 (Types.Atom Types.Nil)
-                                                   pat_cond_1 kl_V1447 kl_V1447h kl_V1447hh kl_V1447hht kl_V1447ht kl_V1447hth kl_V1447htht kl_V1447hthth kl_V1447t = do !appl_2 <- kl_V1447ht `pseq` klCons (Atom (B True)) kl_V1447ht
-                                                                                                                                                                         !appl_3 <- kl_V1447t `pseq` (kl_V1448 `pseq` kl_shen_case_form kl_V1447t kl_V1448)
-                                                                                                                                                                         appl_2 `pseq` (appl_3 `pseq` klCons appl_2 appl_3)
-                                                   pat_cond_4 kl_V1447 kl_V1447h kl_V1447hh kl_V1447hht kl_V1447ht kl_V1447hth kl_V1447t = do !appl_5 <- kl_V1447ht `pseq` klCons (Atom (B True)) kl_V1447ht
-                                                                                                                                              appl_5 `pseq` klCons appl_5 (Types.Atom Types.Nil)
-                                                   pat_cond_6 kl_V1447 kl_V1447h kl_V1447hh kl_V1447hht kl_V1447hhtt kl_V1447ht kl_V1447hth kl_V1447t = do !appl_7 <- kl_V1447hhtt `pseq` kl_shen_embed_and kl_V1447hhtt
-                                                                                                                                                           !appl_8 <- appl_7 `pseq` (kl_V1447ht `pseq` klCons appl_7 kl_V1447ht)
-                                                                                                                                                           !appl_9 <- kl_V1447t `pseq` (kl_V1448 `pseq` kl_shen_case_form kl_V1447t kl_V1448)
-                                                                                                                                                           appl_8 `pseq` (appl_9 `pseq` klCons appl_8 appl_9)
-                                                   pat_cond_10 = do do let !aw_11 = Types.Atom (Types.UnboundSym "shen.f_error")
-                                                                       applyWrapper aw_11 [ApplC (wrapNamed "shen.case-form" kl_shen_case_form)]
-                                                in case kl_V1447 of
-                                                       kl_V1447@(Atom (Nil)) -> pat_cond_0
-                                                       !(kl_V1447@(Cons (!(kl_V1447h@(Cons (!(kl_V1447hh@(Cons (Atom (UnboundSym ":"))
-                                                                                                               (!(kl_V1447hht@(Cons (Atom (UnboundSym "shen.tests"))
-                                                                                                                                    (Atom (Nil))))))))
-                                                                                           (!(kl_V1447ht@(Cons (!(kl_V1447hth@(Cons (Atom (UnboundSym "shen.choicepoint!"))
-                                                                                                                                    (!(kl_V1447htht@(Cons (!kl_V1447hthth)
-                                                                                                                                                          (Atom (Nil))))))))
-                                                                                                               (Atom (Nil))))))))
-                                                                        (!kl_V1447t))) -> pat_cond_1 kl_V1447 kl_V1447h kl_V1447hh kl_V1447hht kl_V1447ht kl_V1447hth kl_V1447htht kl_V1447hthth kl_V1447t
-                                                       !(kl_V1447@(Cons (!(kl_V1447h@(Cons (!(kl_V1447hh@(Cons (Atom (UnboundSym ":"))
-                                                                                                               (!(kl_V1447hht@(Cons (Atom (UnboundSym "shen.tests"))
-                                                                                                                                    (Atom (Nil))))))))
-                                                                                           (!(kl_V1447ht@(Cons (!(kl_V1447hth@(Cons (ApplC (PL "shen.choicepoint!"
-                                                                                                                                               _))
-                                                                                                                                    (!(kl_V1447htht@(Cons (!kl_V1447hthth)
-                                                                                                                                                          (Atom (Nil))))))))
-                                                                                                               (Atom (Nil))))))))
-                                                                        (!kl_V1447t))) -> pat_cond_1 kl_V1447 kl_V1447h kl_V1447hh kl_V1447hht kl_V1447ht kl_V1447hth kl_V1447htht kl_V1447hthth kl_V1447t
-                                                       !(kl_V1447@(Cons (!(kl_V1447h@(Cons (!(kl_V1447hh@(Cons (Atom (UnboundSym ":"))
-                                                                                                               (!(kl_V1447hht@(Cons (Atom (UnboundSym "shen.tests"))
-                                                                                                                                    (Atom (Nil))))))))
-                                                                                           (!(kl_V1447ht@(Cons (!(kl_V1447hth@(Cons (ApplC (Func "shen.choicepoint!"
-                                                                                                                                                 _))
-                                                                                                                                    (!(kl_V1447htht@(Cons (!kl_V1447hthth)
-                                                                                                                                                          (Atom (Nil))))))))
-                                                                                                               (Atom (Nil))))))))
-                                                                        (!kl_V1447t))) -> pat_cond_1 kl_V1447 kl_V1447h kl_V1447hh kl_V1447hht kl_V1447ht kl_V1447hth kl_V1447htht kl_V1447hthth kl_V1447t
-                                                       !(kl_V1447@(Cons (!(kl_V1447h@(Cons (!(kl_V1447hh@(Cons (Atom (UnboundSym ":"))
-                                                                                                               (!(kl_V1447hht@(Cons (ApplC (PL "shen.tests"
-                                                                                                                                               _))
-                                                                                                                                    (Atom (Nil))))))))
-                                                                                           (!(kl_V1447ht@(Cons (!(kl_V1447hth@(Cons (Atom (UnboundSym "shen.choicepoint!"))
-                                                                                                                                    (!(kl_V1447htht@(Cons (!kl_V1447hthth)
-                                                                                                                                                          (Atom (Nil))))))))
-                                                                                                               (Atom (Nil))))))))
-                                                                        (!kl_V1447t))) -> pat_cond_1 kl_V1447 kl_V1447h kl_V1447hh kl_V1447hht kl_V1447ht kl_V1447hth kl_V1447htht kl_V1447hthth kl_V1447t
-                                                       !(kl_V1447@(Cons (!(kl_V1447h@(Cons (!(kl_V1447hh@(Cons (Atom (UnboundSym ":"))
-                                                                                                               (!(kl_V1447hht@(Cons (ApplC (PL "shen.tests"
-                                                                                                                                               _))
-                                                                                                                                    (Atom (Nil))))))))
-                                                                                           (!(kl_V1447ht@(Cons (!(kl_V1447hth@(Cons (ApplC (PL "shen.choicepoint!"
-                                                                                                                                               _))
-                                                                                                                                    (!(kl_V1447htht@(Cons (!kl_V1447hthth)
-                                                                                                                                                          (Atom (Nil))))))))
-                                                                                                               (Atom (Nil))))))))
-                                                                        (!kl_V1447t))) -> pat_cond_1 kl_V1447 kl_V1447h kl_V1447hh kl_V1447hht kl_V1447ht kl_V1447hth kl_V1447htht kl_V1447hthth kl_V1447t
-                                                       !(kl_V1447@(Cons (!(kl_V1447h@(Cons (!(kl_V1447hh@(Cons (Atom (UnboundSym ":"))
-                                                                                                               (!(kl_V1447hht@(Cons (ApplC (PL "shen.tests"
-                                                                                                                                               _))
-                                                                                                                                    (Atom (Nil))))))))
-                                                                                           (!(kl_V1447ht@(Cons (!(kl_V1447hth@(Cons (ApplC (Func "shen.choicepoint!"
-                                                                                                                                                 _))
-                                                                                                                                    (!(kl_V1447htht@(Cons (!kl_V1447hthth)
-                                                                                                                                                          (Atom (Nil))))))))
-                                                                                                               (Atom (Nil))))))))
-                                                                        (!kl_V1447t))) -> pat_cond_1 kl_V1447 kl_V1447h kl_V1447hh kl_V1447hht kl_V1447ht kl_V1447hth kl_V1447htht kl_V1447hthth kl_V1447t
-                                                       !(kl_V1447@(Cons (!(kl_V1447h@(Cons (!(kl_V1447hh@(Cons (Atom (UnboundSym ":"))
-                                                                                                               (!(kl_V1447hht@(Cons (ApplC (Func "shen.tests"
-                                                                                                                                                 _))
-                                                                                                                                    (Atom (Nil))))))))
-                                                                                           (!(kl_V1447ht@(Cons (!(kl_V1447hth@(Cons (Atom (UnboundSym "shen.choicepoint!"))
-                                                                                                                                    (!(kl_V1447htht@(Cons (!kl_V1447hthth)
-                                                                                                                                                          (Atom (Nil))))))))
-                                                                                                               (Atom (Nil))))))))
-                                                                        (!kl_V1447t))) -> pat_cond_1 kl_V1447 kl_V1447h kl_V1447hh kl_V1447hht kl_V1447ht kl_V1447hth kl_V1447htht kl_V1447hthth kl_V1447t
-                                                       !(kl_V1447@(Cons (!(kl_V1447h@(Cons (!(kl_V1447hh@(Cons (Atom (UnboundSym ":"))
-                                                                                                               (!(kl_V1447hht@(Cons (ApplC (Func "shen.tests"
-                                                                                                                                                 _))
-                                                                                                                                    (Atom (Nil))))))))
-                                                                                           (!(kl_V1447ht@(Cons (!(kl_V1447hth@(Cons (ApplC (PL "shen.choicepoint!"
-                                                                                                                                               _))
-                                                                                                                                    (!(kl_V1447htht@(Cons (!kl_V1447hthth)
-                                                                                                                                                          (Atom (Nil))))))))
-                                                                                                               (Atom (Nil))))))))
-                                                                        (!kl_V1447t))) -> pat_cond_1 kl_V1447 kl_V1447h kl_V1447hh kl_V1447hht kl_V1447ht kl_V1447hth kl_V1447htht kl_V1447hthth kl_V1447t
-                                                       !(kl_V1447@(Cons (!(kl_V1447h@(Cons (!(kl_V1447hh@(Cons (Atom (UnboundSym ":"))
-                                                                                                               (!(kl_V1447hht@(Cons (ApplC (Func "shen.tests"
-                                                                                                                                                 _))
-                                                                                                                                    (Atom (Nil))))))))
-                                                                                           (!(kl_V1447ht@(Cons (!(kl_V1447hth@(Cons (ApplC (Func "shen.choicepoint!"
-                                                                                                                                                 _))
-                                                                                                                                    (!(kl_V1447htht@(Cons (!kl_V1447hthth)
-                                                                                                                                                          (Atom (Nil))))))))
-                                                                                                               (Atom (Nil))))))))
-                                                                        (!kl_V1447t))) -> pat_cond_1 kl_V1447 kl_V1447h kl_V1447hh kl_V1447hht kl_V1447ht kl_V1447hth kl_V1447htht kl_V1447hthth kl_V1447t
-                                                       !(kl_V1447@(Cons (!(kl_V1447h@(Cons (!(kl_V1447hh@(Cons (ApplC (PL ":"
-                                                                                                                          _))
-                                                                                                               (!(kl_V1447hht@(Cons (Atom (UnboundSym "shen.tests"))
-                                                                                                                                    (Atom (Nil))))))))
-                                                                                           (!(kl_V1447ht@(Cons (!(kl_V1447hth@(Cons (Atom (UnboundSym "shen.choicepoint!"))
-                                                                                                                                    (!(kl_V1447htht@(Cons (!kl_V1447hthth)
-                                                                                                                                                          (Atom (Nil))))))))
-                                                                                                               (Atom (Nil))))))))
-                                                                        (!kl_V1447t))) -> pat_cond_1 kl_V1447 kl_V1447h kl_V1447hh kl_V1447hht kl_V1447ht kl_V1447hth kl_V1447htht kl_V1447hthth kl_V1447t
-                                                       !(kl_V1447@(Cons (!(kl_V1447h@(Cons (!(kl_V1447hh@(Cons (ApplC (PL ":"
-                                                                                                                          _))
-                                                                                                               (!(kl_V1447hht@(Cons (Atom (UnboundSym "shen.tests"))
-                                                                                                                                    (Atom (Nil))))))))
-                                                                                           (!(kl_V1447ht@(Cons (!(kl_V1447hth@(Cons (ApplC (PL "shen.choicepoint!"
-                                                                                                                                               _))
-                                                                                                                                    (!(kl_V1447htht@(Cons (!kl_V1447hthth)
-                                                                                                                                                          (Atom (Nil))))))))
-                                                                                                               (Atom (Nil))))))))
-                                                                        (!kl_V1447t))) -> pat_cond_1 kl_V1447 kl_V1447h kl_V1447hh kl_V1447hht kl_V1447ht kl_V1447hth kl_V1447htht kl_V1447hthth kl_V1447t
-                                                       !(kl_V1447@(Cons (!(kl_V1447h@(Cons (!(kl_V1447hh@(Cons (ApplC (PL ":"
-                                                                                                                          _))
-                                                                                                               (!(kl_V1447hht@(Cons (Atom (UnboundSym "shen.tests"))
-                                                                                                                                    (Atom (Nil))))))))
-                                                                                           (!(kl_V1447ht@(Cons (!(kl_V1447hth@(Cons (ApplC (Func "shen.choicepoint!"
-                                                                                                                                                 _))
-                                                                                                                                    (!(kl_V1447htht@(Cons (!kl_V1447hthth)
-                                                                                                                                                          (Atom (Nil))))))))
-                                                                                                               (Atom (Nil))))))))
-                                                                        (!kl_V1447t))) -> pat_cond_1 kl_V1447 kl_V1447h kl_V1447hh kl_V1447hht kl_V1447ht kl_V1447hth kl_V1447htht kl_V1447hthth kl_V1447t
-                                                       !(kl_V1447@(Cons (!(kl_V1447h@(Cons (!(kl_V1447hh@(Cons (ApplC (PL ":"
-                                                                                                                          _))
-                                                                                                               (!(kl_V1447hht@(Cons (ApplC (PL "shen.tests"
-                                                                                                                                               _))
-                                                                                                                                    (Atom (Nil))))))))
-                                                                                           (!(kl_V1447ht@(Cons (!(kl_V1447hth@(Cons (Atom (UnboundSym "shen.choicepoint!"))
-                                                                                                                                    (!(kl_V1447htht@(Cons (!kl_V1447hthth)
-                                                                                                                                                          (Atom (Nil))))))))
-                                                                                                               (Atom (Nil))))))))
-                                                                        (!kl_V1447t))) -> pat_cond_1 kl_V1447 kl_V1447h kl_V1447hh kl_V1447hht kl_V1447ht kl_V1447hth kl_V1447htht kl_V1447hthth kl_V1447t
-                                                       !(kl_V1447@(Cons (!(kl_V1447h@(Cons (!(kl_V1447hh@(Cons (ApplC (PL ":"
-                                                                                                                          _))
-                                                                                                               (!(kl_V1447hht@(Cons (ApplC (PL "shen.tests"
-                                                                                                                                               _))
-                                                                                                                                    (Atom (Nil))))))))
-                                                                                           (!(kl_V1447ht@(Cons (!(kl_V1447hth@(Cons (ApplC (PL "shen.choicepoint!"
-                                                                                                                                               _))
-                                                                                                                                    (!(kl_V1447htht@(Cons (!kl_V1447hthth)
-                                                                                                                                                          (Atom (Nil))))))))
-                                                                                                               (Atom (Nil))))))))
-                                                                        (!kl_V1447t))) -> pat_cond_1 kl_V1447 kl_V1447h kl_V1447hh kl_V1447hht kl_V1447ht kl_V1447hth kl_V1447htht kl_V1447hthth kl_V1447t
-                                                       !(kl_V1447@(Cons (!(kl_V1447h@(Cons (!(kl_V1447hh@(Cons (ApplC (PL ":"
-                                                                                                                          _))
-                                                                                                               (!(kl_V1447hht@(Cons (ApplC (PL "shen.tests"
-                                                                                                                                               _))
-                                                                                                                                    (Atom (Nil))))))))
-                                                                                           (!(kl_V1447ht@(Cons (!(kl_V1447hth@(Cons (ApplC (Func "shen.choicepoint!"
-                                                                                                                                                 _))
-                                                                                                                                    (!(kl_V1447htht@(Cons (!kl_V1447hthth)
-                                                                                                                                                          (Atom (Nil))))))))
-                                                                                                               (Atom (Nil))))))))
-                                                                        (!kl_V1447t))) -> pat_cond_1 kl_V1447 kl_V1447h kl_V1447hh kl_V1447hht kl_V1447ht kl_V1447hth kl_V1447htht kl_V1447hthth kl_V1447t
-                                                       !(kl_V1447@(Cons (!(kl_V1447h@(Cons (!(kl_V1447hh@(Cons (ApplC (PL ":"
-                                                                                                                          _))
-                                                                                                               (!(kl_V1447hht@(Cons (ApplC (Func "shen.tests"
-                                                                                                                                                 _))
-                                                                                                                                    (Atom (Nil))))))))
-                                                                                           (!(kl_V1447ht@(Cons (!(kl_V1447hth@(Cons (Atom (UnboundSym "shen.choicepoint!"))
-                                                                                                                                    (!(kl_V1447htht@(Cons (!kl_V1447hthth)
-                                                                                                                                                          (Atom (Nil))))))))
-                                                                                                               (Atom (Nil))))))))
-                                                                        (!kl_V1447t))) -> pat_cond_1 kl_V1447 kl_V1447h kl_V1447hh kl_V1447hht kl_V1447ht kl_V1447hth kl_V1447htht kl_V1447hthth kl_V1447t
-                                                       !(kl_V1447@(Cons (!(kl_V1447h@(Cons (!(kl_V1447hh@(Cons (ApplC (PL ":"
-                                                                                                                          _))
-                                                                                                               (!(kl_V1447hht@(Cons (ApplC (Func "shen.tests"
-                                                                                                                                                 _))
-                                                                                                                                    (Atom (Nil))))))))
-                                                                                           (!(kl_V1447ht@(Cons (!(kl_V1447hth@(Cons (ApplC (PL "shen.choicepoint!"
-                                                                                                                                               _))
-                                                                                                                                    (!(kl_V1447htht@(Cons (!kl_V1447hthth)
-                                                                                                                                                          (Atom (Nil))))))))
-                                                                                                               (Atom (Nil))))))))
-                                                                        (!kl_V1447t))) -> pat_cond_1 kl_V1447 kl_V1447h kl_V1447hh kl_V1447hht kl_V1447ht kl_V1447hth kl_V1447htht kl_V1447hthth kl_V1447t
-                                                       !(kl_V1447@(Cons (!(kl_V1447h@(Cons (!(kl_V1447hh@(Cons (ApplC (PL ":"
-                                                                                                                          _))
-                                                                                                               (!(kl_V1447hht@(Cons (ApplC (Func "shen.tests"
-                                                                                                                                                 _))
-                                                                                                                                    (Atom (Nil))))))))
-                                                                                           (!(kl_V1447ht@(Cons (!(kl_V1447hth@(Cons (ApplC (Func "shen.choicepoint!"
-                                                                                                                                                 _))
-                                                                                                                                    (!(kl_V1447htht@(Cons (!kl_V1447hthth)
-                                                                                                                                                          (Atom (Nil))))))))
-                                                                                                               (Atom (Nil))))))))
-                                                                        (!kl_V1447t))) -> pat_cond_1 kl_V1447 kl_V1447h kl_V1447hh kl_V1447hht kl_V1447ht kl_V1447hth kl_V1447htht kl_V1447hthth kl_V1447t
-                                                       !(kl_V1447@(Cons (!(kl_V1447h@(Cons (!(kl_V1447hh@(Cons (ApplC (Func ":"
-                                                                                                                            _))
-                                                                                                               (!(kl_V1447hht@(Cons (Atom (UnboundSym "shen.tests"))
-                                                                                                                                    (Atom (Nil))))))))
-                                                                                           (!(kl_V1447ht@(Cons (!(kl_V1447hth@(Cons (Atom (UnboundSym "shen.choicepoint!"))
-                                                                                                                                    (!(kl_V1447htht@(Cons (!kl_V1447hthth)
-                                                                                                                                                          (Atom (Nil))))))))
-                                                                                                               (Atom (Nil))))))))
-                                                                        (!kl_V1447t))) -> pat_cond_1 kl_V1447 kl_V1447h kl_V1447hh kl_V1447hht kl_V1447ht kl_V1447hth kl_V1447htht kl_V1447hthth kl_V1447t
-                                                       !(kl_V1447@(Cons (!(kl_V1447h@(Cons (!(kl_V1447hh@(Cons (ApplC (Func ":"
-                                                                                                                            _))
-                                                                                                               (!(kl_V1447hht@(Cons (Atom (UnboundSym "shen.tests"))
-                                                                                                                                    (Atom (Nil))))))))
-                                                                                           (!(kl_V1447ht@(Cons (!(kl_V1447hth@(Cons (ApplC (PL "shen.choicepoint!"
-                                                                                                                                               _))
-                                                                                                                                    (!(kl_V1447htht@(Cons (!kl_V1447hthth)
-                                                                                                                                                          (Atom (Nil))))))))
-                                                                                                               (Atom (Nil))))))))
-                                                                        (!kl_V1447t))) -> pat_cond_1 kl_V1447 kl_V1447h kl_V1447hh kl_V1447hht kl_V1447ht kl_V1447hth kl_V1447htht kl_V1447hthth kl_V1447t
-                                                       !(kl_V1447@(Cons (!(kl_V1447h@(Cons (!(kl_V1447hh@(Cons (ApplC (Func ":"
-                                                                                                                            _))
-                                                                                                               (!(kl_V1447hht@(Cons (Atom (UnboundSym "shen.tests"))
-                                                                                                                                    (Atom (Nil))))))))
-                                                                                           (!(kl_V1447ht@(Cons (!(kl_V1447hth@(Cons (ApplC (Func "shen.choicepoint!"
-                                                                                                                                                 _))
-                                                                                                                                    (!(kl_V1447htht@(Cons (!kl_V1447hthth)
-                                                                                                                                                          (Atom (Nil))))))))
-                                                                                                               (Atom (Nil))))))))
-                                                                        (!kl_V1447t))) -> pat_cond_1 kl_V1447 kl_V1447h kl_V1447hh kl_V1447hht kl_V1447ht kl_V1447hth kl_V1447htht kl_V1447hthth kl_V1447t
-                                                       !(kl_V1447@(Cons (!(kl_V1447h@(Cons (!(kl_V1447hh@(Cons (ApplC (Func ":"
-                                                                                                                            _))
-                                                                                                               (!(kl_V1447hht@(Cons (ApplC (PL "shen.tests"
-                                                                                                                                               _))
-                                                                                                                                    (Atom (Nil))))))))
-                                                                                           (!(kl_V1447ht@(Cons (!(kl_V1447hth@(Cons (Atom (UnboundSym "shen.choicepoint!"))
-                                                                                                                                    (!(kl_V1447htht@(Cons (!kl_V1447hthth)
-                                                                                                                                                          (Atom (Nil))))))))
-                                                                                                               (Atom (Nil))))))))
-                                                                        (!kl_V1447t))) -> pat_cond_1 kl_V1447 kl_V1447h kl_V1447hh kl_V1447hht kl_V1447ht kl_V1447hth kl_V1447htht kl_V1447hthth kl_V1447t
-                                                       !(kl_V1447@(Cons (!(kl_V1447h@(Cons (!(kl_V1447hh@(Cons (ApplC (Func ":"
-                                                                                                                            _))
-                                                                                                               (!(kl_V1447hht@(Cons (ApplC (PL "shen.tests"
-                                                                                                                                               _))
-                                                                                                                                    (Atom (Nil))))))))
-                                                                                           (!(kl_V1447ht@(Cons (!(kl_V1447hth@(Cons (ApplC (PL "shen.choicepoint!"
-                                                                                                                                               _))
-                                                                                                                                    (!(kl_V1447htht@(Cons (!kl_V1447hthth)
-                                                                                                                                                          (Atom (Nil))))))))
-                                                                                                               (Atom (Nil))))))))
-                                                                        (!kl_V1447t))) -> pat_cond_1 kl_V1447 kl_V1447h kl_V1447hh kl_V1447hht kl_V1447ht kl_V1447hth kl_V1447htht kl_V1447hthth kl_V1447t
-                                                       !(kl_V1447@(Cons (!(kl_V1447h@(Cons (!(kl_V1447hh@(Cons (ApplC (Func ":"
-                                                                                                                            _))
-                                                                                                               (!(kl_V1447hht@(Cons (ApplC (PL "shen.tests"
-                                                                                                                                               _))
-                                                                                                                                    (Atom (Nil))))))))
-                                                                                           (!(kl_V1447ht@(Cons (!(kl_V1447hth@(Cons (ApplC (Func "shen.choicepoint!"
-                                                                                                                                                 _))
-                                                                                                                                    (!(kl_V1447htht@(Cons (!kl_V1447hthth)
-                                                                                                                                                          (Atom (Nil))))))))
-                                                                                                               (Atom (Nil))))))))
-                                                                        (!kl_V1447t))) -> pat_cond_1 kl_V1447 kl_V1447h kl_V1447hh kl_V1447hht kl_V1447ht kl_V1447hth kl_V1447htht kl_V1447hthth kl_V1447t
-                                                       !(kl_V1447@(Cons (!(kl_V1447h@(Cons (!(kl_V1447hh@(Cons (ApplC (Func ":"
-                                                                                                                            _))
-                                                                                                               (!(kl_V1447hht@(Cons (ApplC (Func "shen.tests"
-                                                                                                                                                 _))
-                                                                                                                                    (Atom (Nil))))))))
-                                                                                           (!(kl_V1447ht@(Cons (!(kl_V1447hth@(Cons (Atom (UnboundSym "shen.choicepoint!"))
-                                                                                                                                    (!(kl_V1447htht@(Cons (!kl_V1447hthth)
-                                                                                                                                                          (Atom (Nil))))))))
-                                                                                                               (Atom (Nil))))))))
-                                                                        (!kl_V1447t))) -> pat_cond_1 kl_V1447 kl_V1447h kl_V1447hh kl_V1447hht kl_V1447ht kl_V1447hth kl_V1447htht kl_V1447hthth kl_V1447t
-                                                       !(kl_V1447@(Cons (!(kl_V1447h@(Cons (!(kl_V1447hh@(Cons (ApplC (Func ":"
-                                                                                                                            _))
-                                                                                                               (!(kl_V1447hht@(Cons (ApplC (Func "shen.tests"
-                                                                                                                                                 _))
-                                                                                                                                    (Atom (Nil))))))))
-                                                                                           (!(kl_V1447ht@(Cons (!(kl_V1447hth@(Cons (ApplC (PL "shen.choicepoint!"
-                                                                                                                                               _))
-                                                                                                                                    (!(kl_V1447htht@(Cons (!kl_V1447hthth)
-                                                                                                                                                          (Atom (Nil))))))))
-                                                                                                               (Atom (Nil))))))))
-                                                                        (!kl_V1447t))) -> pat_cond_1 kl_V1447 kl_V1447h kl_V1447hh kl_V1447hht kl_V1447ht kl_V1447hth kl_V1447htht kl_V1447hthth kl_V1447t
-                                                       !(kl_V1447@(Cons (!(kl_V1447h@(Cons (!(kl_V1447hh@(Cons (ApplC (Func ":"
-                                                                                                                            _))
-                                                                                                               (!(kl_V1447hht@(Cons (ApplC (Func "shen.tests"
-                                                                                                                                                 _))
-                                                                                                                                    (Atom (Nil))))))))
-                                                                                           (!(kl_V1447ht@(Cons (!(kl_V1447hth@(Cons (ApplC (Func "shen.choicepoint!"
-                                                                                                                                                 _))
-                                                                                                                                    (!(kl_V1447htht@(Cons (!kl_V1447hthth)
-                                                                                                                                                          (Atom (Nil))))))))
-                                                                                                               (Atom (Nil))))))))
-                                                                        (!kl_V1447t))) -> pat_cond_1 kl_V1447 kl_V1447h kl_V1447hh kl_V1447hht kl_V1447ht kl_V1447hth kl_V1447htht kl_V1447hthth kl_V1447t
-                                                       !(kl_V1447@(Cons (!(kl_V1447h@(Cons (!(kl_V1447hh@(Cons (Atom (UnboundSym ":"))
-                                                                                                               (!(kl_V1447hht@(Cons (Atom (UnboundSym "shen.tests"))
-                                                                                                                                    (Atom (Nil))))))))
-                                                                                           (!(kl_V1447ht@(Cons (!kl_V1447hth)
-                                                                                                               (Atom (Nil))))))))
-                                                                        (!kl_V1447t))) -> pat_cond_4 kl_V1447 kl_V1447h kl_V1447hh kl_V1447hht kl_V1447ht kl_V1447hth kl_V1447t
-                                                       !(kl_V1447@(Cons (!(kl_V1447h@(Cons (!(kl_V1447hh@(Cons (Atom (UnboundSym ":"))
-                                                                                                               (!(kl_V1447hht@(Cons (ApplC (PL "shen.tests"
-                                                                                                                                               _))
-                                                                                                                                    (Atom (Nil))))))))
-                                                                                           (!(kl_V1447ht@(Cons (!kl_V1447hth)
-                                                                                                               (Atom (Nil))))))))
-                                                                        (!kl_V1447t))) -> pat_cond_4 kl_V1447 kl_V1447h kl_V1447hh kl_V1447hht kl_V1447ht kl_V1447hth kl_V1447t
-                                                       !(kl_V1447@(Cons (!(kl_V1447h@(Cons (!(kl_V1447hh@(Cons (Atom (UnboundSym ":"))
-                                                                                                               (!(kl_V1447hht@(Cons (ApplC (Func "shen.tests"
-                                                                                                                                                 _))
-                                                                                                                                    (Atom (Nil))))))))
-                                                                                           (!(kl_V1447ht@(Cons (!kl_V1447hth)
-                                                                                                               (Atom (Nil))))))))
-                                                                        (!kl_V1447t))) -> pat_cond_4 kl_V1447 kl_V1447h kl_V1447hh kl_V1447hht kl_V1447ht kl_V1447hth kl_V1447t
-                                                       !(kl_V1447@(Cons (!(kl_V1447h@(Cons (!(kl_V1447hh@(Cons (ApplC (PL ":"
-                                                                                                                          _))
-                                                                                                               (!(kl_V1447hht@(Cons (Atom (UnboundSym "shen.tests"))
-                                                                                                                                    (Atom (Nil))))))))
-                                                                                           (!(kl_V1447ht@(Cons (!kl_V1447hth)
-                                                                                                               (Atom (Nil))))))))
-                                                                        (!kl_V1447t))) -> pat_cond_4 kl_V1447 kl_V1447h kl_V1447hh kl_V1447hht kl_V1447ht kl_V1447hth kl_V1447t
-                                                       !(kl_V1447@(Cons (!(kl_V1447h@(Cons (!(kl_V1447hh@(Cons (ApplC (PL ":"
-                                                                                                                          _))
-                                                                                                               (!(kl_V1447hht@(Cons (ApplC (PL "shen.tests"
-                                                                                                                                               _))
-                                                                                                                                    (Atom (Nil))))))))
-                                                                                           (!(kl_V1447ht@(Cons (!kl_V1447hth)
-                                                                                                               (Atom (Nil))))))))
-                                                                        (!kl_V1447t))) -> pat_cond_4 kl_V1447 kl_V1447h kl_V1447hh kl_V1447hht kl_V1447ht kl_V1447hth kl_V1447t
-                                                       !(kl_V1447@(Cons (!(kl_V1447h@(Cons (!(kl_V1447hh@(Cons (ApplC (PL ":"
-                                                                                                                          _))
-                                                                                                               (!(kl_V1447hht@(Cons (ApplC (Func "shen.tests"
-                                                                                                                                                 _))
-                                                                                                                                    (Atom (Nil))))))))
-                                                                                           (!(kl_V1447ht@(Cons (!kl_V1447hth)
-                                                                                                               (Atom (Nil))))))))
-                                                                        (!kl_V1447t))) -> pat_cond_4 kl_V1447 kl_V1447h kl_V1447hh kl_V1447hht kl_V1447ht kl_V1447hth kl_V1447t
-                                                       !(kl_V1447@(Cons (!(kl_V1447h@(Cons (!(kl_V1447hh@(Cons (ApplC (Func ":"
-                                                                                                                            _))
-                                                                                                               (!(kl_V1447hht@(Cons (Atom (UnboundSym "shen.tests"))
-                                                                                                                                    (Atom (Nil))))))))
-                                                                                           (!(kl_V1447ht@(Cons (!kl_V1447hth)
-                                                                                                               (Atom (Nil))))))))
-                                                                        (!kl_V1447t))) -> pat_cond_4 kl_V1447 kl_V1447h kl_V1447hh kl_V1447hht kl_V1447ht kl_V1447hth kl_V1447t
-                                                       !(kl_V1447@(Cons (!(kl_V1447h@(Cons (!(kl_V1447hh@(Cons (ApplC (Func ":"
-                                                                                                                            _))
-                                                                                                               (!(kl_V1447hht@(Cons (ApplC (PL "shen.tests"
-                                                                                                                                               _))
-                                                                                                                                    (Atom (Nil))))))))
-                                                                                           (!(kl_V1447ht@(Cons (!kl_V1447hth)
-                                                                                                               (Atom (Nil))))))))
-                                                                        (!kl_V1447t))) -> pat_cond_4 kl_V1447 kl_V1447h kl_V1447hh kl_V1447hht kl_V1447ht kl_V1447hth kl_V1447t
-                                                       !(kl_V1447@(Cons (!(kl_V1447h@(Cons (!(kl_V1447hh@(Cons (ApplC (Func ":"
-                                                                                                                            _))
-                                                                                                               (!(kl_V1447hht@(Cons (ApplC (Func "shen.tests"
-                                                                                                                                                 _))
-                                                                                                                                    (Atom (Nil))))))))
-                                                                                           (!(kl_V1447ht@(Cons (!kl_V1447hth)
-                                                                                                               (Atom (Nil))))))))
-                                                                        (!kl_V1447t))) -> pat_cond_4 kl_V1447 kl_V1447h kl_V1447hh kl_V1447hht kl_V1447ht kl_V1447hth kl_V1447t
-                                                       !(kl_V1447@(Cons (!(kl_V1447h@(Cons (!(kl_V1447hh@(Cons (Atom (UnboundSym ":"))
-                                                                                                               (!(kl_V1447hht@(Cons (Atom (UnboundSym "shen.tests"))
-                                                                                                                                    (!kl_V1447hhtt)))))))
-                                                                                           (!(kl_V1447ht@(Cons (!kl_V1447hth)
-                                                                                                               (Atom (Nil))))))))
-                                                                        (!kl_V1447t))) -> pat_cond_6 kl_V1447 kl_V1447h kl_V1447hh kl_V1447hht kl_V1447hhtt kl_V1447ht kl_V1447hth kl_V1447t
-                                                       !(kl_V1447@(Cons (!(kl_V1447h@(Cons (!(kl_V1447hh@(Cons (Atom (UnboundSym ":"))
-                                                                                                               (!(kl_V1447hht@(Cons (ApplC (PL "shen.tests"
-                                                                                                                                               _))
-                                                                                                                                    (!kl_V1447hhtt)))))))
-                                                                                           (!(kl_V1447ht@(Cons (!kl_V1447hth)
-                                                                                                               (Atom (Nil))))))))
-                                                                        (!kl_V1447t))) -> pat_cond_6 kl_V1447 kl_V1447h kl_V1447hh kl_V1447hht kl_V1447hhtt kl_V1447ht kl_V1447hth kl_V1447t
-                                                       !(kl_V1447@(Cons (!(kl_V1447h@(Cons (!(kl_V1447hh@(Cons (Atom (UnboundSym ":"))
-                                                                                                               (!(kl_V1447hht@(Cons (ApplC (Func "shen.tests"
-                                                                                                                                                 _))
-                                                                                                                                    (!kl_V1447hhtt)))))))
-                                                                                           (!(kl_V1447ht@(Cons (!kl_V1447hth)
-                                                                                                               (Atom (Nil))))))))
-                                                                        (!kl_V1447t))) -> pat_cond_6 kl_V1447 kl_V1447h kl_V1447hh kl_V1447hht kl_V1447hhtt kl_V1447ht kl_V1447hth kl_V1447t
-                                                       !(kl_V1447@(Cons (!(kl_V1447h@(Cons (!(kl_V1447hh@(Cons (ApplC (PL ":"
-                                                                                                                          _))
-                                                                                                               (!(kl_V1447hht@(Cons (Atom (UnboundSym "shen.tests"))
-                                                                                                                                    (!kl_V1447hhtt)))))))
-                                                                                           (!(kl_V1447ht@(Cons (!kl_V1447hth)
-                                                                                                               (Atom (Nil))))))))
-                                                                        (!kl_V1447t))) -> pat_cond_6 kl_V1447 kl_V1447h kl_V1447hh kl_V1447hht kl_V1447hhtt kl_V1447ht kl_V1447hth kl_V1447t
-                                                       !(kl_V1447@(Cons (!(kl_V1447h@(Cons (!(kl_V1447hh@(Cons (ApplC (PL ":"
-                                                                                                                          _))
-                                                                                                               (!(kl_V1447hht@(Cons (ApplC (PL "shen.tests"
-                                                                                                                                               _))
-                                                                                                                                    (!kl_V1447hhtt)))))))
-                                                                                           (!(kl_V1447ht@(Cons (!kl_V1447hth)
-                                                                                                               (Atom (Nil))))))))
-                                                                        (!kl_V1447t))) -> pat_cond_6 kl_V1447 kl_V1447h kl_V1447hh kl_V1447hht kl_V1447hhtt kl_V1447ht kl_V1447hth kl_V1447t
-                                                       !(kl_V1447@(Cons (!(kl_V1447h@(Cons (!(kl_V1447hh@(Cons (ApplC (PL ":"
-                                                                                                                          _))
-                                                                                                               (!(kl_V1447hht@(Cons (ApplC (Func "shen.tests"
-                                                                                                                                                 _))
-                                                                                                                                    (!kl_V1447hhtt)))))))
-                                                                                           (!(kl_V1447ht@(Cons (!kl_V1447hth)
-                                                                                                               (Atom (Nil))))))))
-                                                                        (!kl_V1447t))) -> pat_cond_6 kl_V1447 kl_V1447h kl_V1447hh kl_V1447hht kl_V1447hhtt kl_V1447ht kl_V1447hth kl_V1447t
-                                                       !(kl_V1447@(Cons (!(kl_V1447h@(Cons (!(kl_V1447hh@(Cons (ApplC (Func ":"
-                                                                                                                            _))
-                                                                                                               (!(kl_V1447hht@(Cons (Atom (UnboundSym "shen.tests"))
-                                                                                                                                    (!kl_V1447hhtt)))))))
-                                                                                           (!(kl_V1447ht@(Cons (!kl_V1447hth)
-                                                                                                               (Atom (Nil))))))))
-                                                                        (!kl_V1447t))) -> pat_cond_6 kl_V1447 kl_V1447h kl_V1447hh kl_V1447hht kl_V1447hhtt kl_V1447ht kl_V1447hth kl_V1447t
-                                                       !(kl_V1447@(Cons (!(kl_V1447h@(Cons (!(kl_V1447hh@(Cons (ApplC (Func ":"
-                                                                                                                            _))
-                                                                                                               (!(kl_V1447hht@(Cons (ApplC (PL "shen.tests"
-                                                                                                                                               _))
-                                                                                                                                    (!kl_V1447hhtt)))))))
-                                                                                           (!(kl_V1447ht@(Cons (!kl_V1447hth)
-                                                                                                               (Atom (Nil))))))))
-                                                                        (!kl_V1447t))) -> pat_cond_6 kl_V1447 kl_V1447h kl_V1447hh kl_V1447hht kl_V1447hhtt kl_V1447ht kl_V1447hth kl_V1447t
-                                                       !(kl_V1447@(Cons (!(kl_V1447h@(Cons (!(kl_V1447hh@(Cons (ApplC (Func ":"
-                                                                                                                            _))
-                                                                                                               (!(kl_V1447hht@(Cons (ApplC (Func "shen.tests"
-                                                                                                                                                 _))
-                                                                                                                                    (!kl_V1447hhtt)))))))
-                                                                                           (!(kl_V1447ht@(Cons (!kl_V1447hth)
-                                                                                                               (Atom (Nil))))))))
-                                                                        (!kl_V1447t))) -> pat_cond_6 kl_V1447 kl_V1447h kl_V1447hh kl_V1447hht kl_V1447hhtt kl_V1447ht kl_V1447hth kl_V1447t
-                                                       _ -> pat_cond_10
-
-kl_shen_embed_and :: Types.KLValue ->
-                     Types.KLContext Types.Env Types.KLValue
-kl_shen_embed_and (!kl_V1450) = do let pat_cond_0 kl_V1450 kl_V1450h = do return kl_V1450h
-                                       pat_cond_1 kl_V1450 kl_V1450h kl_V1450t = do !appl_2 <- kl_V1450t `pseq` kl_shen_embed_and kl_V1450t
-                                                                                    !appl_3 <- appl_2 `pseq` klCons appl_2 (Types.Atom Types.Nil)
-                                                                                    !appl_4 <- kl_V1450h `pseq` (appl_3 `pseq` klCons kl_V1450h appl_3)
-                                                                                    appl_4 `pseq` klCons (Types.Atom (Types.UnboundSym "and")) appl_4
-                                       pat_cond_5 = do do let !aw_6 = Types.Atom (Types.UnboundSym "shen.f_error")
-                                                          applyWrapper aw_6 [ApplC (wrapNamed "shen.embed-and" kl_shen_embed_and)]
-                                    in case kl_V1450 of
-                                           !(kl_V1450@(Cons (!kl_V1450h)
-                                                            (Atom (Nil)))) -> pat_cond_0 kl_V1450 kl_V1450h
-                                           !(kl_V1450@(Cons (!kl_V1450h)
-                                                            (!kl_V1450t))) -> pat_cond_1 kl_V1450 kl_V1450h kl_V1450t
-                                           _ -> pat_cond_5
-
-kl_shen_err_condition :: Types.KLValue ->
-                         Types.KLContext Types.Env Types.KLValue
-kl_shen_err_condition (!kl_V1452) = do !appl_0 <- kl_V1452 `pseq` klCons kl_V1452 (Types.Atom Types.Nil)
-                                       !appl_1 <- appl_0 `pseq` klCons (Types.Atom (Types.UnboundSym "shen.f_error")) appl_0
-                                       !appl_2 <- appl_1 `pseq` klCons appl_1 (Types.Atom Types.Nil)
-                                       appl_2 `pseq` klCons (Atom (B True)) appl_2
-
-kl_shen_sys_error :: Types.KLValue ->
-                     Types.KLContext Types.Env Types.KLValue
-kl_shen_sys_error (!kl_V1454) = do let !aw_0 = Types.Atom (Types.UnboundSym "shen.app")
-                                   !appl_1 <- kl_V1454 `pseq` applyWrapper aw_0 [kl_V1454,
-                                                                                 Types.Atom (Types.Str ": unexpected argument\n"),
-                                                                                 Types.Atom (Types.UnboundSym "shen.a")]
-                                   !appl_2 <- appl_1 `pseq` cn (Types.Atom (Types.Str "system function ")) appl_1
-                                   appl_2 `pseq` simpleError appl_2
-
-expr1 :: Types.KLContext Types.Env Types.KLValue
-expr1 = do (do return (Types.Atom (Types.Str "Copyright (c) 2015, Mark Tarver\n\nAll rights reserved.\n\nRedistribution and use in source and binary forms, with or without\nmodification, are permitted provided that the following conditions are met:\n1. Redistributions of source code must retain the above copyright\n   notice, this list of conditions and the following disclaimer.\n2. Redistributions in binary form must reproduce the above copyright\n   notice, this list of conditions and the following disclaimer in the\n   documentation and/or other materials provided with the distribution.\n3. The name of Mark Tarver may not be used to endorse or promote products\n   derived from this software without specific prior written permission.\n\nTHIS SOFTWARE IS PROVIDED BY Mark Tarver ''AS IS'' AND ANY\nEXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED\nWARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE\nDISCLAIMED. IN NO EVENT SHALL Mark Tarver BE LIABLE FOR ANY\nDIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES\n(INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;\nLOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND\nON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT\n(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS\nSOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE."))) `catchError` (\(!kl_E) -> do return (Types.Atom (Types.Str "E")))
+{-# LANGUAGE BangPatterns #-}+{-# LANGUAGE OverloadedStrings #-}+{-# LANGUAGE Strict #-}+{-# LANGUAGE StrictData #-}+{-# LANGUAGE ViewPatterns #-}++module Backend.Core where++import Control.Monad.Except+import Control.Parallel+import Environment+import Core.Primitives as Primitives+import Backend.Utils+import Core.Types+import Core.Utils+import Wrap+import Backend.Toplevel++{-+Copyright (c) 2015, Mark Tarver+All rights reserved.++Redistribution and use in source and binary forms, with or without+modification, are permitted provided that the following conditions are met:++1. Redistributions of source code must retain the above copyright+   notice, this list of conditions and the following disclaimer.+2. Redistributions in binary form must reproduce the above copyright+   notice, this list of conditions and the following disclaimer in the+   documentation and/or other materials provided with the distribution.+3. The name of Mark Tarver may not be used to endorse or promote products+   derived from this software without specific prior written permission.++THIS SOFTWARE IS PROVIDED BY Mark Tarver ''AS IS'' AND ANY+EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED+WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE+DISCLAIMED. IN NO EVENT SHALL Mark Tarver BE LIABLE FOR ANY+DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES+(INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;+LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND+ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT+(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS+SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.+-}++kl_shen_RBkl :: Core.Types.KLValue ->+                Core.Types.KLValue ->+                Core.Types.KLContext Core.Types.Env Core.Types.KLValue+kl_shen_RBkl (!kl_V1193) (!kl_V1194) = do let !appl_0 = ApplC (Func "lambda" (Context (\(!kl_X) -> do kl_X `pseq` kl_shen_LBdefineRB kl_X)))+                                          !appl_1 <- kl_V1193 `pseq` (kl_V1194 `pseq` klCons kl_V1193 kl_V1194)+                                          let !appl_2 = ApplC (Func "lambda" (Context (\(!kl_X) -> do kl_V1193 `pseq` (kl_X `pseq` kl_shen_syntax_error kl_V1193 kl_X))))+                                          let !aw_3 = Core.Types.Atom (Core.Types.UnboundSym "compile")+                                          appl_0 `pseq` (appl_1 `pseq` (appl_2 `pseq` applyWrapper aw_3 [appl_0,+                                                                                                         appl_1,+                                                                                                         appl_2]))++kl_shen_syntax_error :: Core.Types.KLValue ->+                        Core.Types.KLValue ->+                        Core.Types.KLContext Core.Types.Env Core.Types.KLValue+kl_shen_syntax_error (!kl_V1201) (!kl_V1202) = do let pat_cond_0 kl_V1202 kl_V1202h kl_V1202t = do let !aw_1 = Core.Types.Atom (Core.Types.UnboundSym "shen.next-50")+                                                                                                   !appl_2 <- kl_V1202h `pseq` applyWrapper aw_1 [Core.Types.Atom (Core.Types.N (Core.Types.KI 50)),+                                                                                                                                                  kl_V1202h]+                                                                                                   let !aw_3 = Core.Types.Atom (Core.Types.UnboundSym "shen.app")+                                                                                                   !appl_4 <- appl_2 `pseq` applyWrapper aw_3 [appl_2,+                                                                                                                                               Core.Types.Atom (Core.Types.Str "\n"),+                                                                                                                                               Core.Types.Atom (Core.Types.UnboundSym "shen.a")]+                                                                                                   !appl_5 <- appl_4 `pseq` cn (Core.Types.Atom (Core.Types.Str " here:\n\n ")) appl_4+                                                                                                   let !aw_6 = Core.Types.Atom (Core.Types.UnboundSym "shen.app")+                                                                                                   !appl_7 <- kl_V1201 `pseq` (appl_5 `pseq` applyWrapper aw_6 [kl_V1201,+                                                                                                                                                                appl_5,+                                                                                                                                                                Core.Types.Atom (Core.Types.UnboundSym "shen.a")])+                                                                                                   !appl_8 <- appl_7 `pseq` cn (Core.Types.Atom (Core.Types.Str "syntax error in ")) appl_7+                                                                                                   appl_8 `pseq` simpleError appl_8+                                                      pat_cond_9 = do do let !aw_10 = Core.Types.Atom (Core.Types.UnboundSym "shen.app")+                                                                         !appl_11 <- kl_V1201 `pseq` applyWrapper aw_10 [kl_V1201,+                                                                                                                         Core.Types.Atom (Core.Types.Str "\n"),+                                                                                                                         Core.Types.Atom (Core.Types.UnboundSym "shen.a")]+                                                                         !appl_12 <- appl_11 `pseq` cn (Core.Types.Atom (Core.Types.Str "syntax error in ")) appl_11+                                                                         appl_12 `pseq` simpleError appl_12+                                                   in case kl_V1202 of+                                                          !(kl_V1202@(Cons (!kl_V1202h)+                                                                           (!kl_V1202t))) -> pat_cond_0 kl_V1202 kl_V1202h kl_V1202t+                                                          _ -> pat_cond_9++kl_shen_LBdefineRB :: Core.Types.KLValue ->+                      Core.Types.KLContext Core.Types.Env Core.Types.KLValue+kl_shen_LBdefineRB (!kl_V1204) = do let !appl_0 = ApplC (Func "lambda" (Context (\(!kl_YaccParse) -> do let !aw_1 = Core.Types.Atom (Core.Types.UnboundSym "fail")+                                                                                                        !appl_2 <- applyWrapper aw_1 []+                                                                                                        !kl_if_3 <- kl_YaccParse `pseq` (appl_2 `pseq` eq kl_YaccParse appl_2)+                                                                                                        case kl_if_3 of+                                                                                                            Atom (B (True)) -> do let !appl_4 = ApplC (Func "lambda" (Context (\(!kl_Parse_shen_LBnameRB) -> do let !aw_5 = Core.Types.Atom (Core.Types.UnboundSym "fail")+                                                                                                                                                                                                                !appl_6 <- applyWrapper aw_5 []+                                                                                                                                                                                                                !appl_7 <- appl_6 `pseq` (kl_Parse_shen_LBnameRB `pseq` eq appl_6 kl_Parse_shen_LBnameRB)+                                                                                                                                                                                                                let !aw_8 = Core.Types.Atom (Core.Types.UnboundSym "not")+                                                                                                                                                                                                                !kl_if_9 <- appl_7 `pseq` applyWrapper aw_8 [appl_7]+                                                                                                                                                                                                                case kl_if_9 of+                                                                                                                                                                                                                    Atom (B (True)) -> do let !appl_10 = ApplC (Func "lambda" (Context (\(!kl_Parse_shen_LBrulesRB) -> do let !aw_11 = Core.Types.Atom (Core.Types.UnboundSym "fail")+                                                                                                                                                                                                                                                                                                                          !appl_12 <- applyWrapper aw_11 []+                                                                                                                                                                                                                                                                                                                          !appl_13 <- appl_12 `pseq` (kl_Parse_shen_LBrulesRB `pseq` eq appl_12 kl_Parse_shen_LBrulesRB)+                                                                                                                                                                                                                                                                                                                          let !aw_14 = Core.Types.Atom (Core.Types.UnboundSym "not")+                                                                                                                                                                                                                                                                                                                          !kl_if_15 <- appl_13 `pseq` applyWrapper aw_14 [appl_13]+                                                                                                                                                                                                                                                                                                                          case kl_if_15 of+                                                                                                                                                                                                                                                                                                                              Atom (B (True)) -> do !appl_16 <- kl_Parse_shen_LBrulesRB `pseq` hd kl_Parse_shen_LBrulesRB+                                                                                                                                                                                                                                                                                                                                                    let !aw_17 = Core.Types.Atom (Core.Types.UnboundSym "shen.hdtl")+                                                                                                                                                                                                                                                                                                                                                    !appl_18 <- kl_Parse_shen_LBnameRB `pseq` applyWrapper aw_17 [kl_Parse_shen_LBnameRB]+                                                                                                                                                                                                                                                                                                                                                    let !aw_19 = Core.Types.Atom (Core.Types.UnboundSym "shen.hdtl")+                                                                                                                                                                                                                                                                                                                                                    !appl_20 <- kl_Parse_shen_LBrulesRB `pseq` applyWrapper aw_19 [kl_Parse_shen_LBrulesRB]+                                                                                                                                                                                                                                                                                                                                                    !appl_21 <- appl_18 `pseq` (appl_20 `pseq` kl_shen_compile_to_machine_code appl_18 appl_20)+                                                                                                                                                                                                                                                                                                                                                    let !aw_22 = Core.Types.Atom (Core.Types.UnboundSym "shen.pair")+                                                                                                                                                                                                                                                                                                                                                    appl_16 `pseq` (appl_21 `pseq` applyWrapper aw_22 [appl_16,+                                                                                                                                                                                                                                                                                                                                                                                                       appl_21])+                                                                                                                                                                                                                                                                                                                              Atom (B (False)) -> do do let !aw_23 = Core.Types.Atom (Core.Types.UnboundSym "fail")+                                                                                                                                                                                                                                                                                                                                                        applyWrapper aw_23 []+                                                                                                                                                                                                                                                                                                                              _ -> throwError "if: expected boolean")))+                                                                                                                                                                                                                                          !appl_24 <- kl_Parse_shen_LBnameRB `pseq` kl_shen_LBrulesRB kl_Parse_shen_LBnameRB+                                                                                                                                                                                                                                          appl_24 `pseq` applyWrapper appl_10 [appl_24]+                                                                                                                                                                                                                    Atom (B (False)) -> do do let !aw_25 = Core.Types.Atom (Core.Types.UnboundSym "fail")+                                                                                                                                                                                                                                              applyWrapper aw_25 []+                                                                                                                                                                                                                    _ -> throwError "if: expected boolean")))+                                                                                                                                  !appl_26 <- kl_V1204 `pseq` kl_shen_LBnameRB kl_V1204+                                                                                                                                  appl_26 `pseq` applyWrapper appl_4 [appl_26]+                                                                                                            Atom (B (False)) -> do do return kl_YaccParse+                                                                                                            _ -> throwError "if: expected boolean")))+                                    let !appl_27 = ApplC (Func "lambda" (Context (\(!kl_Parse_shen_LBnameRB) -> do let !aw_28 = Core.Types.Atom (Core.Types.UnboundSym "fail")+                                                                                                                   !appl_29 <- applyWrapper aw_28 []+                                                                                                                   !appl_30 <- appl_29 `pseq` (kl_Parse_shen_LBnameRB `pseq` eq appl_29 kl_Parse_shen_LBnameRB)+                                                                                                                   let !aw_31 = Core.Types.Atom (Core.Types.UnboundSym "not")+                                                                                                                   !kl_if_32 <- appl_30 `pseq` applyWrapper aw_31 [appl_30]+                                                                                                                   case kl_if_32 of+                                                                                                                       Atom (B (True)) -> do let !appl_33 = ApplC (Func "lambda" (Context (\(!kl_Parse_shen_LBsignatureRB) -> do let !aw_34 = Core.Types.Atom (Core.Types.UnboundSym "fail")+                                                                                                                                                                                                                                 !appl_35 <- applyWrapper aw_34 []+                                                                                                                                                                                                                                 !appl_36 <- appl_35 `pseq` (kl_Parse_shen_LBsignatureRB `pseq` eq appl_35 kl_Parse_shen_LBsignatureRB)+                                                                                                                                                                                                                                 let !aw_37 = Core.Types.Atom (Core.Types.UnboundSym "not")+                                                                                                                                                                                                                                 !kl_if_38 <- appl_36 `pseq` applyWrapper aw_37 [appl_36]+                                                                                                                                                                                                                                 case kl_if_38 of+                                                                                                                                                                                                                                     Atom (B (True)) -> do let !appl_39 = ApplC (Func "lambda" (Context (\(!kl_Parse_shen_LBrulesRB) -> do let !aw_40 = Core.Types.Atom (Core.Types.UnboundSym "fail")+                                                                                                                                                                                                                                                                                                                                           !appl_41 <- applyWrapper aw_40 []+                                                                                                                                                                                                                                                                                                                                           !appl_42 <- appl_41 `pseq` (kl_Parse_shen_LBrulesRB `pseq` eq appl_41 kl_Parse_shen_LBrulesRB)+                                                                                                                                                                                                                                                                                                                                           let !aw_43 = Core.Types.Atom (Core.Types.UnboundSym "not")+                                                                                                                                                                                                                                                                                                                                           !kl_if_44 <- appl_42 `pseq` applyWrapper aw_43 [appl_42]+                                                                                                                                                                                                                                                                                                                                           case kl_if_44 of+                                                                                                                                                                                                                                                                                                                                               Atom (B (True)) -> do !appl_45 <- kl_Parse_shen_LBrulesRB `pseq` hd kl_Parse_shen_LBrulesRB+                                                                                                                                                                                                                                                                                                                                                                     let !aw_46 = Core.Types.Atom (Core.Types.UnboundSym "shen.hdtl")+                                                                                                                                                                                                                                                                                                                                                                     !appl_47 <- kl_Parse_shen_LBnameRB `pseq` applyWrapper aw_46 [kl_Parse_shen_LBnameRB]+                                                                                                                                                                                                                                                                                                                                                                     let !aw_48 = Core.Types.Atom (Core.Types.UnboundSym "shen.hdtl")+                                                                                                                                                                                                                                                                                                                                                                     !appl_49 <- kl_Parse_shen_LBrulesRB `pseq` applyWrapper aw_48 [kl_Parse_shen_LBrulesRB]+                                                                                                                                                                                                                                                                                                                                                                     !appl_50 <- appl_47 `pseq` (appl_49 `pseq` kl_shen_compile_to_machine_code appl_47 appl_49)+                                                                                                                                                                                                                                                                                                                                                                     let !aw_51 = Core.Types.Atom (Core.Types.UnboundSym "shen.pair")+                                                                                                                                                                                                                                                                                                                                                                     appl_45 `pseq` (appl_50 `pseq` applyWrapper aw_51 [appl_45,+                                                                                                                                                                                                                                                                                                                                                                                                                        appl_50])+                                                                                                                                                                                                                                                                                                                                               Atom (B (False)) -> do do let !aw_52 = Core.Types.Atom (Core.Types.UnboundSym "fail")+                                                                                                                                                                                                                                                                                                                                                                         applyWrapper aw_52 []+                                                                                                                                                                                                                                                                                                                                               _ -> throwError "if: expected boolean")))+                                                                                                                                                                                                                                                           !appl_53 <- kl_Parse_shen_LBsignatureRB `pseq` kl_shen_LBrulesRB kl_Parse_shen_LBsignatureRB+                                                                                                                                                                                                                                                           appl_53 `pseq` applyWrapper appl_39 [appl_53]+                                                                                                                                                                                                                                     Atom (B (False)) -> do do let !aw_54 = Core.Types.Atom (Core.Types.UnboundSym "fail")+                                                                                                                                                                                                                                                               applyWrapper aw_54 []+                                                                                                                                                                                                                                     _ -> throwError "if: expected boolean")))+                                                                                                                                             !appl_55 <- kl_Parse_shen_LBnameRB `pseq` kl_shen_LBsignatureRB kl_Parse_shen_LBnameRB+                                                                                                                                             appl_55 `pseq` applyWrapper appl_33 [appl_55]+                                                                                                                       Atom (B (False)) -> do do let !aw_56 = Core.Types.Atom (Core.Types.UnboundSym "fail")+                                                                                                                                                 applyWrapper aw_56 []+                                                                                                                       _ -> throwError "if: expected boolean")))+                                    !appl_57 <- kl_V1204 `pseq` kl_shen_LBnameRB kl_V1204+                                    !appl_58 <- appl_57 `pseq` applyWrapper appl_27 [appl_57]+                                    appl_58 `pseq` applyWrapper appl_0 [appl_58]++kl_shen_LBnameRB :: Core.Types.KLValue ->+                    Core.Types.KLContext Core.Types.Env Core.Types.KLValue+kl_shen_LBnameRB (!kl_V1206) = do !appl_0 <- kl_V1206 `pseq` hd kl_V1206+                                  !kl_if_1 <- appl_0 `pseq` consP appl_0+                                  case kl_if_1 of+                                      Atom (B (True)) -> do let !appl_2 = ApplC (Func "lambda" (Context (\(!kl_Parse_X) -> do !appl_3 <- kl_V1206 `pseq` hd kl_V1206+                                                                                                                              !appl_4 <- appl_3 `pseq` tl appl_3+                                                                                                                              let !aw_5 = Core.Types.Atom (Core.Types.UnboundSym "shen.hdtl")+                                                                                                                              !appl_6 <- kl_V1206 `pseq` applyWrapper aw_5 [kl_V1206]+                                                                                                                              let !aw_7 = Core.Types.Atom (Core.Types.UnboundSym "shen.pair")+                                                                                                                              !appl_8 <- appl_4 `pseq` (appl_6 `pseq` applyWrapper aw_7 [appl_4,+                                                                                                                                                                                         appl_6])+                                                                                                                              !appl_9 <- appl_8 `pseq` hd appl_8+                                                                                                                              let !aw_10 = Core.Types.Atom (Core.Types.UnboundSym "symbol?")+                                                                                                                              !kl_if_11 <- kl_Parse_X `pseq` applyWrapper aw_10 [kl_Parse_X]+                                                                                                                              !kl_if_12 <- case kl_if_11 of+                                                                                                                                               Atom (B (True)) -> do !appl_13 <- kl_Parse_X `pseq` kl_shen_sysfuncP kl_Parse_X+                                                                                                                                                                     let !aw_14 = Core.Types.Atom (Core.Types.UnboundSym "not")+                                                                                                                                                                     !kl_if_15 <- appl_13 `pseq` applyWrapper aw_14 [appl_13]+                                                                                                                                                                     case kl_if_15 of+                                                                                                                                                                         Atom (B (True)) -> do return (Atom (B True))+                                                                                                                                                                         Atom (B (False)) -> do do return (Atom (B False))+                                                                                                                                                                         _ -> throwError "if: expected boolean"+                                                                                                                                               Atom (B (False)) -> do do return (Atom (B False))+                                                                                                                                               _ -> throwError "if: expected boolean"+                                                                                                                              !appl_16 <- case kl_if_12 of+                                                                                                                                              Atom (B (True)) -> do return kl_Parse_X+                                                                                                                                              Atom (B (False)) -> do do let !aw_17 = Core.Types.Atom (Core.Types.UnboundSym "shen.app")+                                                                                                                                                                        !appl_18 <- kl_Parse_X `pseq` applyWrapper aw_17 [kl_Parse_X,+                                                                                                                                                                                                                          Core.Types.Atom (Core.Types.Str " is not a legitimate function name.\n"),+                                                                                                                                                                                                                          Core.Types.Atom (Core.Types.UnboundSym "shen.a")]+                                                                                                                                                                        appl_18 `pseq` simpleError appl_18+                                                                                                                                              _ -> throwError "if: expected boolean"+                                                                                                                              let !aw_19 = Core.Types.Atom (Core.Types.UnboundSym "shen.pair")+                                                                                                                              appl_9 `pseq` (appl_16 `pseq` applyWrapper aw_19 [appl_9,+                                                                                                                                                                                appl_16]))))+                                                            !appl_20 <- kl_V1206 `pseq` hd kl_V1206+                                                            !appl_21 <- appl_20 `pseq` hd appl_20+                                                            appl_21 `pseq` applyWrapper appl_2 [appl_21]+                                      Atom (B (False)) -> do do let !aw_22 = Core.Types.Atom (Core.Types.UnboundSym "fail")+                                                                applyWrapper aw_22 []+                                      _ -> throwError "if: expected boolean"++kl_shen_sysfuncP :: Core.Types.KLValue ->+                    Core.Types.KLContext Core.Types.Env Core.Types.KLValue+kl_shen_sysfuncP (!kl_V1208) = do !appl_0 <- intern (Core.Types.Atom (Core.Types.Str "shen"))+                                  !appl_1 <- value (Core.Types.Atom (Core.Types.UnboundSym "*property-vector*"))+                                  let !aw_2 = Core.Types.Atom (Core.Types.UnboundSym "get")+                                  !appl_3 <- appl_0 `pseq` (appl_1 `pseq` applyWrapper aw_2 [appl_0,+                                                                                             Core.Types.Atom (Core.Types.UnboundSym "shen.external-symbols"),+                                                                                             appl_1])+                                  let !aw_4 = Core.Types.Atom (Core.Types.UnboundSym "element?")+                                  kl_V1208 `pseq` (appl_3 `pseq` applyWrapper aw_4 [kl_V1208,+                                                                                    appl_3])++kl_shen_LBsignatureRB :: Core.Types.KLValue ->+                         Core.Types.KLContext Core.Types.Env Core.Types.KLValue+kl_shen_LBsignatureRB (!kl_V1210) = do !appl_0 <- kl_V1210 `pseq` hd kl_V1210+                                       !kl_if_1 <- appl_0 `pseq` consP appl_0+                                       !kl_if_2 <- case kl_if_1 of+                                                       Atom (B (True)) -> do !appl_3 <- kl_V1210 `pseq` hd kl_V1210+                                                                             !appl_4 <- appl_3 `pseq` hd appl_3+                                                                             !kl_if_5 <- appl_4 `pseq` eq (Core.Types.Atom (Core.Types.UnboundSym "{")) appl_4+                                                                             case kl_if_5 of+                                                                                 Atom (B (True)) -> do return (Atom (B True))+                                                                                 Atom (B (False)) -> do do return (Atom (B False))+                                                                                 _ -> throwError "if: expected boolean"+                                                       Atom (B (False)) -> do do return (Atom (B False))+                                                       _ -> throwError "if: expected boolean"+                                       case kl_if_2 of+                                           Atom (B (True)) -> do let !appl_6 = ApplC (Func "lambda" (Context (\(!kl_Parse_shen_LBsignature_helpRB) -> do let !aw_7 = Core.Types.Atom (Core.Types.UnboundSym "fail")+                                                                                                                                                         !appl_8 <- applyWrapper aw_7 []+                                                                                                                                                         !appl_9 <- appl_8 `pseq` (kl_Parse_shen_LBsignature_helpRB `pseq` eq appl_8 kl_Parse_shen_LBsignature_helpRB)+                                                                                                                                                         let !aw_10 = Core.Types.Atom (Core.Types.UnboundSym "not")+                                                                                                                                                         !kl_if_11 <- appl_9 `pseq` applyWrapper aw_10 [appl_9]+                                                                                                                                                         case kl_if_11 of+                                                                                                                                                             Atom (B (True)) -> do !appl_12 <- kl_Parse_shen_LBsignature_helpRB `pseq` hd kl_Parse_shen_LBsignature_helpRB+                                                                                                                                                                                   !kl_if_13 <- appl_12 `pseq` consP appl_12+                                                                                                                                                                                   !kl_if_14 <- case kl_if_13 of+                                                                                                                                                                                                    Atom (B (True)) -> do !appl_15 <- kl_Parse_shen_LBsignature_helpRB `pseq` hd kl_Parse_shen_LBsignature_helpRB+                                                                                                                                                                                                                          !appl_16 <- appl_15 `pseq` hd appl_15+                                                                                                                                                                                                                          !kl_if_17 <- appl_16 `pseq` eq (Core.Types.Atom (Core.Types.UnboundSym "}")) appl_16+                                                                                                                                                                                                                          case kl_if_17 of+                                                                                                                                                                                                                              Atom (B (True)) -> do return (Atom (B True))+                                                                                                                                                                                                                              Atom (B (False)) -> do do return (Atom (B False))+                                                                                                                                                                                                                              _ -> throwError "if: expected boolean"+                                                                                                                                                                                                    Atom (B (False)) -> do do return (Atom (B False))+                                                                                                                                                                                                    _ -> throwError "if: expected boolean"+                                                                                                                                                                                   case kl_if_14 of+                                                                                                                                                                                       Atom (B (True)) -> do !appl_18 <- kl_Parse_shen_LBsignature_helpRB `pseq` hd kl_Parse_shen_LBsignature_helpRB+                                                                                                                                                                                                             !appl_19 <- appl_18 `pseq` tl appl_18+                                                                                                                                                                                                             let !aw_20 = Core.Types.Atom (Core.Types.UnboundSym "shen.hdtl")+                                                                                                                                                                                                             !appl_21 <- kl_Parse_shen_LBsignature_helpRB `pseq` applyWrapper aw_20 [kl_Parse_shen_LBsignature_helpRB]+                                                                                                                                                                                                             let !aw_22 = Core.Types.Atom (Core.Types.UnboundSym "shen.pair")+                                                                                                                                                                                                             !appl_23 <- appl_19 `pseq` (appl_21 `pseq` applyWrapper aw_22 [appl_19,+                                                                                                                                                                                                                                                                            appl_21])+                                                                                                                                                                                                             !appl_24 <- appl_23 `pseq` hd appl_23+                                                                                                                                                                                                             let !aw_25 = Core.Types.Atom (Core.Types.UnboundSym "shen.hdtl")+                                                                                                                                                                                                             !appl_26 <- kl_Parse_shen_LBsignature_helpRB `pseq` applyWrapper aw_25 [kl_Parse_shen_LBsignature_helpRB]+                                                                                                                                                                                                             !appl_27 <- appl_26 `pseq` kl_shen_curry_type appl_26+                                                                                                                                                                                                             let !aw_28 = Core.Types.Atom (Core.Types.UnboundSym "shen.demodulate")+                                                                                                                                                                                                             !appl_29 <- appl_27 `pseq` applyWrapper aw_28 [appl_27]+                                                                                                                                                                                                             let !aw_30 = Core.Types.Atom (Core.Types.UnboundSym "shen.pair")+                                                                                                                                                                                                             appl_24 `pseq` (appl_29 `pseq` applyWrapper aw_30 [appl_24,+                                                                                                                                                                                                                                                                appl_29])+                                                                                                                                                                                       Atom (B (False)) -> do do let !aw_31 = Core.Types.Atom (Core.Types.UnboundSym "fail")+                                                                                                                                                                                                                 applyWrapper aw_31 []+                                                                                                                                                                                       _ -> throwError "if: expected boolean"+                                                                                                                                                             Atom (B (False)) -> do do let !aw_32 = Core.Types.Atom (Core.Types.UnboundSym "fail")+                                                                                                                                                                                       applyWrapper aw_32 []+                                                                                                                                                             _ -> throwError "if: expected boolean")))+                                                                 !appl_33 <- kl_V1210 `pseq` hd kl_V1210+                                                                 !appl_34 <- appl_33 `pseq` tl appl_33+                                                                 let !aw_35 = Core.Types.Atom (Core.Types.UnboundSym "shen.hdtl")+                                                                 !appl_36 <- kl_V1210 `pseq` applyWrapper aw_35 [kl_V1210]+                                                                 let !aw_37 = Core.Types.Atom (Core.Types.UnboundSym "shen.pair")+                                                                 !appl_38 <- appl_34 `pseq` (appl_36 `pseq` applyWrapper aw_37 [appl_34,+                                                                                                                                appl_36])+                                                                 !appl_39 <- appl_38 `pseq` kl_shen_LBsignature_helpRB appl_38+                                                                 appl_39 `pseq` applyWrapper appl_6 [appl_39]+                                           Atom (B (False)) -> do do let !aw_40 = Core.Types.Atom (Core.Types.UnboundSym "fail")+                                                                     applyWrapper aw_40 []+                                           _ -> throwError "if: expected boolean"++kl_shen_curry_type :: Core.Types.KLValue ->+                      Core.Types.KLContext Core.Types.Env Core.Types.KLValue+kl_shen_curry_type (!kl_V1212) = do let pat_cond_0 kl_V1212 kl_V1212h kl_V1212t kl_V1212tt kl_V1212tth kl_V1212ttt kl_V1212tttt = do let !appl_1 = Atom Nil+                                                                                                                                     !appl_2 <- kl_V1212tt `pseq` (appl_1 `pseq` klCons kl_V1212tt appl_1)+                                                                                                                                     !appl_3 <- appl_2 `pseq` klCons (Core.Types.Atom (Core.Types.UnboundSym "-->")) appl_2+                                                                                                                                     !appl_4 <- kl_V1212h `pseq` (appl_3 `pseq` klCons kl_V1212h appl_3)+                                                                                                                                     appl_4 `pseq` kl_shen_curry_type appl_4+                                        pat_cond_5 kl_V1212 kl_V1212h kl_V1212t kl_V1212tt kl_V1212tth kl_V1212ttt kl_V1212tttt = do let !appl_6 = Atom Nil+                                                                                                                                     !appl_7 <- kl_V1212tt `pseq` (appl_6 `pseq` klCons kl_V1212tt appl_6)+                                                                                                                                     !appl_8 <- appl_7 `pseq` klCons (ApplC (wrapNamed "*" multiply)) appl_7+                                                                                                                                     !appl_9 <- kl_V1212h `pseq` (appl_8 `pseq` klCons kl_V1212h appl_8)+                                                                                                                                     appl_9 `pseq` kl_shen_curry_type appl_9+                                        pat_cond_10 kl_V1212 kl_V1212h kl_V1212t = do let !appl_11 = ApplC (Func "lambda" (Context (\(!kl_Z) -> do kl_Z `pseq` kl_shen_curry_type kl_Z)))+                                                                                      let !aw_12 = Core.Types.Atom (Core.Types.UnboundSym "map")+                                                                                      appl_11 `pseq` (kl_V1212 `pseq` applyWrapper aw_12 [appl_11,+                                                                                                                                          kl_V1212])+                                        pat_cond_13 = do do return kl_V1212+                                     in case kl_V1212 of+                                            !(kl_V1212@(Cons (!kl_V1212h)+                                                             (!(kl_V1212t@(Cons (Atom (UnboundSym "-->"))+                                                                                (!(kl_V1212tt@(Cons (!kl_V1212tth)+                                                                                                    (!(kl_V1212ttt@(Cons (Atom (UnboundSym "-->"))+                                                                                                                         (!kl_V1212tttt)))))))))))) -> pat_cond_0 kl_V1212 kl_V1212h kl_V1212t kl_V1212tt kl_V1212tth kl_V1212ttt kl_V1212tttt+                                            !(kl_V1212@(Cons (!kl_V1212h)+                                                             (!(kl_V1212t@(Cons (Atom (UnboundSym "-->"))+                                                                                (!(kl_V1212tt@(Cons (!kl_V1212tth)+                                                                                                    (!(kl_V1212ttt@(Cons (ApplC (PL "-->"+                                                                                                                                    _))+                                                                                                                         (!kl_V1212tttt)))))))))))) -> pat_cond_0 kl_V1212 kl_V1212h kl_V1212t kl_V1212tt kl_V1212tth kl_V1212ttt kl_V1212tttt+                                            !(kl_V1212@(Cons (!kl_V1212h)+                                                             (!(kl_V1212t@(Cons (Atom (UnboundSym "-->"))+                                                                                (!(kl_V1212tt@(Cons (!kl_V1212tth)+                                                                                                    (!(kl_V1212ttt@(Cons (ApplC (Func "-->"+                                                                                                                                      _))+                                                                                                                         (!kl_V1212tttt)))))))))))) -> pat_cond_0 kl_V1212 kl_V1212h kl_V1212t kl_V1212tt kl_V1212tth kl_V1212ttt kl_V1212tttt+                                            !(kl_V1212@(Cons (!kl_V1212h)+                                                             (!(kl_V1212t@(Cons (ApplC (PL "-->" _))+                                                                                (!(kl_V1212tt@(Cons (!kl_V1212tth)+                                                                                                    (!(kl_V1212ttt@(Cons (Atom (UnboundSym "-->"))+                                                                                                                         (!kl_V1212tttt)))))))))))) -> pat_cond_0 kl_V1212 kl_V1212h kl_V1212t kl_V1212tt kl_V1212tth kl_V1212ttt kl_V1212tttt+                                            !(kl_V1212@(Cons (!kl_V1212h)+                                                             (!(kl_V1212t@(Cons (ApplC (PL "-->" _))+                                                                                (!(kl_V1212tt@(Cons (!kl_V1212tth)+                                                                                                    (!(kl_V1212ttt@(Cons (ApplC (PL "-->"+                                                                                                                                    _))+                                                                                                                         (!kl_V1212tttt)))))))))))) -> pat_cond_0 kl_V1212 kl_V1212h kl_V1212t kl_V1212tt kl_V1212tth kl_V1212ttt kl_V1212tttt+                                            !(kl_V1212@(Cons (!kl_V1212h)+                                                             (!(kl_V1212t@(Cons (ApplC (PL "-->" _))+                                                                                (!(kl_V1212tt@(Cons (!kl_V1212tth)+                                                                                                    (!(kl_V1212ttt@(Cons (ApplC (Func "-->"+                                                                                                                                      _))+                                                                                                                         (!kl_V1212tttt)))))))))))) -> pat_cond_0 kl_V1212 kl_V1212h kl_V1212t kl_V1212tt kl_V1212tth kl_V1212ttt kl_V1212tttt+                                            !(kl_V1212@(Cons (!kl_V1212h)+                                                             (!(kl_V1212t@(Cons (ApplC (Func "-->"+                                                                                             _))+                                                                                (!(kl_V1212tt@(Cons (!kl_V1212tth)+                                                                                                    (!(kl_V1212ttt@(Cons (Atom (UnboundSym "-->"))+                                                                                                                         (!kl_V1212tttt)))))))))))) -> pat_cond_0 kl_V1212 kl_V1212h kl_V1212t kl_V1212tt kl_V1212tth kl_V1212ttt kl_V1212tttt+                                            !(kl_V1212@(Cons (!kl_V1212h)+                                                             (!(kl_V1212t@(Cons (ApplC (Func "-->"+                                                                                             _))+                                                                                (!(kl_V1212tt@(Cons (!kl_V1212tth)+                                                                                                    (!(kl_V1212ttt@(Cons (ApplC (PL "-->"+                                                                                                                                    _))+                                                                                                                         (!kl_V1212tttt)))))))))))) -> pat_cond_0 kl_V1212 kl_V1212h kl_V1212t kl_V1212tt kl_V1212tth kl_V1212ttt kl_V1212tttt+                                            !(kl_V1212@(Cons (!kl_V1212h)+                                                             (!(kl_V1212t@(Cons (ApplC (Func "-->"+                                                                                             _))+                                                                                (!(kl_V1212tt@(Cons (!kl_V1212tth)+                                                                                                    (!(kl_V1212ttt@(Cons (ApplC (Func "-->"+                                                                                                                                      _))+                                                                                                                         (!kl_V1212tttt)))))))))))) -> pat_cond_0 kl_V1212 kl_V1212h kl_V1212t kl_V1212tt kl_V1212tth kl_V1212ttt kl_V1212tttt+                                            !(kl_V1212@(Cons (!kl_V1212h)+                                                             (!(kl_V1212t@(Cons (Atom (UnboundSym "*"))+                                                                                (!(kl_V1212tt@(Cons (!kl_V1212tth)+                                                                                                    (!(kl_V1212ttt@(Cons (Atom (UnboundSym "*"))+                                                                                                                         (!kl_V1212tttt)))))))))))) -> pat_cond_5 kl_V1212 kl_V1212h kl_V1212t kl_V1212tt kl_V1212tth kl_V1212ttt kl_V1212tttt+                                            !(kl_V1212@(Cons (!kl_V1212h)+                                                             (!(kl_V1212t@(Cons (Atom (UnboundSym "*"))+                                                                                (!(kl_V1212tt@(Cons (!kl_V1212tth)+                                                                                                    (!(kl_V1212ttt@(Cons (ApplC (PL "*"+                                                                                                                                    _))+                                                                                                                         (!kl_V1212tttt)))))))))))) -> pat_cond_5 kl_V1212 kl_V1212h kl_V1212t kl_V1212tt kl_V1212tth kl_V1212ttt kl_V1212tttt+                                            !(kl_V1212@(Cons (!kl_V1212h)+                                                             (!(kl_V1212t@(Cons (Atom (UnboundSym "*"))+                                                                                (!(kl_V1212tt@(Cons (!kl_V1212tth)+                                                                                                    (!(kl_V1212ttt@(Cons (ApplC (Func "*"+                                                                                                                                      _))+                                                                                                                         (!kl_V1212tttt)))))))))))) -> pat_cond_5 kl_V1212 kl_V1212h kl_V1212t kl_V1212tt kl_V1212tth kl_V1212ttt kl_V1212tttt+                                            !(kl_V1212@(Cons (!kl_V1212h)+                                                             (!(kl_V1212t@(Cons (ApplC (PL "*" _))+                                                                                (!(kl_V1212tt@(Cons (!kl_V1212tth)+                                                                                                    (!(kl_V1212ttt@(Cons (Atom (UnboundSym "*"))+                                                                                                                         (!kl_V1212tttt)))))))))))) -> pat_cond_5 kl_V1212 kl_V1212h kl_V1212t kl_V1212tt kl_V1212tth kl_V1212ttt kl_V1212tttt+                                            !(kl_V1212@(Cons (!kl_V1212h)+                                                             (!(kl_V1212t@(Cons (ApplC (PL "*" _))+                                                                                (!(kl_V1212tt@(Cons (!kl_V1212tth)+                                                                                                    (!(kl_V1212ttt@(Cons (ApplC (PL "*"+                                                                                                                                    _))+                                                                                                                         (!kl_V1212tttt)))))))))))) -> pat_cond_5 kl_V1212 kl_V1212h kl_V1212t kl_V1212tt kl_V1212tth kl_V1212ttt kl_V1212tttt+                                            !(kl_V1212@(Cons (!kl_V1212h)+                                                             (!(kl_V1212t@(Cons (ApplC (PL "*" _))+                                                                                (!(kl_V1212tt@(Cons (!kl_V1212tth)+                                                                                                    (!(kl_V1212ttt@(Cons (ApplC (Func "*"+                                                                                                                                      _))+                                                                                                                         (!kl_V1212tttt)))))))))))) -> pat_cond_5 kl_V1212 kl_V1212h kl_V1212t kl_V1212tt kl_V1212tth kl_V1212ttt kl_V1212tttt+                                            !(kl_V1212@(Cons (!kl_V1212h)+                                                             (!(kl_V1212t@(Cons (ApplC (Func "*" _))+                                                                                (!(kl_V1212tt@(Cons (!kl_V1212tth)+                                                                                                    (!(kl_V1212ttt@(Cons (Atom (UnboundSym "*"))+                                                                                                                         (!kl_V1212tttt)))))))))))) -> pat_cond_5 kl_V1212 kl_V1212h kl_V1212t kl_V1212tt kl_V1212tth kl_V1212ttt kl_V1212tttt+                                            !(kl_V1212@(Cons (!kl_V1212h)+                                                             (!(kl_V1212t@(Cons (ApplC (Func "*" _))+                                                                                (!(kl_V1212tt@(Cons (!kl_V1212tth)+                                                                                                    (!(kl_V1212ttt@(Cons (ApplC (PL "*"+                                                                                                                                    _))+                                                                                                                         (!kl_V1212tttt)))))))))))) -> pat_cond_5 kl_V1212 kl_V1212h kl_V1212t kl_V1212tt kl_V1212tth kl_V1212ttt kl_V1212tttt+                                            !(kl_V1212@(Cons (!kl_V1212h)+                                                             (!(kl_V1212t@(Cons (ApplC (Func "*" _))+                                                                                (!(kl_V1212tt@(Cons (!kl_V1212tth)+                                                                                                    (!(kl_V1212ttt@(Cons (ApplC (Func "*"+                                                                                                                                      _))+                                                                                                                         (!kl_V1212tttt)))))))))))) -> pat_cond_5 kl_V1212 kl_V1212h kl_V1212t kl_V1212tt kl_V1212tth kl_V1212ttt kl_V1212tttt+                                            !(kl_V1212@(Cons (!kl_V1212h)+                                                             (!kl_V1212t))) -> pat_cond_10 kl_V1212 kl_V1212h kl_V1212t+                                            _ -> pat_cond_13++kl_shen_LBsignature_helpRB :: Core.Types.KLValue ->+                              Core.Types.KLContext Core.Types.Env Core.Types.KLValue+kl_shen_LBsignature_helpRB (!kl_V1214) = do let !appl_0 = ApplC (Func "lambda" (Context (\(!kl_YaccParse) -> do let !aw_1 = Core.Types.Atom (Core.Types.UnboundSym "fail")+                                                                                                                !appl_2 <- applyWrapper aw_1 []+                                                                                                                !kl_if_3 <- kl_YaccParse `pseq` (appl_2 `pseq` eq kl_YaccParse appl_2)+                                                                                                                case kl_if_3 of+                                                                                                                    Atom (B (True)) -> do let !appl_4 = ApplC (Func "lambda" (Context (\(!kl_Parse_LBeRB) -> do let !aw_5 = Core.Types.Atom (Core.Types.UnboundSym "fail")+                                                                                                                                                                                                                !appl_6 <- applyWrapper aw_5 []+                                                                                                                                                                                                                !appl_7 <- appl_6 `pseq` (kl_Parse_LBeRB `pseq` eq appl_6 kl_Parse_LBeRB)+                                                                                                                                                                                                                let !aw_8 = Core.Types.Atom (Core.Types.UnboundSym "not")+                                                                                                                                                                                                                !kl_if_9 <- appl_7 `pseq` applyWrapper aw_8 [appl_7]+                                                                                                                                                                                                                case kl_if_9 of+                                                                                                                                                                                                                    Atom (B (True)) -> do !appl_10 <- kl_Parse_LBeRB `pseq` hd kl_Parse_LBeRB+                                                                                                                                                                                                                                          let !appl_11 = Atom Nil+                                                                                                                                                                                                                                          let !aw_12 = Core.Types.Atom (Core.Types.UnboundSym "shen.pair")+                                                                                                                                                                                                                                          appl_10 `pseq` (appl_11 `pseq` applyWrapper aw_12 [appl_10,+                                                                                                                                                                                                                                                                                             appl_11])+                                                                                                                                                                                                                    Atom (B (False)) -> do do let !aw_13 = Core.Types.Atom (Core.Types.UnboundSym "fail")+                                                                                                                                                                                                                                              applyWrapper aw_13 []+                                                                                                                                                                                                                    _ -> throwError "if: expected boolean")))+                                                                                                                                          let !aw_14 = Core.Types.Atom (Core.Types.UnboundSym "<e>")+                                                                                                                                          !appl_15 <- kl_V1214 `pseq` applyWrapper aw_14 [kl_V1214]+                                                                                                                                          appl_15 `pseq` applyWrapper appl_4 [appl_15]+                                                                                                                    Atom (B (False)) -> do do return kl_YaccParse+                                                                                                                    _ -> throwError "if: expected boolean")))+                                            !appl_16 <- kl_V1214 `pseq` hd kl_V1214+                                            !kl_if_17 <- appl_16 `pseq` consP appl_16+                                            !appl_18 <- case kl_if_17 of+                                                            Atom (B (True)) -> do let !appl_19 = ApplC (Func "lambda" (Context (\(!kl_Parse_X) -> do let !appl_20 = ApplC (Func "lambda" (Context (\(!kl_Parse_shen_LBsignature_helpRB) -> do let !aw_21 = Core.Types.Atom (Core.Types.UnboundSym "fail")+                                                                                                                                                                                                                                              !appl_22 <- applyWrapper aw_21 []+                                                                                                                                                                                                                                              !appl_23 <- appl_22 `pseq` (kl_Parse_shen_LBsignature_helpRB `pseq` eq appl_22 kl_Parse_shen_LBsignature_helpRB)+                                                                                                                                                                                                                                              let !aw_24 = Core.Types.Atom (Core.Types.UnboundSym "not")+                                                                                                                                                                                                                                              !kl_if_25 <- appl_23 `pseq` applyWrapper aw_24 [appl_23]+                                                                                                                                                                                                                                              case kl_if_25 of+                                                                                                                                                                                                                                                  Atom (B (True)) -> do let !appl_26 = Atom Nil+                                                                                                                                                                                                                                                                        !appl_27 <- appl_26 `pseq` klCons (Core.Types.Atom (Core.Types.UnboundSym "}")) appl_26+                                                                                                                                                                                                                                                                        !appl_28 <- appl_27 `pseq` klCons (Core.Types.Atom (Core.Types.UnboundSym "{")) appl_27+                                                                                                                                                                                                                                                                        let !aw_29 = Core.Types.Atom (Core.Types.UnboundSym "element?")+                                                                                                                                                                                                                                                                        !appl_30 <- kl_Parse_X `pseq` (appl_28 `pseq` applyWrapper aw_29 [kl_Parse_X,+                                                                                                                                                                                                                                                                                                                                          appl_28])+                                                                                                                                                                                                                                                                        let !aw_31 = Core.Types.Atom (Core.Types.UnboundSym "not")+                                                                                                                                                                                                                                                                        !kl_if_32 <- appl_30 `pseq` applyWrapper aw_31 [appl_30]+                                                                                                                                                                                                                                                                        case kl_if_32 of+                                                                                                                                                                                                                                                                            Atom (B (True)) -> do !appl_33 <- kl_Parse_shen_LBsignature_helpRB `pseq` hd kl_Parse_shen_LBsignature_helpRB+                                                                                                                                                                                                                                                                                                  let !aw_34 = Core.Types.Atom (Core.Types.UnboundSym "shen.hdtl")+                                                                                                                                                                                                                                                                                                  !appl_35 <- kl_Parse_shen_LBsignature_helpRB `pseq` applyWrapper aw_34 [kl_Parse_shen_LBsignature_helpRB]+                                                                                                                                                                                                                                                                                                  !appl_36 <- kl_Parse_X `pseq` (appl_35 `pseq` klCons kl_Parse_X appl_35)+                                                                                                                                                                                                                                                                                                  let !aw_37 = Core.Types.Atom (Core.Types.UnboundSym "shen.pair")+                                                                                                                                                                                                                                                                                                  appl_33 `pseq` (appl_36 `pseq` applyWrapper aw_37 [appl_33,+                                                                                                                                                                                                                                                                                                                                                     appl_36])+                                                                                                                                                                                                                                                                            Atom (B (False)) -> do do let !aw_38 = Core.Types.Atom (Core.Types.UnboundSym "fail")+                                                                                                                                                                                                                                                                                                      applyWrapper aw_38 []+                                                                                                                                                                                                                                                                            _ -> throwError "if: expected boolean"+                                                                                                                                                                                                                                                  Atom (B (False)) -> do do let !aw_39 = Core.Types.Atom (Core.Types.UnboundSym "fail")+                                                                                                                                                                                                                                                                            applyWrapper aw_39 []+                                                                                                                                                                                                                                                  _ -> throwError "if: expected boolean")))+                                                                                                                                                     !appl_40 <- kl_V1214 `pseq` hd kl_V1214+                                                                                                                                                     !appl_41 <- appl_40 `pseq` tl appl_40+                                                                                                                                                     let !aw_42 = Core.Types.Atom (Core.Types.UnboundSym "shen.hdtl")+                                                                                                                                                     !appl_43 <- kl_V1214 `pseq` applyWrapper aw_42 [kl_V1214]+                                                                                                                                                     let !aw_44 = Core.Types.Atom (Core.Types.UnboundSym "shen.pair")+                                                                                                                                                     !appl_45 <- appl_41 `pseq` (appl_43 `pseq` applyWrapper aw_44 [appl_41,+                                                                                                                                                                                                                    appl_43])+                                                                                                                                                     !appl_46 <- appl_45 `pseq` kl_shen_LBsignature_helpRB appl_45+                                                                                                                                                     appl_46 `pseq` applyWrapper appl_20 [appl_46])))+                                                                                  !appl_47 <- kl_V1214 `pseq` hd kl_V1214+                                                                                  !appl_48 <- appl_47 `pseq` hd appl_47+                                                                                  appl_48 `pseq` applyWrapper appl_19 [appl_48]+                                                            Atom (B (False)) -> do do let !aw_49 = Core.Types.Atom (Core.Types.UnboundSym "fail")+                                                                                      applyWrapper aw_49 []+                                                            _ -> throwError "if: expected boolean"+                                            appl_18 `pseq` applyWrapper appl_0 [appl_18]++kl_shen_LBrulesRB :: Core.Types.KLValue ->+                     Core.Types.KLContext Core.Types.Env Core.Types.KLValue+kl_shen_LBrulesRB (!kl_V1216) = do let !appl_0 = ApplC (Func "lambda" (Context (\(!kl_YaccParse) -> do let !aw_1 = Core.Types.Atom (Core.Types.UnboundSym "fail")+                                                                                                       !appl_2 <- applyWrapper aw_1 []+                                                                                                       !kl_if_3 <- kl_YaccParse `pseq` (appl_2 `pseq` eq kl_YaccParse appl_2)+                                                                                                       case kl_if_3 of+                                                                                                           Atom (B (True)) -> do let !appl_4 = ApplC (Func "lambda" (Context (\(!kl_Parse_shen_LBruleRB) -> do let !aw_5 = Core.Types.Atom (Core.Types.UnboundSym "fail")+                                                                                                                                                                                                               !appl_6 <- applyWrapper aw_5 []+                                                                                                                                                                                                               !appl_7 <- appl_6 `pseq` (kl_Parse_shen_LBruleRB `pseq` eq appl_6 kl_Parse_shen_LBruleRB)+                                                                                                                                                                                                               let !aw_8 = Core.Types.Atom (Core.Types.UnboundSym "not")+                                                                                                                                                                                                               !kl_if_9 <- appl_7 `pseq` applyWrapper aw_8 [appl_7]+                                                                                                                                                                                                               case kl_if_9 of+                                                                                                                                                                                                                   Atom (B (True)) -> do !appl_10 <- kl_Parse_shen_LBruleRB `pseq` hd kl_Parse_shen_LBruleRB+                                                                                                                                                                                                                                         let !aw_11 = Core.Types.Atom (Core.Types.UnboundSym "shen.hdtl")+                                                                                                                                                                                                                                         !appl_12 <- kl_Parse_shen_LBruleRB `pseq` applyWrapper aw_11 [kl_Parse_shen_LBruleRB]+                                                                                                                                                                                                                                         !appl_13 <- appl_12 `pseq` kl_shen_linearise appl_12+                                                                                                                                                                                                                                         let !appl_14 = Atom Nil+                                                                                                                                                                                                                                         !appl_15 <- appl_13 `pseq` (appl_14 `pseq` klCons appl_13 appl_14)+                                                                                                                                                                                                                                         let !aw_16 = Core.Types.Atom (Core.Types.UnboundSym "shen.pair")+                                                                                                                                                                                                                                         appl_10 `pseq` (appl_15 `pseq` applyWrapper aw_16 [appl_10,+                                                                                                                                                                                                                                                                                            appl_15])+                                                                                                                                                                                                                   Atom (B (False)) -> do do let !aw_17 = Core.Types.Atom (Core.Types.UnboundSym "fail")+                                                                                                                                                                                                                                             applyWrapper aw_17 []+                                                                                                                                                                                                                   _ -> throwError "if: expected boolean")))+                                                                                                                                 !appl_18 <- kl_V1216 `pseq` kl_shen_LBruleRB kl_V1216+                                                                                                                                 appl_18 `pseq` applyWrapper appl_4 [appl_18]+                                                                                                           Atom (B (False)) -> do do return kl_YaccParse+                                                                                                           _ -> throwError "if: expected boolean")))+                                   let !appl_19 = ApplC (Func "lambda" (Context (\(!kl_Parse_shen_LBruleRB) -> do let !aw_20 = Core.Types.Atom (Core.Types.UnboundSym "fail")+                                                                                                                  !appl_21 <- applyWrapper aw_20 []+                                                                                                                  !appl_22 <- appl_21 `pseq` (kl_Parse_shen_LBruleRB `pseq` eq appl_21 kl_Parse_shen_LBruleRB)+                                                                                                                  let !aw_23 = Core.Types.Atom (Core.Types.UnboundSym "not")+                                                                                                                  !kl_if_24 <- appl_22 `pseq` applyWrapper aw_23 [appl_22]+                                                                                                                  case kl_if_24 of+                                                                                                                      Atom (B (True)) -> do let !appl_25 = ApplC (Func "lambda" (Context (\(!kl_Parse_shen_LBrulesRB) -> do let !aw_26 = Core.Types.Atom (Core.Types.UnboundSym "fail")+                                                                                                                                                                                                                            !appl_27 <- applyWrapper aw_26 []+                                                                                                                                                                                                                            !appl_28 <- appl_27 `pseq` (kl_Parse_shen_LBrulesRB `pseq` eq appl_27 kl_Parse_shen_LBrulesRB)+                                                                                                                                                                                                                            let !aw_29 = Core.Types.Atom (Core.Types.UnboundSym "not")+                                                                                                                                                                                                                            !kl_if_30 <- appl_28 `pseq` applyWrapper aw_29 [appl_28]+                                                                                                                                                                                                                            case kl_if_30 of+                                                                                                                                                                                                                                Atom (B (True)) -> do !appl_31 <- kl_Parse_shen_LBrulesRB `pseq` hd kl_Parse_shen_LBrulesRB+                                                                                                                                                                                                                                                      let !aw_32 = Core.Types.Atom (Core.Types.UnboundSym "shen.hdtl")+                                                                                                                                                                                                                                                      !appl_33 <- kl_Parse_shen_LBruleRB `pseq` applyWrapper aw_32 [kl_Parse_shen_LBruleRB]+                                                                                                                                                                                                                                                      !appl_34 <- appl_33 `pseq` kl_shen_linearise appl_33+                                                                                                                                                                                                                                                      let !aw_35 = Core.Types.Atom (Core.Types.UnboundSym "shen.hdtl")+                                                                                                                                                                                                                                                      !appl_36 <- kl_Parse_shen_LBrulesRB `pseq` applyWrapper aw_35 [kl_Parse_shen_LBrulesRB]+                                                                                                                                                                                                                                                      !appl_37 <- appl_34 `pseq` (appl_36 `pseq` klCons appl_34 appl_36)+                                                                                                                                                                                                                                                      let !aw_38 = Core.Types.Atom (Core.Types.UnboundSym "shen.pair")+                                                                                                                                                                                                                                                      appl_31 `pseq` (appl_37 `pseq` applyWrapper aw_38 [appl_31,+                                                                                                                                                                                                                                                                                                         appl_37])+                                                                                                                                                                                                                                Atom (B (False)) -> do do let !aw_39 = Core.Types.Atom (Core.Types.UnboundSym "fail")+                                                                                                                                                                                                                                                          applyWrapper aw_39 []+                                                                                                                                                                                                                                _ -> throwError "if: expected boolean")))+                                                                                                                                            !appl_40 <- kl_Parse_shen_LBruleRB `pseq` kl_shen_LBrulesRB kl_Parse_shen_LBruleRB+                                                                                                                                            appl_40 `pseq` applyWrapper appl_25 [appl_40]+                                                                                                                      Atom (B (False)) -> do do let !aw_41 = Core.Types.Atom (Core.Types.UnboundSym "fail")+                                                                                                                                                applyWrapper aw_41 []+                                                                                                                      _ -> throwError "if: expected boolean")))+                                   !appl_42 <- kl_V1216 `pseq` kl_shen_LBruleRB kl_V1216+                                   !appl_43 <- appl_42 `pseq` applyWrapper appl_19 [appl_42]+                                   appl_43 `pseq` applyWrapper appl_0 [appl_43]++kl_shen_LBruleRB :: Core.Types.KLValue ->+                    Core.Types.KLContext Core.Types.Env Core.Types.KLValue+kl_shen_LBruleRB (!kl_V1218) = do let !appl_0 = ApplC (Func "lambda" (Context (\(!kl_YaccParse) -> do let !aw_1 = Core.Types.Atom (Core.Types.UnboundSym "fail")+                                                                                                      !appl_2 <- applyWrapper aw_1 []+                                                                                                      !kl_if_3 <- kl_YaccParse `pseq` (appl_2 `pseq` eq kl_YaccParse appl_2)+                                                                                                      case kl_if_3 of+                                                                                                          Atom (B (True)) -> do let !appl_4 = ApplC (Func "lambda" (Context (\(!kl_YaccParse) -> do let !aw_5 = Core.Types.Atom (Core.Types.UnboundSym "fail")+                                                                                                                                                                                                    !appl_6 <- applyWrapper aw_5 []+                                                                                                                                                                                                    !kl_if_7 <- kl_YaccParse `pseq` (appl_6 `pseq` eq kl_YaccParse appl_6)+                                                                                                                                                                                                    case kl_if_7 of+                                                                                                                                                                                                        Atom (B (True)) -> do let !appl_8 = ApplC (Func "lambda" (Context (\(!kl_YaccParse) -> do let !aw_9 = Core.Types.Atom (Core.Types.UnboundSym "fail")+                                                                                                                                                                                                                                                                                                  !appl_10 <- applyWrapper aw_9 []+                                                                                                                                                                                                                                                                                                  !kl_if_11 <- kl_YaccParse `pseq` (appl_10 `pseq` eq kl_YaccParse appl_10)+                                                                                                                                                                                                                                                                                                  case kl_if_11 of+                                                                                                                                                                                                                                                                                                      Atom (B (True)) -> do let !appl_12 = ApplC (Func "lambda" (Context (\(!kl_Parse_shen_LBpatternsRB) -> do let !aw_13 = Core.Types.Atom (Core.Types.UnboundSym "fail")+                                                                                                                                                                                                                                                                                                                                                                                                               !appl_14 <- applyWrapper aw_13 []+                                                                                                                                                                                                                                                                                                                                                                                                               !appl_15 <- appl_14 `pseq` (kl_Parse_shen_LBpatternsRB `pseq` eq appl_14 kl_Parse_shen_LBpatternsRB)+                                                                                                                                                                                                                                                                                                                                                                                                               let !aw_16 = Core.Types.Atom (Core.Types.UnboundSym "not")+                                                                                                                                                                                                                                                                                                                                                                                                               !kl_if_17 <- appl_15 `pseq` applyWrapper aw_16 [appl_15]+                                                                                                                                                                                                                                                                                                                                                                                                               case kl_if_17 of+                                                                                                                                                                                                                                                                                                                                                                                                                   Atom (B (True)) -> do !appl_18 <- kl_Parse_shen_LBpatternsRB `pseq` hd kl_Parse_shen_LBpatternsRB+                                                                                                                                                                                                                                                                                                                                                                                                                                         !kl_if_19 <- appl_18 `pseq` consP appl_18+                                                                                                                                                                                                                                                                                                                                                                                                                                         !kl_if_20 <- case kl_if_19 of+                                                                                                                                                                                                                                                                                                                                                                                                                                                          Atom (B (True)) -> do !appl_21 <- kl_Parse_shen_LBpatternsRB `pseq` hd kl_Parse_shen_LBpatternsRB+                                                                                                                                                                                                                                                                                                                                                                                                                                                                                !appl_22 <- appl_21 `pseq` hd appl_21+                                                                                                                                                                                                                                                                                                                                                                                                                                                                                !kl_if_23 <- appl_22 `pseq` eq (Core.Types.Atom (Core.Types.UnboundSym "<-")) appl_22+                                                                                                                                                                                                                                                                                                                                                                                                                                                                                case kl_if_23 of+                                                                                                                                                                                                                                                                                                                                                                                                                                                                                    Atom (B (True)) -> do return (Atom (B True))+                                                                                                                                                                                                                                                                                                                                                                                                                                                                                    Atom (B (False)) -> do do return (Atom (B False))+                                                                                                                                                                                                                                                                                                                                                                                                                                                                                    _ -> throwError "if: expected boolean"+                                                                                                                                                                                                                                                                                                                                                                                                                                                          Atom (B (False)) -> do do return (Atom (B False))+                                                                                                                                                                                                                                                                                                                                                                                                                                                          _ -> throwError "if: expected boolean"+                                                                                                                                                                                                                                                                                                                                                                                                                                         case kl_if_20 of+                                                                                                                                                                                                                                                                                                                                                                                                                                             Atom (B (True)) -> do let !appl_24 = ApplC (Func "lambda" (Context (\(!kl_Parse_shen_LBactionRB) -> do let !aw_25 = Core.Types.Atom (Core.Types.UnboundSym "fail")+                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                    !appl_26 <- applyWrapper aw_25 []+                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                    !appl_27 <- appl_26 `pseq` (kl_Parse_shen_LBactionRB `pseq` eq appl_26 kl_Parse_shen_LBactionRB)+                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                    let !aw_28 = Core.Types.Atom (Core.Types.UnboundSym "not")+                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                    !kl_if_29 <- appl_27 `pseq` applyWrapper aw_28 [appl_27]+                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                    case kl_if_29 of+                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                        Atom (B (True)) -> do !appl_30 <- kl_Parse_shen_LBactionRB `pseq` hd kl_Parse_shen_LBactionRB+                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                              let !aw_31 = Core.Types.Atom (Core.Types.UnboundSym "shen.hdtl")+                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                              !appl_32 <- kl_Parse_shen_LBpatternsRB `pseq` applyWrapper aw_31 [kl_Parse_shen_LBpatternsRB]+                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                              let !aw_33 = Core.Types.Atom (Core.Types.UnboundSym "shen.hdtl")+                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                              !appl_34 <- kl_Parse_shen_LBactionRB `pseq` applyWrapper aw_33 [kl_Parse_shen_LBactionRB]+                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                              let !appl_35 = Atom Nil+                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                              !appl_36 <- appl_34 `pseq` (appl_35 `pseq` klCons appl_34 appl_35)+                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                              !appl_37 <- appl_36 `pseq` klCons (Core.Types.Atom (Core.Types.UnboundSym "shen.choicepoint!")) appl_36+                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                              let !appl_38 = Atom Nil+                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                              !appl_39 <- appl_37 `pseq` (appl_38 `pseq` klCons appl_37 appl_38)+                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                              !appl_40 <- appl_32 `pseq` (appl_39 `pseq` klCons appl_32 appl_39)+                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                              let !aw_41 = Core.Types.Atom (Core.Types.UnboundSym "shen.pair")+                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                              appl_30 `pseq` (appl_40 `pseq` applyWrapper aw_41 [appl_30,+                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                 appl_40])+                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                        Atom (B (False)) -> do do let !aw_42 = Core.Types.Atom (Core.Types.UnboundSym "fail")+                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                  applyWrapper aw_42 []+                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                        _ -> throwError "if: expected boolean")))+                                                                                                                                                                                                                                                                                                                                                                                                                                                                   !appl_43 <- kl_Parse_shen_LBpatternsRB `pseq` hd kl_Parse_shen_LBpatternsRB+                                                                                                                                                                                                                                                                                                                                                                                                                                                                   !appl_44 <- appl_43 `pseq` tl appl_43+                                                                                                                                                                                                                                                                                                                                                                                                                                                                   let !aw_45 = Core.Types.Atom (Core.Types.UnboundSym "shen.hdtl")+                                                                                                                                                                                                                                                                                                                                                                                                                                                                   !appl_46 <- kl_Parse_shen_LBpatternsRB `pseq` applyWrapper aw_45 [kl_Parse_shen_LBpatternsRB]+                                                                                                                                                                                                                                                                                                                                                                                                                                                                   let !aw_47 = Core.Types.Atom (Core.Types.UnboundSym "shen.pair")+                                                                                                                                                                                                                                                                                                                                                                                                                                                                   !appl_48 <- appl_44 `pseq` (appl_46 `pseq` applyWrapper aw_47 [appl_44,+                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                  appl_46])+                                                                                                                                                                                                                                                                                                                                                                                                                                                                   !appl_49 <- appl_48 `pseq` kl_shen_LBactionRB appl_48+                                                                                                                                                                                                                                                                                                                                                                                                                                                                   appl_49 `pseq` applyWrapper appl_24 [appl_49]+                                                                                                                                                                                                                                                                                                                                                                                                                                             Atom (B (False)) -> do do let !aw_50 = Core.Types.Atom (Core.Types.UnboundSym "fail")+                                                                                                                                                                                                                                                                                                                                                                                                                                                                       applyWrapper aw_50 []+                                                                                                                                                                                                                                                                                                                                                                                                                                             _ -> throwError "if: expected boolean"+                                                                                                                                                                                                                                                                                                                                                                                                                   Atom (B (False)) -> do do let !aw_51 = Core.Types.Atom (Core.Types.UnboundSym "fail")+                                                                                                                                                                                                                                                                                                                                                                                                                                             applyWrapper aw_51 []+                                                                                                                                                                                                                                                                                                                                                                                                                   _ -> throwError "if: expected boolean")))+                                                                                                                                                                                                                                                                                                                            !appl_52 <- kl_V1218 `pseq` kl_shen_LBpatternsRB kl_V1218+                                                                                                                                                                                                                                                                                                                            appl_52 `pseq` applyWrapper appl_12 [appl_52]+                                                                                                                                                                                                                                                                                                      Atom (B (False)) -> do do return kl_YaccParse+                                                                                                                                                                                                                                                                                                      _ -> throwError "if: expected boolean")))+                                                                                                                                                                                                                              let !appl_53 = ApplC (Func "lambda" (Context (\(!kl_Parse_shen_LBpatternsRB) -> do let !aw_54 = Core.Types.Atom (Core.Types.UnboundSym "fail")+                                                                                                                                                                                                                                                                                                                 !appl_55 <- applyWrapper aw_54 []+                                                                                                                                                                                                                                                                                                                 !appl_56 <- appl_55 `pseq` (kl_Parse_shen_LBpatternsRB `pseq` eq appl_55 kl_Parse_shen_LBpatternsRB)+                                                                                                                                                                                                                                                                                                                 let !aw_57 = Core.Types.Atom (Core.Types.UnboundSym "not")+                                                                                                                                                                                                                                                                                                                 !kl_if_58 <- appl_56 `pseq` applyWrapper aw_57 [appl_56]+                                                                                                                                                                                                                                                                                                                 case kl_if_58 of+                                                                                                                                                                                                                                                                                                                     Atom (B (True)) -> do !appl_59 <- kl_Parse_shen_LBpatternsRB `pseq` hd kl_Parse_shen_LBpatternsRB+                                                                                                                                                                                                                                                                                                                                           !kl_if_60 <- appl_59 `pseq` consP appl_59+                                                                                                                                                                                                                                                                                                                                           !kl_if_61 <- case kl_if_60 of+                                                                                                                                                                                                                                                                                                                                                            Atom (B (True)) -> do !appl_62 <- kl_Parse_shen_LBpatternsRB `pseq` hd kl_Parse_shen_LBpatternsRB+                                                                                                                                                                                                                                                                                                                                                                                  !appl_63 <- appl_62 `pseq` hd appl_62+                                                                                                                                                                                                                                                                                                                                                                                  !kl_if_64 <- appl_63 `pseq` eq (Core.Types.Atom (Core.Types.UnboundSym "<-")) appl_63+                                                                                                                                                                                                                                                                                                                                                                                  case kl_if_64 of+                                                                                                                                                                                                                                                                                                                                                                                      Atom (B (True)) -> do return (Atom (B True))+                                                                                                                                                                                                                                                                                                                                                                                      Atom (B (False)) -> do do return (Atom (B False))+                                                                                                                                                                                                                                                                                                                                                                                      _ -> throwError "if: expected boolean"+                                                                                                                                                                                                                                                                                                                                                            Atom (B (False)) -> do do return (Atom (B False))+                                                                                                                                                                                                                                                                                                                                                            _ -> throwError "if: expected boolean"+                                                                                                                                                                                                                                                                                                                                           case kl_if_61 of+                                                                                                                                                                                                                                                                                                                                               Atom (B (True)) -> do let !appl_65 = ApplC (Func "lambda" (Context (\(!kl_Parse_shen_LBactionRB) -> do let !aw_66 = Core.Types.Atom (Core.Types.UnboundSym "fail")+                                                                                                                                                                                                                                                                                                                                                                                                                                                      !appl_67 <- applyWrapper aw_66 []+                                                                                                                                                                                                                                                                                                                                                                                                                                                      !appl_68 <- appl_67 `pseq` (kl_Parse_shen_LBactionRB `pseq` eq appl_67 kl_Parse_shen_LBactionRB)+                                                                                                                                                                                                                                                                                                                                                                                                                                                      let !aw_69 = Core.Types.Atom (Core.Types.UnboundSym "not")+                                                                                                                                                                                                                                                                                                                                                                                                                                                      !kl_if_70 <- appl_68 `pseq` applyWrapper aw_69 [appl_68]+                                                                                                                                                                                                                                                                                                                                                                                                                                                      case kl_if_70 of+                                                                                                                                                                                                                                                                                                                                                                                                                                                          Atom (B (True)) -> do !appl_71 <- kl_Parse_shen_LBactionRB `pseq` hd kl_Parse_shen_LBactionRB+                                                                                                                                                                                                                                                                                                                                                                                                                                                                                !kl_if_72 <- appl_71 `pseq` consP appl_71+                                                                                                                                                                                                                                                                                                                                                                                                                                                                                !kl_if_73 <- case kl_if_72 of+                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                 Atom (B (True)) -> do !appl_74 <- kl_Parse_shen_LBactionRB `pseq` hd kl_Parse_shen_LBactionRB+                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                       !appl_75 <- appl_74 `pseq` hd appl_74+                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                       !kl_if_76 <- appl_75 `pseq` eq (Core.Types.Atom (Core.Types.UnboundSym "where")) appl_75+                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                       case kl_if_76 of+                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                           Atom (B (True)) -> do return (Atom (B True))+                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                           Atom (B (False)) -> do do return (Atom (B False))+                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                           _ -> throwError "if: expected boolean"+                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                 Atom (B (False)) -> do do return (Atom (B False))+                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                 _ -> throwError "if: expected boolean"+                                                                                                                                                                                                                                                                                                                                                                                                                                                                                case kl_if_73 of+                                                                                                                                                                                                                                                                                                                                                                                                                                                                                    Atom (B (True)) -> do let !appl_77 = ApplC (Func "lambda" (Context (\(!kl_Parse_shen_LBguardRB) -> do let !aw_78 = Core.Types.Atom (Core.Types.UnboundSym "fail")+                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                          !appl_79 <- applyWrapper aw_78 []+                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                          !appl_80 <- appl_79 `pseq` (kl_Parse_shen_LBguardRB `pseq` eq appl_79 kl_Parse_shen_LBguardRB)+                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                          let !aw_81 = Core.Types.Atom (Core.Types.UnboundSym "not")+                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                          !kl_if_82 <- appl_80 `pseq` applyWrapper aw_81 [appl_80]+                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                          case kl_if_82 of+                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                              Atom (B (True)) -> do !appl_83 <- kl_Parse_shen_LBguardRB `pseq` hd kl_Parse_shen_LBguardRB+                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                    let !aw_84 = Core.Types.Atom (Core.Types.UnboundSym "shen.hdtl")+                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                    !appl_85 <- kl_Parse_shen_LBpatternsRB `pseq` applyWrapper aw_84 [kl_Parse_shen_LBpatternsRB]+                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                    let !aw_86 = Core.Types.Atom (Core.Types.UnboundSym "shen.hdtl")+                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                    !appl_87 <- kl_Parse_shen_LBguardRB `pseq` applyWrapper aw_86 [kl_Parse_shen_LBguardRB]+                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                    let !aw_88 = Core.Types.Atom (Core.Types.UnboundSym "shen.hdtl")+                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                    !appl_89 <- kl_Parse_shen_LBactionRB `pseq` applyWrapper aw_88 [kl_Parse_shen_LBactionRB]+                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                    let !appl_90 = Atom Nil+                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                    !appl_91 <- appl_89 `pseq` (appl_90 `pseq` klCons appl_89 appl_90)+                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                    !appl_92 <- appl_91 `pseq` klCons (Core.Types.Atom (Core.Types.UnboundSym "shen.choicepoint!")) appl_91+                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                    let !appl_93 = Atom Nil+                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                    !appl_94 <- appl_92 `pseq` (appl_93 `pseq` klCons appl_92 appl_93)+                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                    !appl_95 <- appl_87 `pseq` (appl_94 `pseq` klCons appl_87 appl_94)+                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                    !appl_96 <- appl_95 `pseq` klCons (Core.Types.Atom (Core.Types.UnboundSym "where")) appl_95+                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                    let !appl_97 = Atom Nil+                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                    !appl_98 <- appl_96 `pseq` (appl_97 `pseq` klCons appl_96 appl_97)+                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                    !appl_99 <- appl_85 `pseq` (appl_98 `pseq` klCons appl_85 appl_98)+                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                    let !aw_100 = Core.Types.Atom (Core.Types.UnboundSym "shen.pair")+                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                    appl_83 `pseq` (appl_99 `pseq` applyWrapper aw_100 [appl_83,+                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                        appl_99])+                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                              Atom (B (False)) -> do do let !aw_101 = Core.Types.Atom (Core.Types.UnboundSym "fail")+                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                        applyWrapper aw_101 []+                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                              _ -> throwError "if: expected boolean")))+                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                          !appl_102 <- kl_Parse_shen_LBactionRB `pseq` hd kl_Parse_shen_LBactionRB+                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                          !appl_103 <- appl_102 `pseq` tl appl_102+                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                          let !aw_104 = Core.Types.Atom (Core.Types.UnboundSym "shen.hdtl")+                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                          !appl_105 <- kl_Parse_shen_LBactionRB `pseq` applyWrapper aw_104 [kl_Parse_shen_LBactionRB]+                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                          let !aw_106 = Core.Types.Atom (Core.Types.UnboundSym "shen.pair")+                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                          !appl_107 <- appl_103 `pseq` (appl_105 `pseq` applyWrapper aw_106 [appl_103,+                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                             appl_105])+                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                          !appl_108 <- appl_107 `pseq` kl_shen_LBguardRB appl_107+                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                          appl_108 `pseq` applyWrapper appl_77 [appl_108]+                                                                                                                                                                                                                                                                                                                                                                                                                                                                                    Atom (B (False)) -> do do let !aw_109 = Core.Types.Atom (Core.Types.UnboundSym "fail")+                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                              applyWrapper aw_109 []+                                                                                                                                                                                                                                                                                                                                                                                                                                                                                    _ -> throwError "if: expected boolean"+                                                                                                                                                                                                                                                                                                                                                                                                                                                          Atom (B (False)) -> do do let !aw_110 = Core.Types.Atom (Core.Types.UnboundSym "fail")+                                                                                                                                                                                                                                                                                                                                                                                                                                                                                    applyWrapper aw_110 []+                                                                                                                                                                                                                                                                                                                                                                                                                                                          _ -> throwError "if: expected boolean")))+                                                                                                                                                                                                                                                                                                                                                                     !appl_111 <- kl_Parse_shen_LBpatternsRB `pseq` hd kl_Parse_shen_LBpatternsRB+                                                                                                                                                                                                                                                                                                                                                                     !appl_112 <- appl_111 `pseq` tl appl_111+                                                                                                                                                                                                                                                                                                                                                                     let !aw_113 = Core.Types.Atom (Core.Types.UnboundSym "shen.hdtl")+                                                                                                                                                                                                                                                                                                                                                                     !appl_114 <- kl_Parse_shen_LBpatternsRB `pseq` applyWrapper aw_113 [kl_Parse_shen_LBpatternsRB]+                                                                                                                                                                                                                                                                                                                                                                     let !aw_115 = Core.Types.Atom (Core.Types.UnboundSym "shen.pair")+                                                                                                                                                                                                                                                                                                                                                                     !appl_116 <- appl_112 `pseq` (appl_114 `pseq` applyWrapper aw_115 [appl_112,+                                                                                                                                                                                                                                                                                                                                                                                                                                        appl_114])+                                                                                                                                                                                                                                                                                                                                                                     !appl_117 <- appl_116 `pseq` kl_shen_LBactionRB appl_116+                                                                                                                                                                                                                                                                                                                                                                     appl_117 `pseq` applyWrapper appl_65 [appl_117]+                                                                                                                                                                                                                                                                                                                                               Atom (B (False)) -> do do let !aw_118 = Core.Types.Atom (Core.Types.UnboundSym "fail")+                                                                                                                                                                                                                                                                                                                                                                         applyWrapper aw_118 []+                                                                                                                                                                                                                                                                                                                                               _ -> throwError "if: expected boolean"+                                                                                                                                                                                                                                                                                                                     Atom (B (False)) -> do do let !aw_119 = Core.Types.Atom (Core.Types.UnboundSym "fail")+                                                                                                                                                                                                                                                                                                                                               applyWrapper aw_119 []+                                                                                                                                                                                                                                                                                                                     _ -> throwError "if: expected boolean")))+                                                                                                                                                                                                                              !appl_120 <- kl_V1218 `pseq` kl_shen_LBpatternsRB kl_V1218+                                                                                                                                                                                                                              !appl_121 <- appl_120 `pseq` applyWrapper appl_53 [appl_120]+                                                                                                                                                                                                                              appl_121 `pseq` applyWrapper appl_8 [appl_121]+                                                                                                                                                                                                        Atom (B (False)) -> do do return kl_YaccParse+                                                                                                                                                                                                        _ -> throwError "if: expected boolean")))+                                                                                                                                let !appl_122 = ApplC (Func "lambda" (Context (\(!kl_Parse_shen_LBpatternsRB) -> do let !aw_123 = Core.Types.Atom (Core.Types.UnboundSym "fail")+                                                                                                                                                                                                                    !appl_124 <- applyWrapper aw_123 []+                                                                                                                                                                                                                    !appl_125 <- appl_124 `pseq` (kl_Parse_shen_LBpatternsRB `pseq` eq appl_124 kl_Parse_shen_LBpatternsRB)+                                                                                                                                                                                                                    let !aw_126 = Core.Types.Atom (Core.Types.UnboundSym "not")+                                                                                                                                                                                                                    !kl_if_127 <- appl_125 `pseq` applyWrapper aw_126 [appl_125]+                                                                                                                                                                                                                    case kl_if_127 of+                                                                                                                                                                                                                        Atom (B (True)) -> do !appl_128 <- kl_Parse_shen_LBpatternsRB `pseq` hd kl_Parse_shen_LBpatternsRB+                                                                                                                                                                                                                                              !kl_if_129 <- appl_128 `pseq` consP appl_128+                                                                                                                                                                                                                                              !kl_if_130 <- case kl_if_129 of+                                                                                                                                                                                                                                                                Atom (B (True)) -> do !appl_131 <- kl_Parse_shen_LBpatternsRB `pseq` hd kl_Parse_shen_LBpatternsRB+                                                                                                                                                                                                                                                                                      !appl_132 <- appl_131 `pseq` hd appl_131+                                                                                                                                                                                                                                                                                      !kl_if_133 <- appl_132 `pseq` eq (Core.Types.Atom (Core.Types.UnboundSym "->")) appl_132+                                                                                                                                                                                                                                                                                      case kl_if_133 of+                                                                                                                                                                                                                                                                                          Atom (B (True)) -> do return (Atom (B True))+                                                                                                                                                                                                                                                                                          Atom (B (False)) -> do do return (Atom (B False))+                                                                                                                                                                                                                                                                                          _ -> throwError "if: expected boolean"+                                                                                                                                                                                                                                                                Atom (B (False)) -> do do return (Atom (B False))+                                                                                                                                                                                                                                                                _ -> throwError "if: expected boolean"+                                                                                                                                                                                                                                              case kl_if_130 of+                                                                                                                                                                                                                                                  Atom (B (True)) -> do let !appl_134 = ApplC (Func "lambda" (Context (\(!kl_Parse_shen_LBactionRB) -> do let !aw_135 = Core.Types.Atom (Core.Types.UnboundSym "fail")+                                                                                                                                                                                                                                                                                                                                                          !appl_136 <- applyWrapper aw_135 []+                                                                                                                                                                                                                                                                                                                                                          !appl_137 <- appl_136 `pseq` (kl_Parse_shen_LBactionRB `pseq` eq appl_136 kl_Parse_shen_LBactionRB)+                                                                                                                                                                                                                                                                                                                                                          let !aw_138 = Core.Types.Atom (Core.Types.UnboundSym "not")+                                                                                                                                                                                                                                                                                                                                                          !kl_if_139 <- appl_137 `pseq` applyWrapper aw_138 [appl_137]+                                                                                                                                                                                                                                                                                                                                                          case kl_if_139 of+                                                                                                                                                                                                                                                                                                                                                              Atom (B (True)) -> do !appl_140 <- kl_Parse_shen_LBactionRB `pseq` hd kl_Parse_shen_LBactionRB+                                                                                                                                                                                                                                                                                                                                                                                    let !aw_141 = Core.Types.Atom (Core.Types.UnboundSym "shen.hdtl")+                                                                                                                                                                                                                                                                                                                                                                                    !appl_142 <- kl_Parse_shen_LBpatternsRB `pseq` applyWrapper aw_141 [kl_Parse_shen_LBpatternsRB]+                                                                                                                                                                                                                                                                                                                                                                                    let !aw_143 = Core.Types.Atom (Core.Types.UnboundSym "shen.hdtl")+                                                                                                                                                                                                                                                                                                                                                                                    !appl_144 <- kl_Parse_shen_LBactionRB `pseq` applyWrapper aw_143 [kl_Parse_shen_LBactionRB]+                                                                                                                                                                                                                                                                                                                                                                                    let !appl_145 = Atom Nil+                                                                                                                                                                                                                                                                                                                                                                                    !appl_146 <- appl_144 `pseq` (appl_145 `pseq` klCons appl_144 appl_145)+                                                                                                                                                                                                                                                                                                                                                                                    !appl_147 <- appl_142 `pseq` (appl_146 `pseq` klCons appl_142 appl_146)+                                                                                                                                                                                                                                                                                                                                                                                    let !aw_148 = Core.Types.Atom (Core.Types.UnboundSym "shen.pair")+                                                                                                                                                                                                                                                                                                                                                                                    appl_140 `pseq` (appl_147 `pseq` applyWrapper aw_148 [appl_140,+                                                                                                                                                                                                                                                                                                                                                                                                                                          appl_147])+                                                                                                                                                                                                                                                                                                                                                              Atom (B (False)) -> do do let !aw_149 = Core.Types.Atom (Core.Types.UnboundSym "fail")+                                                                                                                                                                                                                                                                                                                                                                                        applyWrapper aw_149 []+                                                                                                                                                                                                                                                                                                                                                              _ -> throwError "if: expected boolean")))+                                                                                                                                                                                                                                                                        !appl_150 <- kl_Parse_shen_LBpatternsRB `pseq` hd kl_Parse_shen_LBpatternsRB+                                                                                                                                                                                                                                                                        !appl_151 <- appl_150 `pseq` tl appl_150+                                                                                                                                                                                                                                                                        let !aw_152 = Core.Types.Atom (Core.Types.UnboundSym "shen.hdtl")+                                                                                                                                                                                                                                                                        !appl_153 <- kl_Parse_shen_LBpatternsRB `pseq` applyWrapper aw_152 [kl_Parse_shen_LBpatternsRB]+                                                                                                                                                                                                                                                                        let !aw_154 = Core.Types.Atom (Core.Types.UnboundSym "shen.pair")+                                                                                                                                                                                                                                                                        !appl_155 <- appl_151 `pseq` (appl_153 `pseq` applyWrapper aw_154 [appl_151,+                                                                                                                                                                                                                                                                                                                                           appl_153])+                                                                                                                                                                                                                                                                        !appl_156 <- appl_155 `pseq` kl_shen_LBactionRB appl_155+                                                                                                                                                                                                                                                                        appl_156 `pseq` applyWrapper appl_134 [appl_156]+                                                                                                                                                                                                                                                  Atom (B (False)) -> do do let !aw_157 = Core.Types.Atom (Core.Types.UnboundSym "fail")+                                                                                                                                                                                                                                                                            applyWrapper aw_157 []+                                                                                                                                                                                                                                                  _ -> throwError "if: expected boolean"+                                                                                                                                                                                                                        Atom (B (False)) -> do do let !aw_158 = Core.Types.Atom (Core.Types.UnboundSym "fail")+                                                                                                                                                                                                                                                  applyWrapper aw_158 []+                                                                                                                                                                                                                        _ -> throwError "if: expected boolean")))+                                                                                                                                !appl_159 <- kl_V1218 `pseq` kl_shen_LBpatternsRB kl_V1218+                                                                                                                                !appl_160 <- appl_159 `pseq` applyWrapper appl_122 [appl_159]+                                                                                                                                appl_160 `pseq` applyWrapper appl_4 [appl_160]+                                                                                                          Atom (B (False)) -> do do return kl_YaccParse+                                                                                                          _ -> throwError "if: expected boolean")))+                                  let !appl_161 = ApplC (Func "lambda" (Context (\(!kl_Parse_shen_LBpatternsRB) -> do let !aw_162 = Core.Types.Atom (Core.Types.UnboundSym "fail")+                                                                                                                      !appl_163 <- applyWrapper aw_162 []+                                                                                                                      !appl_164 <- appl_163 `pseq` (kl_Parse_shen_LBpatternsRB `pseq` eq appl_163 kl_Parse_shen_LBpatternsRB)+                                                                                                                      let !aw_165 = Core.Types.Atom (Core.Types.UnboundSym "not")+                                                                                                                      !kl_if_166 <- appl_164 `pseq` applyWrapper aw_165 [appl_164]+                                                                                                                      case kl_if_166 of+                                                                                                                          Atom (B (True)) -> do !appl_167 <- kl_Parse_shen_LBpatternsRB `pseq` hd kl_Parse_shen_LBpatternsRB+                                                                                                                                                !kl_if_168 <- appl_167 `pseq` consP appl_167+                                                                                                                                                !kl_if_169 <- case kl_if_168 of+                                                                                                                                                                  Atom (B (True)) -> do !appl_170 <- kl_Parse_shen_LBpatternsRB `pseq` hd kl_Parse_shen_LBpatternsRB+                                                                                                                                                                                        !appl_171 <- appl_170 `pseq` hd appl_170+                                                                                                                                                                                        !kl_if_172 <- appl_171 `pseq` eq (Core.Types.Atom (Core.Types.UnboundSym "->")) appl_171+                                                                                                                                                                                        case kl_if_172 of+                                                                                                                                                                                            Atom (B (True)) -> do return (Atom (B True))+                                                                                                                                                                                            Atom (B (False)) -> do do return (Atom (B False))+                                                                                                                                                                                            _ -> throwError "if: expected boolean"+                                                                                                                                                                  Atom (B (False)) -> do do return (Atom (B False))+                                                                                                                                                                  _ -> throwError "if: expected boolean"+                                                                                                                                                case kl_if_169 of+                                                                                                                                                    Atom (B (True)) -> do let !appl_173 = ApplC (Func "lambda" (Context (\(!kl_Parse_shen_LBactionRB) -> do let !aw_174 = Core.Types.Atom (Core.Types.UnboundSym "fail")+                                                                                                                                                                                                                                                            !appl_175 <- applyWrapper aw_174 []+                                                                                                                                                                                                                                                            !appl_176 <- appl_175 `pseq` (kl_Parse_shen_LBactionRB `pseq` eq appl_175 kl_Parse_shen_LBactionRB)+                                                                                                                                                                                                                                                            let !aw_177 = Core.Types.Atom (Core.Types.UnboundSym "not")+                                                                                                                                                                                                                                                            !kl_if_178 <- appl_176 `pseq` applyWrapper aw_177 [appl_176]+                                                                                                                                                                                                                                                            case kl_if_178 of+                                                                                                                                                                                                                                                                Atom (B (True)) -> do !appl_179 <- kl_Parse_shen_LBactionRB `pseq` hd kl_Parse_shen_LBactionRB+                                                                                                                                                                                                                                                                                      !kl_if_180 <- appl_179 `pseq` consP appl_179+                                                                                                                                                                                                                                                                                      !kl_if_181 <- case kl_if_180 of+                                                                                                                                                                                                                                                                                                        Atom (B (True)) -> do !appl_182 <- kl_Parse_shen_LBactionRB `pseq` hd kl_Parse_shen_LBactionRB+                                                                                                                                                                                                                                                                                                                              !appl_183 <- appl_182 `pseq` hd appl_182+                                                                                                                                                                                                                                                                                                                              !kl_if_184 <- appl_183 `pseq` eq (Core.Types.Atom (Core.Types.UnboundSym "where")) appl_183+                                                                                                                                                                                                                                                                                                                              case kl_if_184 of+                                                                                                                                                                                                                                                                                                                                  Atom (B (True)) -> do return (Atom (B True))+                                                                                                                                                                                                                                                                                                                                  Atom (B (False)) -> do do return (Atom (B False))+                                                                                                                                                                                                                                                                                                                                  _ -> throwError "if: expected boolean"+                                                                                                                                                                                                                                                                                                        Atom (B (False)) -> do do return (Atom (B False))+                                                                                                                                                                                                                                                                                                        _ -> throwError "if: expected boolean"+                                                                                                                                                                                                                                                                                      case kl_if_181 of+                                                                                                                                                                                                                                                                                          Atom (B (True)) -> do let !appl_185 = ApplC (Func "lambda" (Context (\(!kl_Parse_shen_LBguardRB) -> do let !aw_186 = Core.Types.Atom (Core.Types.UnboundSym "fail")+                                                                                                                                                                                                                                                                                                                                                                                                 !appl_187 <- applyWrapper aw_186 []+                                                                                                                                                                                                                                                                                                                                                                                                 !appl_188 <- appl_187 `pseq` (kl_Parse_shen_LBguardRB `pseq` eq appl_187 kl_Parse_shen_LBguardRB)+                                                                                                                                                                                                                                                                                                                                                                                                 let !aw_189 = Core.Types.Atom (Core.Types.UnboundSym "not")+                                                                                                                                                                                                                                                                                                                                                                                                 !kl_if_190 <- appl_188 `pseq` applyWrapper aw_189 [appl_188]+                                                                                                                                                                                                                                                                                                                                                                                                 case kl_if_190 of+                                                                                                                                                                                                                                                                                                                                                                                                     Atom (B (True)) -> do !appl_191 <- kl_Parse_shen_LBguardRB `pseq` hd kl_Parse_shen_LBguardRB+                                                                                                                                                                                                                                                                                                                                                                                                                           let !aw_192 = Core.Types.Atom (Core.Types.UnboundSym "shen.hdtl")+                                                                                                                                                                                                                                                                                                                                                                                                                           !appl_193 <- kl_Parse_shen_LBpatternsRB `pseq` applyWrapper aw_192 [kl_Parse_shen_LBpatternsRB]+                                                                                                                                                                                                                                                                                                                                                                                                                           let !aw_194 = Core.Types.Atom (Core.Types.UnboundSym "shen.hdtl")+                                                                                                                                                                                                                                                                                                                                                                                                                           !appl_195 <- kl_Parse_shen_LBguardRB `pseq` applyWrapper aw_194 [kl_Parse_shen_LBguardRB]+                                                                                                                                                                                                                                                                                                                                                                                                                           let !aw_196 = Core.Types.Atom (Core.Types.UnboundSym "shen.hdtl")+                                                                                                                                                                                                                                                                                                                                                                                                                           !appl_197 <- kl_Parse_shen_LBactionRB `pseq` applyWrapper aw_196 [kl_Parse_shen_LBactionRB]+                                                                                                                                                                                                                                                                                                                                                                                                                           let !appl_198 = Atom Nil+                                                                                                                                                                                                                                                                                                                                                                                                                           !appl_199 <- appl_197 `pseq` (appl_198 `pseq` klCons appl_197 appl_198)+                                                                                                                                                                                                                                                                                                                                                                                                                           !appl_200 <- appl_195 `pseq` (appl_199 `pseq` klCons appl_195 appl_199)+                                                                                                                                                                                                                                                                                                                                                                                                                           !appl_201 <- appl_200 `pseq` klCons (Core.Types.Atom (Core.Types.UnboundSym "where")) appl_200+                                                                                                                                                                                                                                                                                                                                                                                                                           let !appl_202 = Atom Nil+                                                                                                                                                                                                                                                                                                                                                                                                                           !appl_203 <- appl_201 `pseq` (appl_202 `pseq` klCons appl_201 appl_202)+                                                                                                                                                                                                                                                                                                                                                                                                                           !appl_204 <- appl_193 `pseq` (appl_203 `pseq` klCons appl_193 appl_203)+                                                                                                                                                                                                                                                                                                                                                                                                                           let !aw_205 = Core.Types.Atom (Core.Types.UnboundSym "shen.pair")+                                                                                                                                                                                                                                                                                                                                                                                                                           appl_191 `pseq` (appl_204 `pseq` applyWrapper aw_205 [appl_191,+                                                                                                                                                                                                                                                                                                                                                                                                                                                                                 appl_204])+                                                                                                                                                                                                                                                                                                                                                                                                     Atom (B (False)) -> do do let !aw_206 = Core.Types.Atom (Core.Types.UnboundSym "fail")+                                                                                                                                                                                                                                                                                                                                                                                                                               applyWrapper aw_206 []+                                                                                                                                                                                                                                                                                                                                                                                                     _ -> throwError "if: expected boolean")))+                                                                                                                                                                                                                                                                                                                !appl_207 <- kl_Parse_shen_LBactionRB `pseq` hd kl_Parse_shen_LBactionRB+                                                                                                                                                                                                                                                                                                                !appl_208 <- appl_207 `pseq` tl appl_207+                                                                                                                                                                                                                                                                                                                let !aw_209 = Core.Types.Atom (Core.Types.UnboundSym "shen.hdtl")+                                                                                                                                                                                                                                                                                                                !appl_210 <- kl_Parse_shen_LBactionRB `pseq` applyWrapper aw_209 [kl_Parse_shen_LBactionRB]+                                                                                                                                                                                                                                                                                                                let !aw_211 = Core.Types.Atom (Core.Types.UnboundSym "shen.pair")+                                                                                                                                                                                                                                                                                                                !appl_212 <- appl_208 `pseq` (appl_210 `pseq` applyWrapper aw_211 [appl_208,+                                                                                                                                                                                                                                                                                                                                                                                   appl_210])+                                                                                                                                                                                                                                                                                                                !appl_213 <- appl_212 `pseq` kl_shen_LBguardRB appl_212+                                                                                                                                                                                                                                                                                                                appl_213 `pseq` applyWrapper appl_185 [appl_213]+                                                                                                                                                                                                                                                                                          Atom (B (False)) -> do do let !aw_214 = Core.Types.Atom (Core.Types.UnboundSym "fail")+                                                                                                                                                                                                                                                                                                                    applyWrapper aw_214 []+                                                                                                                                                                                                                                                                                          _ -> throwError "if: expected boolean"+                                                                                                                                                                                                                                                                Atom (B (False)) -> do do let !aw_215 = Core.Types.Atom (Core.Types.UnboundSym "fail")+                                                                                                                                                                                                                                                                                          applyWrapper aw_215 []+                                                                                                                                                                                                                                                                _ -> throwError "if: expected boolean")))+                                                                                                                                                                          !appl_216 <- kl_Parse_shen_LBpatternsRB `pseq` hd kl_Parse_shen_LBpatternsRB+                                                                                                                                                                          !appl_217 <- appl_216 `pseq` tl appl_216+                                                                                                                                                                          let !aw_218 = Core.Types.Atom (Core.Types.UnboundSym "shen.hdtl")+                                                                                                                                                                          !appl_219 <- kl_Parse_shen_LBpatternsRB `pseq` applyWrapper aw_218 [kl_Parse_shen_LBpatternsRB]+                                                                                                                                                                          let !aw_220 = Core.Types.Atom (Core.Types.UnboundSym "shen.pair")+                                                                                                                                                                          !appl_221 <- appl_217 `pseq` (appl_219 `pseq` applyWrapper aw_220 [appl_217,+                                                                                                                                                                                                                                             appl_219])+                                                                                                                                                                          !appl_222 <- appl_221 `pseq` kl_shen_LBactionRB appl_221+                                                                                                                                                                          appl_222 `pseq` applyWrapper appl_173 [appl_222]+                                                                                                                                                    Atom (B (False)) -> do do let !aw_223 = Core.Types.Atom (Core.Types.UnboundSym "fail")+                                                                                                                                                                              applyWrapper aw_223 []+                                                                                                                                                    _ -> throwError "if: expected boolean"+                                                                                                                          Atom (B (False)) -> do do let !aw_224 = Core.Types.Atom (Core.Types.UnboundSym "fail")+                                                                                                                                                    applyWrapper aw_224 []+                                                                                                                          _ -> throwError "if: expected boolean")))+                                  !appl_225 <- kl_V1218 `pseq` kl_shen_LBpatternsRB kl_V1218+                                  !appl_226 <- appl_225 `pseq` applyWrapper appl_161 [appl_225]+                                  appl_226 `pseq` applyWrapper appl_0 [appl_226]++kl_shen_fail_if :: Core.Types.KLValue ->+                   Core.Types.KLValue ->+                   Core.Types.KLContext Core.Types.Env Core.Types.KLValue+kl_shen_fail_if (!kl_V1221) (!kl_V1222) = do !kl_if_0 <- kl_V1222 `pseq` applyWrapper kl_V1221 [kl_V1222]+                                             case kl_if_0 of+                                                 Atom (B (True)) -> do let !aw_1 = Core.Types.Atom (Core.Types.UnboundSym "fail")+                                                                       applyWrapper aw_1 []+                                                 Atom (B (False)) -> do do return kl_V1222+                                                 _ -> throwError "if: expected boolean"++kl_shen_succeedsP :: Core.Types.KLValue ->+                     Core.Types.KLContext Core.Types.Env Core.Types.KLValue+kl_shen_succeedsP (!kl_V1228) = do let !aw_0 = Core.Types.Atom (Core.Types.UnboundSym "fail")+                                   !appl_1 <- applyWrapper aw_0 []+                                   !kl_if_2 <- kl_V1228 `pseq` (appl_1 `pseq` eq kl_V1228 appl_1)+                                   case kl_if_2 of+                                       Atom (B (True)) -> do return (Atom (B False))+                                       Atom (B (False)) -> do do return (Atom (B True))+                                       _ -> throwError "if: expected boolean"++kl_shen_LBpatternsRB :: Core.Types.KLValue ->+                        Core.Types.KLContext Core.Types.Env Core.Types.KLValue+kl_shen_LBpatternsRB (!kl_V1230) = do let !appl_0 = ApplC (Func "lambda" (Context (\(!kl_YaccParse) -> do let !aw_1 = Core.Types.Atom (Core.Types.UnboundSym "fail")+                                                                                                          !appl_2 <- applyWrapper aw_1 []+                                                                                                          !kl_if_3 <- kl_YaccParse `pseq` (appl_2 `pseq` eq kl_YaccParse appl_2)+                                                                                                          case kl_if_3 of+                                                                                                              Atom (B (True)) -> do let !appl_4 = ApplC (Func "lambda" (Context (\(!kl_Parse_LBeRB) -> do let !aw_5 = Core.Types.Atom (Core.Types.UnboundSym "fail")+                                                                                                                                                                                                          !appl_6 <- applyWrapper aw_5 []+                                                                                                                                                                                                          !appl_7 <- appl_6 `pseq` (kl_Parse_LBeRB `pseq` eq appl_6 kl_Parse_LBeRB)+                                                                                                                                                                                                          let !aw_8 = Core.Types.Atom (Core.Types.UnboundSym "not")+                                                                                                                                                                                                          !kl_if_9 <- appl_7 `pseq` applyWrapper aw_8 [appl_7]+                                                                                                                                                                                                          case kl_if_9 of+                                                                                                                                                                                                              Atom (B (True)) -> do !appl_10 <- kl_Parse_LBeRB `pseq` hd kl_Parse_LBeRB+                                                                                                                                                                                                                                    let !appl_11 = Atom Nil+                                                                                                                                                                                                                                    let !aw_12 = Core.Types.Atom (Core.Types.UnboundSym "shen.pair")+                                                                                                                                                                                                                                    appl_10 `pseq` (appl_11 `pseq` applyWrapper aw_12 [appl_10,+                                                                                                                                                                                                                                                                                       appl_11])+                                                                                                                                                                                                              Atom (B (False)) -> do do let !aw_13 = Core.Types.Atom (Core.Types.UnboundSym "fail")+                                                                                                                                                                                                                                        applyWrapper aw_13 []+                                                                                                                                                                                                              _ -> throwError "if: expected boolean")))+                                                                                                                                    let !aw_14 = Core.Types.Atom (Core.Types.UnboundSym "<e>")+                                                                                                                                    !appl_15 <- kl_V1230 `pseq` applyWrapper aw_14 [kl_V1230]+                                                                                                                                    appl_15 `pseq` applyWrapper appl_4 [appl_15]+                                                                                                              Atom (B (False)) -> do do return kl_YaccParse+                                                                                                              _ -> throwError "if: expected boolean")))+                                      let !appl_16 = ApplC (Func "lambda" (Context (\(!kl_Parse_shen_LBpatternRB) -> do let !aw_17 = Core.Types.Atom (Core.Types.UnboundSym "fail")+                                                                                                                        !appl_18 <- applyWrapper aw_17 []+                                                                                                                        !appl_19 <- appl_18 `pseq` (kl_Parse_shen_LBpatternRB `pseq` eq appl_18 kl_Parse_shen_LBpatternRB)+                                                                                                                        let !aw_20 = Core.Types.Atom (Core.Types.UnboundSym "not")+                                                                                                                        !kl_if_21 <- appl_19 `pseq` applyWrapper aw_20 [appl_19]+                                                                                                                        case kl_if_21 of+                                                                                                                            Atom (B (True)) -> do let !appl_22 = ApplC (Func "lambda" (Context (\(!kl_Parse_shen_LBpatternsRB) -> do let !aw_23 = Core.Types.Atom (Core.Types.UnboundSym "fail")+                                                                                                                                                                                                                                     !appl_24 <- applyWrapper aw_23 []+                                                                                                                                                                                                                                     !appl_25 <- appl_24 `pseq` (kl_Parse_shen_LBpatternsRB `pseq` eq appl_24 kl_Parse_shen_LBpatternsRB)+                                                                                                                                                                                                                                     let !aw_26 = Core.Types.Atom (Core.Types.UnboundSym "not")+                                                                                                                                                                                                                                     !kl_if_27 <- appl_25 `pseq` applyWrapper aw_26 [appl_25]+                                                                                                                                                                                                                                     case kl_if_27 of+                                                                                                                                                                                                                                         Atom (B (True)) -> do !appl_28 <- kl_Parse_shen_LBpatternsRB `pseq` hd kl_Parse_shen_LBpatternsRB+                                                                                                                                                                                                                                                               let !aw_29 = Core.Types.Atom (Core.Types.UnboundSym "shen.hdtl")+                                                                                                                                                                                                                                                               !appl_30 <- kl_Parse_shen_LBpatternRB `pseq` applyWrapper aw_29 [kl_Parse_shen_LBpatternRB]+                                                                                                                                                                                                                                                               let !aw_31 = Core.Types.Atom (Core.Types.UnboundSym "shen.hdtl")+                                                                                                                                                                                                                                                               !appl_32 <- kl_Parse_shen_LBpatternsRB `pseq` applyWrapper aw_31 [kl_Parse_shen_LBpatternsRB]+                                                                                                                                                                                                                                                               !appl_33 <- appl_30 `pseq` (appl_32 `pseq` klCons appl_30 appl_32)+                                                                                                                                                                                                                                                               let !aw_34 = Core.Types.Atom (Core.Types.UnboundSym "shen.pair")+                                                                                                                                                                                                                                                               appl_28 `pseq` (appl_33 `pseq` applyWrapper aw_34 [appl_28,+                                                                                                                                                                                                                                                                                                                  appl_33])+                                                                                                                                                                                                                                         Atom (B (False)) -> do do let !aw_35 = Core.Types.Atom (Core.Types.UnboundSym "fail")+                                                                                                                                                                                                                                                                   applyWrapper aw_35 []+                                                                                                                                                                                                                                         _ -> throwError "if: expected boolean")))+                                                                                                                                                  !appl_36 <- kl_Parse_shen_LBpatternRB `pseq` kl_shen_LBpatternsRB kl_Parse_shen_LBpatternRB+                                                                                                                                                  appl_36 `pseq` applyWrapper appl_22 [appl_36]+                                                                                                                            Atom (B (False)) -> do do let !aw_37 = Core.Types.Atom (Core.Types.UnboundSym "fail")+                                                                                                                                                      applyWrapper aw_37 []+                                                                                                                            _ -> throwError "if: expected boolean")))+                                      !appl_38 <- kl_V1230 `pseq` kl_shen_LBpatternRB kl_V1230+                                      !appl_39 <- appl_38 `pseq` applyWrapper appl_16 [appl_38]+                                      appl_39 `pseq` applyWrapper appl_0 [appl_39]++kl_shen_LBpatternRB :: Core.Types.KLValue ->+                       Core.Types.KLContext Core.Types.Env Core.Types.KLValue+kl_shen_LBpatternRB (!kl_V1237) = do let !appl_0 = ApplC (Func "lambda" (Context (\(!kl_YaccParse) -> do let !aw_1 = Core.Types.Atom (Core.Types.UnboundSym "fail")+                                                                                                         !appl_2 <- applyWrapper aw_1 []+                                                                                                         !kl_if_3 <- kl_YaccParse `pseq` (appl_2 `pseq` eq kl_YaccParse appl_2)+                                                                                                         case kl_if_3 of+                                                                                                             Atom (B (True)) -> do let !appl_4 = ApplC (Func "lambda" (Context (\(!kl_YaccParse) -> do let !aw_5 = Core.Types.Atom (Core.Types.UnboundSym "fail")+                                                                                                                                                                                                       !appl_6 <- applyWrapper aw_5 []+                                                                                                                                                                                                       !kl_if_7 <- kl_YaccParse `pseq` (appl_6 `pseq` eq kl_YaccParse appl_6)+                                                                                                                                                                                                       case kl_if_7 of+                                                                                                                                                                                                           Atom (B (True)) -> do let !appl_8 = ApplC (Func "lambda" (Context (\(!kl_YaccParse) -> do let !aw_9 = Core.Types.Atom (Core.Types.UnboundSym "fail")+                                                                                                                                                                                                                                                                                                     !appl_10 <- applyWrapper aw_9 []+                                                                                                                                                                                                                                                                                                     !kl_if_11 <- kl_YaccParse `pseq` (appl_10 `pseq` eq kl_YaccParse appl_10)+                                                                                                                                                                                                                                                                                                     case kl_if_11 of+                                                                                                                                                                                                                                                                                                         Atom (B (True)) -> do let !appl_12 = ApplC (Func "lambda" (Context (\(!kl_YaccParse) -> do let !aw_13 = Core.Types.Atom (Core.Types.UnboundSym "fail")+                                                                                                                                                                                                                                                                                                                                                                                                    !appl_14 <- applyWrapper aw_13 []+                                                                                                                                                                                                                                                                                                                                                                                                    !kl_if_15 <- kl_YaccParse `pseq` (appl_14 `pseq` eq kl_YaccParse appl_14)+                                                                                                                                                                                                                                                                                                                                                                                                    case kl_if_15 of+                                                                                                                                                                                                                                                                                                                                                                                                        Atom (B (True)) -> do let !appl_16 = ApplC (Func "lambda" (Context (\(!kl_YaccParse) -> do let !aw_17 = Core.Types.Atom (Core.Types.UnboundSym "fail")+                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                   !appl_18 <- applyWrapper aw_17 []+                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                   !kl_if_19 <- kl_YaccParse `pseq` (appl_18 `pseq` eq kl_YaccParse appl_18)+                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                   case kl_if_19 of+                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                       Atom (B (True)) -> do let !appl_20 = ApplC (Func "lambda" (Context (\(!kl_YaccParse) -> do let !aw_21 = Core.Types.Atom (Core.Types.UnboundSym "fail")+                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                  !appl_22 <- applyWrapper aw_21 []+                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                  !kl_if_23 <- kl_YaccParse `pseq` (appl_22 `pseq` eq kl_YaccParse appl_22)+                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                  case kl_if_23 of+                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                      Atom (B (True)) -> do let !appl_24 = ApplC (Func "lambda" (Context (\(!kl_Parse_shen_LBsimple_patternRB) -> do let !aw_25 = Core.Types.Atom (Core.Types.UnboundSym "fail")+                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                     !appl_26 <- applyWrapper aw_25 []+                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                     !appl_27 <- appl_26 `pseq` (kl_Parse_shen_LBsimple_patternRB `pseq` eq appl_26 kl_Parse_shen_LBsimple_patternRB)+                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                     let !aw_28 = Core.Types.Atom (Core.Types.UnboundSym "not")+                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                     !kl_if_29 <- appl_27 `pseq` applyWrapper aw_28 [appl_27]+                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                     case kl_if_29 of+                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                         Atom (B (True)) -> do !appl_30 <- kl_Parse_shen_LBsimple_patternRB `pseq` hd kl_Parse_shen_LBsimple_patternRB+                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                               let !aw_31 = Core.Types.Atom (Core.Types.UnboundSym "shen.hdtl")+                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                               !appl_32 <- kl_Parse_shen_LBsimple_patternRB `pseq` applyWrapper aw_31 [kl_Parse_shen_LBsimple_patternRB]+                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                               let !aw_33 = Core.Types.Atom (Core.Types.UnboundSym "shen.pair")+                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                               appl_30 `pseq` (appl_32 `pseq` applyWrapper aw_33 [appl_30,+                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                  appl_32])+                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                         Atom (B (False)) -> do do let !aw_34 = Core.Types.Atom (Core.Types.UnboundSym "fail")+                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                   applyWrapper aw_34 []+                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                         _ -> throwError "if: expected boolean")))+                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                            !appl_35 <- kl_V1237 `pseq` kl_shen_LBsimple_patternRB kl_V1237+                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                            appl_35 `pseq` applyWrapper appl_24 [appl_35]+                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                      Atom (B (False)) -> do do return kl_YaccParse+                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                      _ -> throwError "if: expected boolean")))+                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                             !appl_36 <- kl_V1237 `pseq` hd kl_V1237+                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                             !kl_if_37 <- appl_36 `pseq` consP appl_36+                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                             !appl_38 <- case kl_if_37 of+                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                             Atom (B (True)) -> do let !appl_39 = ApplC (Func "lambda" (Context (\(!kl_Parse_X) -> do let pat_cond_40 kl_Parse_X kl_Parse_Xh kl_Parse_Xt = do !appl_41 <- kl_V1237 `pseq` hd kl_V1237+                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                              !appl_42 <- appl_41 `pseq` tl appl_41+                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                              let !aw_43 = Core.Types.Atom (Core.Types.UnboundSym "shen.hdtl")+                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                              !appl_44 <- kl_V1237 `pseq` applyWrapper aw_43 [kl_V1237]+                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                              let !aw_45 = Core.Types.Atom (Core.Types.UnboundSym "shen.pair")+                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                              !appl_46 <- appl_42 `pseq` (appl_44 `pseq` applyWrapper aw_45 [appl_42,+                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                             appl_44])+                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                              !appl_47 <- appl_46 `pseq` hd appl_46+                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                              !appl_48 <- kl_Parse_X `pseq` kl_shen_constructor_error kl_Parse_X+                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                              let !aw_49 = Core.Types.Atom (Core.Types.UnboundSym "shen.pair")+                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                              appl_47 `pseq` (appl_48 `pseq` applyWrapper aw_49 [appl_47,+                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                 appl_48])+                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                          pat_cond_50 = do do let !aw_51 = Core.Types.Atom (Core.Types.UnboundSym "fail")+                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                              applyWrapper aw_51 []+                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                       in case kl_Parse_X of+                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                              !(kl_Parse_X@(Cons (!kl_Parse_Xh)+                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                 (!kl_Parse_Xt))) -> pat_cond_40 kl_Parse_X kl_Parse_Xh kl_Parse_Xt+                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                              _ -> pat_cond_50)))+                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                   !appl_52 <- kl_V1237 `pseq` hd kl_V1237+                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                   !appl_53 <- appl_52 `pseq` hd appl_52+                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                   appl_53 `pseq` applyWrapper appl_39 [appl_53]+                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                             Atom (B (False)) -> do do let !aw_54 = Core.Types.Atom (Core.Types.UnboundSym "fail")+                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                       applyWrapper aw_54 []+                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                             _ -> throwError "if: expected boolean"+                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                             appl_38 `pseq` applyWrapper appl_20 [appl_38]+                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                       Atom (B (False)) -> do do return kl_YaccParse+                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                       _ -> throwError "if: expected boolean")))+                                                                                                                                                                                                                                                                                                                                                                                                                              !appl_55 <- kl_V1237 `pseq` hd kl_V1237+                                                                                                                                                                                                                                                                                                                                                                                                                              !kl_if_56 <- appl_55 `pseq` consP appl_55+                                                                                                                                                                                                                                                                                                                                                                                                                              !kl_if_57 <- case kl_if_56 of+                                                                                                                                                                                                                                                                                                                                                                                                                                               Atom (B (True)) -> do !appl_58 <- kl_V1237 `pseq` hd kl_V1237+                                                                                                                                                                                                                                                                                                                                                                                                                                                                     !appl_59 <- appl_58 `pseq` hd appl_58+                                                                                                                                                                                                                                                                                                                                                                                                                                                                     !kl_if_60 <- appl_59 `pseq` consP appl_59+                                                                                                                                                                                                                                                                                                                                                                                                                                                                     case kl_if_60 of+                                                                                                                                                                                                                                                                                                                                                                                                                                                                         Atom (B (True)) -> do return (Atom (B True))+                                                                                                                                                                                                                                                                                                                                                                                                                                                                         Atom (B (False)) -> do do return (Atom (B False))+                                                                                                                                                                                                                                                                                                                                                                                                                                                                         _ -> throwError "if: expected boolean"+                                                                                                                                                                                                                                                                                                                                                                                                                                               Atom (B (False)) -> do do return (Atom (B False))+                                                                                                                                                                                                                                                                                                                                                                                                                                               _ -> throwError "if: expected boolean"+                                                                                                                                                                                                                                                                                                                                                                                                                              !appl_61 <- case kl_if_57 of+                                                                                                                                                                                                                                                                                                                                                                                                                                              Atom (B (True)) -> do !appl_62 <- kl_V1237 `pseq` hd kl_V1237+                                                                                                                                                                                                                                                                                                                                                                                                                                                                    !appl_63 <- appl_62 `pseq` hd appl_62+                                                                                                                                                                                                                                                                                                                                                                                                                                                                    !appl_64 <- kl_V1237 `pseq` tl kl_V1237+                                                                                                                                                                                                                                                                                                                                                                                                                                                                    !appl_65 <- appl_64 `pseq` hd appl_64+                                                                                                                                                                                                                                                                                                                                                                                                                                                                    let !aw_66 = Core.Types.Atom (Core.Types.UnboundSym "shen.pair")+                                                                                                                                                                                                                                                                                                                                                                                                                                                                    !appl_67 <- appl_63 `pseq` (appl_65 `pseq` applyWrapper aw_66 [appl_63,+                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                   appl_65])+                                                                                                                                                                                                                                                                                                                                                                                                                                                                    !appl_68 <- appl_67 `pseq` hd appl_67+                                                                                                                                                                                                                                                                                                                                                                                                                                                                    !kl_if_69 <- appl_68 `pseq` consP appl_68+                                                                                                                                                                                                                                                                                                                                                                                                                                                                    !kl_if_70 <- case kl_if_69 of+                                                                                                                                                                                                                                                                                                                                                                                                                                                                                     Atom (B (True)) -> do !appl_71 <- kl_V1237 `pseq` hd kl_V1237+                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                           !appl_72 <- appl_71 `pseq` hd appl_71+                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                           !appl_73 <- kl_V1237 `pseq` tl kl_V1237+                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                           !appl_74 <- appl_73 `pseq` hd appl_73+                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                           let !aw_75 = Core.Types.Atom (Core.Types.UnboundSym "shen.pair")+                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                           !appl_76 <- appl_72 `pseq` (appl_74 `pseq` applyWrapper aw_75 [appl_72,+                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                          appl_74])+                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                           !appl_77 <- appl_76 `pseq` hd appl_76+                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                           !appl_78 <- appl_77 `pseq` hd appl_77+                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                           !kl_if_79 <- appl_78 `pseq` eq (Core.Types.Atom (Core.Types.UnboundSym "vector")) appl_78+                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                           case kl_if_79 of+                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                               Atom (B (True)) -> do return (Atom (B True))+                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                               Atom (B (False)) -> do do return (Atom (B False))+                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                               _ -> throwError "if: expected boolean"+                                                                                                                                                                                                                                                                                                                                                                                                                                                                                     Atom (B (False)) -> do do return (Atom (B False))+                                                                                                                                                                                                                                                                                                                                                                                                                                                                                     _ -> throwError "if: expected boolean"+                                                                                                                                                                                                                                                                                                                                                                                                                                                                    case kl_if_70 of+                                                                                                                                                                                                                                                                                                                                                                                                                                                                        Atom (B (True)) -> do !appl_80 <- kl_V1237 `pseq` hd kl_V1237+                                                                                                                                                                                                                                                                                                                                                                                                                                                                                              !appl_81 <- appl_80 `pseq` hd appl_80+                                                                                                                                                                                                                                                                                                                                                                                                                                                                                              !appl_82 <- kl_V1237 `pseq` tl kl_V1237+                                                                                                                                                                                                                                                                                                                                                                                                                                                                                              !appl_83 <- appl_82 `pseq` hd appl_82+                                                                                                                                                                                                                                                                                                                                                                                                                                                                                              let !aw_84 = Core.Types.Atom (Core.Types.UnboundSym "shen.pair")+                                                                                                                                                                                                                                                                                                                                                                                                                                                                                              !appl_85 <- appl_81 `pseq` (appl_83 `pseq` applyWrapper aw_84 [appl_81,+                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                             appl_83])+                                                                                                                                                                                                                                                                                                                                                                                                                                                                                              !appl_86 <- appl_85 `pseq` hd appl_85+                                                                                                                                                                                                                                                                                                                                                                                                                                                                                              !appl_87 <- appl_86 `pseq` tl appl_86+                                                                                                                                                                                                                                                                                                                                                                                                                                                                                              !appl_88 <- kl_V1237 `pseq` hd kl_V1237+                                                                                                                                                                                                                                                                                                                                                                                                                                                                                              !appl_89 <- appl_88 `pseq` hd appl_88+                                                                                                                                                                                                                                                                                                                                                                                                                                                                                              !appl_90 <- kl_V1237 `pseq` tl kl_V1237+                                                                                                                                                                                                                                                                                                                                                                                                                                                                                              !appl_91 <- appl_90 `pseq` hd appl_90+                                                                                                                                                                                                                                                                                                                                                                                                                                                                                              let !aw_92 = Core.Types.Atom (Core.Types.UnboundSym "shen.pair")+                                                                                                                                                                                                                                                                                                                                                                                                                                                                                              !appl_93 <- appl_89 `pseq` (appl_91 `pseq` applyWrapper aw_92 [appl_89,+                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                             appl_91])+                                                                                                                                                                                                                                                                                                                                                                                                                                                                                              let !aw_94 = Core.Types.Atom (Core.Types.UnboundSym "shen.hdtl")+                                                                                                                                                                                                                                                                                                                                                                                                                                                                                              !appl_95 <- appl_93 `pseq` applyWrapper aw_94 [appl_93]+                                                                                                                                                                                                                                                                                                                                                                                                                                                                                              let !aw_96 = Core.Types.Atom (Core.Types.UnboundSym "shen.pair")+                                                                                                                                                                                                                                                                                                                                                                                                                                                                                              !appl_97 <- appl_87 `pseq` (appl_95 `pseq` applyWrapper aw_96 [appl_87,+                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                             appl_95])+                                                                                                                                                                                                                                                                                                                                                                                                                                                                                              !appl_98 <- appl_97 `pseq` hd appl_97+                                                                                                                                                                                                                                                                                                                                                                                                                                                                                              !kl_if_99 <- appl_98 `pseq` consP appl_98+                                                                                                                                                                                                                                                                                                                                                                                                                                                                                              !kl_if_100 <- case kl_if_99 of+                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                Atom (B (True)) -> do !appl_101 <- kl_V1237 `pseq` hd kl_V1237+                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                      !appl_102 <- appl_101 `pseq` hd appl_101+                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                      !appl_103 <- kl_V1237 `pseq` tl kl_V1237+                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                      !appl_104 <- appl_103 `pseq` hd appl_103+                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                      let !aw_105 = Core.Types.Atom (Core.Types.UnboundSym "shen.pair")+                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                      !appl_106 <- appl_102 `pseq` (appl_104 `pseq` applyWrapper aw_105 [appl_102,+                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                         appl_104])+                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                      !appl_107 <- appl_106 `pseq` hd appl_106+                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                      !appl_108 <- appl_107 `pseq` tl appl_107+                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                      !appl_109 <- kl_V1237 `pseq` hd kl_V1237+                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                      !appl_110 <- appl_109 `pseq` hd appl_109+                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                      !appl_111 <- kl_V1237 `pseq` tl kl_V1237+                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                      !appl_112 <- appl_111 `pseq` hd appl_111+                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                      let !aw_113 = Core.Types.Atom (Core.Types.UnboundSym "shen.pair")+                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                      !appl_114 <- appl_110 `pseq` (appl_112 `pseq` applyWrapper aw_113 [appl_110,+                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                         appl_112])+                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                      let !aw_115 = Core.Types.Atom (Core.Types.UnboundSym "shen.hdtl")+                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                      !appl_116 <- appl_114 `pseq` applyWrapper aw_115 [appl_114]+                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                      let !aw_117 = Core.Types.Atom (Core.Types.UnboundSym "shen.pair")+                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                      !appl_118 <- appl_108 `pseq` (appl_116 `pseq` applyWrapper aw_117 [appl_108,+                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                         appl_116])+                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                      !appl_119 <- appl_118 `pseq` hd appl_118+                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                      !appl_120 <- appl_119 `pseq` hd appl_119+                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                      !kl_if_121 <- appl_120 `pseq` eq (Core.Types.Atom (Core.Types.N (Core.Types.KI 0))) appl_120+                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                      case kl_if_121 of+                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                          Atom (B (True)) -> do return (Atom (B True))+                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                          Atom (B (False)) -> do do return (Atom (B False))+                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                          _ -> throwError "if: expected boolean"+                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                Atom (B (False)) -> do do return (Atom (B False))+                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                _ -> throwError "if: expected boolean"+                                                                                                                                                                                                                                                                                                                                                                                                                                                                                              case kl_if_100 of+                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                  Atom (B (True)) -> do !appl_122 <- kl_V1237 `pseq` hd kl_V1237+                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                        !appl_123 <- appl_122 `pseq` tl appl_122+                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                        !appl_124 <- kl_V1237 `pseq` tl kl_V1237+                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                        !appl_125 <- appl_124 `pseq` hd appl_124+                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                        let !aw_126 = Core.Types.Atom (Core.Types.UnboundSym "shen.pair")+                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                        !appl_127 <- appl_123 `pseq` (appl_125 `pseq` applyWrapper aw_126 [appl_123,+                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                           appl_125])+                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                        !appl_128 <- appl_127 `pseq` hd appl_127+                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                        let !appl_129 = Atom Nil+                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                        !appl_130 <- appl_129 `pseq` klCons (Core.Types.Atom (Core.Types.N (Core.Types.KI 0))) appl_129+                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                        !appl_131 <- appl_130 `pseq` klCons (Core.Types.Atom (Core.Types.UnboundSym "vector")) appl_130+                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                        let !aw_132 = Core.Types.Atom (Core.Types.UnboundSym "shen.pair")+                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                        appl_128 `pseq` (appl_131 `pseq` applyWrapper aw_132 [appl_128,+                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                              appl_131])+                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                  Atom (B (False)) -> do do let !aw_133 = Core.Types.Atom (Core.Types.UnboundSym "fail")+                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                            applyWrapper aw_133 []+                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                  _ -> throwError "if: expected boolean"+                                                                                                                                                                                                                                                                                                                                                                                                                                                                        Atom (B (False)) -> do do let !aw_134 = Core.Types.Atom (Core.Types.UnboundSym "fail")+                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                  applyWrapper aw_134 []+                                                                                                                                                                                                                                                                                                                                                                                                                                                                        _ -> throwError "if: expected boolean"+                                                                                                                                                                                                                                                                                                                                                                                                                                              Atom (B (False)) -> do do let !aw_135 = Core.Types.Atom (Core.Types.UnboundSym "fail")+                                                                                                                                                                                                                                                                                                                                                                                                                                                                        applyWrapper aw_135 []+                                                                                                                                                                                                                                                                                                                                                                                                                                              _ -> throwError "if: expected boolean"+                                                                                                                                                                                                                                                                                                                                                                                                                              appl_61 `pseq` applyWrapper appl_16 [appl_61]+                                                                                                                                                                                                                                                                                                                                                                                                        Atom (B (False)) -> do do return kl_YaccParse+                                                                                                                                                                                                                                                                                                                                                                                                        _ -> throwError "if: expected boolean")))+                                                                                                                                                                                                                                                                                                                               !appl_136 <- kl_V1237 `pseq` hd kl_V1237+                                                                                                                                                                                                                                                                                                                               !kl_if_137 <- appl_136 `pseq` consP appl_136+                                                                                                                                                                                                                                                                                                                               !kl_if_138 <- case kl_if_137 of+                                                                                                                                                                                                                                                                                                                                                 Atom (B (True)) -> do !appl_139 <- kl_V1237 `pseq` hd kl_V1237+                                                                                                                                                                                                                                                                                                                                                                       !appl_140 <- appl_139 `pseq` hd appl_139+                                                                                                                                                                                                                                                                                                                                                                       !kl_if_141 <- appl_140 `pseq` consP appl_140+                                                                                                                                                                                                                                                                                                                                                                       case kl_if_141 of+                                                                                                                                                                                                                                                                                                                                                                           Atom (B (True)) -> do return (Atom (B True))+                                                                                                                                                                                                                                                                                                                                                                           Atom (B (False)) -> do do return (Atom (B False))+                                                                                                                                                                                                                                                                                                                                                                           _ -> throwError "if: expected boolean"+                                                                                                                                                                                                                                                                                                                                                 Atom (B (False)) -> do do return (Atom (B False))+                                                                                                                                                                                                                                                                                                                                                 _ -> throwError "if: expected boolean"+                                                                                                                                                                                                                                                                                                                               !appl_142 <- case kl_if_138 of+                                                                                                                                                                                                                                                                                                                                                Atom (B (True)) -> do !appl_143 <- kl_V1237 `pseq` hd kl_V1237+                                                                                                                                                                                                                                                                                                                                                                      !appl_144 <- appl_143 `pseq` hd appl_143+                                                                                                                                                                                                                                                                                                                                                                      !appl_145 <- kl_V1237 `pseq` tl kl_V1237+                                                                                                                                                                                                                                                                                                                                                                      !appl_146 <- appl_145 `pseq` hd appl_145+                                                                                                                                                                                                                                                                                                                                                                      let !aw_147 = Core.Types.Atom (Core.Types.UnboundSym "shen.pair")+                                                                                                                                                                                                                                                                                                                                                                      !appl_148 <- appl_144 `pseq` (appl_146 `pseq` applyWrapper aw_147 [appl_144,+                                                                                                                                                                                                                                                                                                                                                                                                                                         appl_146])+                                                                                                                                                                                                                                                                                                                                                                      !appl_149 <- appl_148 `pseq` hd appl_148+                                                                                                                                                                                                                                                                                                                                                                      !kl_if_150 <- appl_149 `pseq` consP appl_149+                                                                                                                                                                                                                                                                                                                                                                      !kl_if_151 <- case kl_if_150 of+                                                                                                                                                                                                                                                                                                                                                                                        Atom (B (True)) -> do !appl_152 <- kl_V1237 `pseq` hd kl_V1237+                                                                                                                                                                                                                                                                                                                                                                                                              !appl_153 <- appl_152 `pseq` hd appl_152+                                                                                                                                                                                                                                                                                                                                                                                                              !appl_154 <- kl_V1237 `pseq` tl kl_V1237+                                                                                                                                                                                                                                                                                                                                                                                                              !appl_155 <- appl_154 `pseq` hd appl_154+                                                                                                                                                                                                                                                                                                                                                                                                              let !aw_156 = Core.Types.Atom (Core.Types.UnboundSym "shen.pair")+                                                                                                                                                                                                                                                                                                                                                                                                              !appl_157 <- appl_153 `pseq` (appl_155 `pseq` applyWrapper aw_156 [appl_153,+                                                                                                                                                                                                                                                                                                                                                                                                                                                                                 appl_155])+                                                                                                                                                                                                                                                                                                                                                                                                              !appl_158 <- appl_157 `pseq` hd appl_157+                                                                                                                                                                                                                                                                                                                                                                                                              !appl_159 <- appl_158 `pseq` hd appl_158+                                                                                                                                                                                                                                                                                                                                                                                                              !kl_if_160 <- appl_159 `pseq` eq (Core.Types.Atom (Core.Types.UnboundSym "@s")) appl_159+                                                                                                                                                                                                                                                                                                                                                                                                              case kl_if_160 of+                                                                                                                                                                                                                                                                                                                                                                                                                  Atom (B (True)) -> do return (Atom (B True))+                                                                                                                                                                                                                                                                                                                                                                                                                  Atom (B (False)) -> do do return (Atom (B False))+                                                                                                                                                                                                                                                                                                                                                                                                                  _ -> throwError "if: expected boolean"+                                                                                                                                                                                                                                                                                                                                                                                        Atom (B (False)) -> do do return (Atom (B False))+                                                                                                                                                                                                                                                                                                                                                                                        _ -> throwError "if: expected boolean"+                                                                                                                                                                                                                                                                                                                                                                      case kl_if_151 of+                                                                                                                                                                                                                                                                                                                                                                          Atom (B (True)) -> do let !appl_161 = ApplC (Func "lambda" (Context (\(!kl_Parse_shen_LBpattern1RB) -> do let !aw_162 = Core.Types.Atom (Core.Types.UnboundSym "fail")+                                                                                                                                                                                                                                                                                                                                                                                                                                                                                    !appl_163 <- applyWrapper aw_162 []+                                                                                                                                                                                                                                                                                                                                                                                                                                                                                    !appl_164 <- appl_163 `pseq` (kl_Parse_shen_LBpattern1RB `pseq` eq appl_163 kl_Parse_shen_LBpattern1RB)+                                                                                                                                                                                                                                                                                                                                                                                                                                                                                    let !aw_165 = Core.Types.Atom (Core.Types.UnboundSym "not")+                                                                                                                                                                                                                                                                                                                                                                                                                                                                                    !kl_if_166 <- appl_164 `pseq` applyWrapper aw_165 [appl_164]+                                                                                                                                                                                                                                                                                                                                                                                                                                                                                    case kl_if_166 of+                                                                                                                                                                                                                                                                                                                                                                                                                                                                                        Atom (B (True)) -> do let !appl_167 = ApplC (Func "lambda" (Context (\(!kl_Parse_shen_LBpattern2RB) -> do let !aw_168 = Core.Types.Atom (Core.Types.UnboundSym "fail")+                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                  !appl_169 <- applyWrapper aw_168 []+                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                  !appl_170 <- appl_169 `pseq` (kl_Parse_shen_LBpattern2RB `pseq` eq appl_169 kl_Parse_shen_LBpattern2RB)+                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                  let !aw_171 = Core.Types.Atom (Core.Types.UnboundSym "not")+                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                  !kl_if_172 <- appl_170 `pseq` applyWrapper aw_171 [appl_170]+                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                  case kl_if_172 of+                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                      Atom (B (True)) -> do !appl_173 <- kl_V1237 `pseq` hd kl_V1237+                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                            !appl_174 <- appl_173 `pseq` tl appl_173+                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                            !appl_175 <- kl_V1237 `pseq` tl kl_V1237+                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                            !appl_176 <- appl_175 `pseq` hd appl_175+                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                            let !aw_177 = Core.Types.Atom (Core.Types.UnboundSym "shen.pair")+                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                            !appl_178 <- appl_174 `pseq` (appl_176 `pseq` applyWrapper aw_177 [appl_174,+                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                               appl_176])+                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                            !appl_179 <- appl_178 `pseq` hd appl_178+                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                            let !aw_180 = Core.Types.Atom (Core.Types.UnboundSym "shen.hdtl")+                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                            !appl_181 <- kl_Parse_shen_LBpattern1RB `pseq` applyWrapper aw_180 [kl_Parse_shen_LBpattern1RB]+                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                            let !aw_182 = Core.Types.Atom (Core.Types.UnboundSym "shen.hdtl")+                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                            !appl_183 <- kl_Parse_shen_LBpattern2RB `pseq` applyWrapper aw_182 [kl_Parse_shen_LBpattern2RB]+                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                            let !appl_184 = Atom Nil+                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                            !appl_185 <- appl_183 `pseq` (appl_184 `pseq` klCons appl_183 appl_184)+                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                            !appl_186 <- appl_181 `pseq` (appl_185 `pseq` klCons appl_181 appl_185)+                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                            !appl_187 <- appl_186 `pseq` klCons (Core.Types.Atom (Core.Types.UnboundSym "@s")) appl_186+                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                            let !aw_188 = Core.Types.Atom (Core.Types.UnboundSym "shen.pair")+                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                            appl_179 `pseq` (appl_187 `pseq` applyWrapper aw_188 [appl_179,+                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                  appl_187])+                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                      Atom (B (False)) -> do do let !aw_189 = Core.Types.Atom (Core.Types.UnboundSym "fail")+                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                applyWrapper aw_189 []+                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                      _ -> throwError "if: expected boolean")))+                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                              !appl_190 <- kl_Parse_shen_LBpattern1RB `pseq` kl_shen_LBpattern2RB kl_Parse_shen_LBpattern1RB+                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                              appl_190 `pseq` applyWrapper appl_167 [appl_190]+                                                                                                                                                                                                                                                                                                                                                                                                                                                                                        Atom (B (False)) -> do do let !aw_191 = Core.Types.Atom (Core.Types.UnboundSym "fail")+                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                  applyWrapper aw_191 []+                                                                                                                                                                                                                                                                                                                                                                                                                                                                                        _ -> throwError "if: expected boolean")))+                                                                                                                                                                                                                                                                                                                                                                                                !appl_192 <- kl_V1237 `pseq` hd kl_V1237+                                                                                                                                                                                                                                                                                                                                                                                                !appl_193 <- appl_192 `pseq` hd appl_192+                                                                                                                                                                                                                                                                                                                                                                                                !appl_194 <- kl_V1237 `pseq` tl kl_V1237+                                                                                                                                                                                                                                                                                                                                                                                                !appl_195 <- appl_194 `pseq` hd appl_194+                                                                                                                                                                                                                                                                                                                                                                                                let !aw_196 = Core.Types.Atom (Core.Types.UnboundSym "shen.pair")+                                                                                                                                                                                                                                                                                                                                                                                                !appl_197 <- appl_193 `pseq` (appl_195 `pseq` applyWrapper aw_196 [appl_193,+                                                                                                                                                                                                                                                                                                                                                                                                                                                                   appl_195])+                                                                                                                                                                                                                                                                                                                                                                                                !appl_198 <- appl_197 `pseq` hd appl_197+                                                                                                                                                                                                                                                                                                                                                                                                !appl_199 <- appl_198 `pseq` tl appl_198+                                                                                                                                                                                                                                                                                                                                                                                                !appl_200 <- kl_V1237 `pseq` hd kl_V1237+                                                                                                                                                                                                                                                                                                                                                                                                !appl_201 <- appl_200 `pseq` hd appl_200+                                                                                                                                                                                                                                                                                                                                                                                                !appl_202 <- kl_V1237 `pseq` tl kl_V1237+                                                                                                                                                                                                                                                                                                                                                                                                !appl_203 <- appl_202 `pseq` hd appl_202+                                                                                                                                                                                                                                                                                                                                                                                                let !aw_204 = Core.Types.Atom (Core.Types.UnboundSym "shen.pair")+                                                                                                                                                                                                                                                                                                                                                                                                !appl_205 <- appl_201 `pseq` (appl_203 `pseq` applyWrapper aw_204 [appl_201,+                                                                                                                                                                                                                                                                                                                                                                                                                                                                   appl_203])+                                                                                                                                                                                                                                                                                                                                                                                                let !aw_206 = Core.Types.Atom (Core.Types.UnboundSym "shen.hdtl")+                                                                                                                                                                                                                                                                                                                                                                                                !appl_207 <- appl_205 `pseq` applyWrapper aw_206 [appl_205]+                                                                                                                                                                                                                                                                                                                                                                                                let !aw_208 = Core.Types.Atom (Core.Types.UnboundSym "shen.pair")+                                                                                                                                                                                                                                                                                                                                                                                                !appl_209 <- appl_199 `pseq` (appl_207 `pseq` applyWrapper aw_208 [appl_199,+                                                                                                                                                                                                                                                                                                                                                                                                                                                                   appl_207])+                                                                                                                                                                                                                                                                                                                                                                                                !appl_210 <- appl_209 `pseq` kl_shen_LBpattern1RB appl_209+                                                                                                                                                                                                                                                                                                                                                                                                appl_210 `pseq` applyWrapper appl_161 [appl_210]+                                                                                                                                                                                                                                                                                                                                                                          Atom (B (False)) -> do do let !aw_211 = Core.Types.Atom (Core.Types.UnboundSym "fail")+                                                                                                                                                                                                                                                                                                                                                                                                    applyWrapper aw_211 []+                                                                                                                                                                                                                                                                                                                                                                          _ -> throwError "if: expected boolean"+                                                                                                                                                                                                                                                                                                                                                Atom (B (False)) -> do do let !aw_212 = Core.Types.Atom (Core.Types.UnboundSym "fail")+                                                                                                                                                                                                                                                                                                                                                                          applyWrapper aw_212 []+                                                                                                                                                                                                                                                                                                                                                _ -> throwError "if: expected boolean"+                                                                                                                                                                                                                                                                                                                               appl_142 `pseq` applyWrapper appl_12 [appl_142]+                                                                                                                                                                                                                                                                                                         Atom (B (False)) -> do do return kl_YaccParse+                                                                                                                                                                                                                                                                                                         _ -> throwError "if: expected boolean")))+                                                                                                                                                                                                                                 !appl_213 <- kl_V1237 `pseq` hd kl_V1237+                                                                                                                                                                                                                                 !kl_if_214 <- appl_213 `pseq` consP appl_213+                                                                                                                                                                                                                                 !kl_if_215 <- case kl_if_214 of+                                                                                                                                                                                                                                                   Atom (B (True)) -> do !appl_216 <- kl_V1237 `pseq` hd kl_V1237+                                                                                                                                                                                                                                                                         !appl_217 <- appl_216 `pseq` hd appl_216+                                                                                                                                                                                                                                                                         !kl_if_218 <- appl_217 `pseq` consP appl_217+                                                                                                                                                                                                                                                                         case kl_if_218 of+                                                                                                                                                                                                                                                                             Atom (B (True)) -> do return (Atom (B True))+                                                                                                                                                                                                                                                                             Atom (B (False)) -> do do return (Atom (B False))+                                                                                                                                                                                                                                                                             _ -> throwError "if: expected boolean"+                                                                                                                                                                                                                                                   Atom (B (False)) -> do do return (Atom (B False))+                                                                                                                                                                                                                                                   _ -> throwError "if: expected boolean"+                                                                                                                                                                                                                                 !appl_219 <- case kl_if_215 of+                                                                                                                                                                                                                                                  Atom (B (True)) -> do !appl_220 <- kl_V1237 `pseq` hd kl_V1237+                                                                                                                                                                                                                                                                        !appl_221 <- appl_220 `pseq` hd appl_220+                                                                                                                                                                                                                                                                        !appl_222 <- kl_V1237 `pseq` tl kl_V1237+                                                                                                                                                                                                                                                                        !appl_223 <- appl_222 `pseq` hd appl_222+                                                                                                                                                                                                                                                                        let !aw_224 = Core.Types.Atom (Core.Types.UnboundSym "shen.pair")+                                                                                                                                                                                                                                                                        !appl_225 <- appl_221 `pseq` (appl_223 `pseq` applyWrapper aw_224 [appl_221,+                                                                                                                                                                                                                                                                                                                                           appl_223])+                                                                                                                                                                                                                                                                        !appl_226 <- appl_225 `pseq` hd appl_225+                                                                                                                                                                                                                                                                        !kl_if_227 <- appl_226 `pseq` consP appl_226+                                                                                                                                                                                                                                                                        !kl_if_228 <- case kl_if_227 of+                                                                                                                                                                                                                                                                                          Atom (B (True)) -> do !appl_229 <- kl_V1237 `pseq` hd kl_V1237+                                                                                                                                                                                                                                                                                                                !appl_230 <- appl_229 `pseq` hd appl_229+                                                                                                                                                                                                                                                                                                                !appl_231 <- kl_V1237 `pseq` tl kl_V1237+                                                                                                                                                                                                                                                                                                                !appl_232 <- appl_231 `pseq` hd appl_231+                                                                                                                                                                                                                                                                                                                let !aw_233 = Core.Types.Atom (Core.Types.UnboundSym "shen.pair")+                                                                                                                                                                                                                                                                                                                !appl_234 <- appl_230 `pseq` (appl_232 `pseq` applyWrapper aw_233 [appl_230,+                                                                                                                                                                                                                                                                                                                                                                                   appl_232])+                                                                                                                                                                                                                                                                                                                !appl_235 <- appl_234 `pseq` hd appl_234+                                                                                                                                                                                                                                                                                                                !appl_236 <- appl_235 `pseq` hd appl_235+                                                                                                                                                                                                                                                                                                                !kl_if_237 <- appl_236 `pseq` eq (Core.Types.Atom (Core.Types.UnboundSym "@v")) appl_236+                                                                                                                                                                                                                                                                                                                case kl_if_237 of+                                                                                                                                                                                                                                                                                                                    Atom (B (True)) -> do return (Atom (B True))+                                                                                                                                                                                                                                                                                                                    Atom (B (False)) -> do do return (Atom (B False))+                                                                                                                                                                                                                                                                                                                    _ -> throwError "if: expected boolean"+                                                                                                                                                                                                                                                                                          Atom (B (False)) -> do do return (Atom (B False))+                                                                                                                                                                                                                                                                                          _ -> throwError "if: expected boolean"+                                                                                                                                                                                                                                                                        case kl_if_228 of+                                                                                                                                                                                                                                                                            Atom (B (True)) -> do let !appl_238 = ApplC (Func "lambda" (Context (\(!kl_Parse_shen_LBpattern1RB) -> do let !aw_239 = Core.Types.Atom (Core.Types.UnboundSym "fail")+                                                                                                                                                                                                                                                                                                                                                                                      !appl_240 <- applyWrapper aw_239 []+                                                                                                                                                                                                                                                                                                                                                                                      !appl_241 <- appl_240 `pseq` (kl_Parse_shen_LBpattern1RB `pseq` eq appl_240 kl_Parse_shen_LBpattern1RB)+                                                                                                                                                                                                                                                                                                                                                                                      let !aw_242 = Core.Types.Atom (Core.Types.UnboundSym "not")+                                                                                                                                                                                                                                                                                                                                                                                      !kl_if_243 <- appl_241 `pseq` applyWrapper aw_242 [appl_241]+                                                                                                                                                                                                                                                                                                                                                                                      case kl_if_243 of+                                                                                                                                                                                                                                                                                                                                                                                          Atom (B (True)) -> do let !appl_244 = ApplC (Func "lambda" (Context (\(!kl_Parse_shen_LBpattern2RB) -> do let !aw_245 = Core.Types.Atom (Core.Types.UnboundSym "fail")+                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                    !appl_246 <- applyWrapper aw_245 []+                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                    !appl_247 <- appl_246 `pseq` (kl_Parse_shen_LBpattern2RB `pseq` eq appl_246 kl_Parse_shen_LBpattern2RB)+                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                    let !aw_248 = Core.Types.Atom (Core.Types.UnboundSym "not")+                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                    !kl_if_249 <- appl_247 `pseq` applyWrapper aw_248 [appl_247]+                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                    case kl_if_249 of+                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                        Atom (B (True)) -> do !appl_250 <- kl_V1237 `pseq` hd kl_V1237+                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                              !appl_251 <- appl_250 `pseq` tl appl_250+                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                              !appl_252 <- kl_V1237 `pseq` tl kl_V1237+                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                              !appl_253 <- appl_252 `pseq` hd appl_252+                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                              let !aw_254 = Core.Types.Atom (Core.Types.UnboundSym "shen.pair")+                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                              !appl_255 <- appl_251 `pseq` (appl_253 `pseq` applyWrapper aw_254 [appl_251,+                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                 appl_253])+                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                              !appl_256 <- appl_255 `pseq` hd appl_255+                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                              let !aw_257 = Core.Types.Atom (Core.Types.UnboundSym "shen.hdtl")+                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                              !appl_258 <- kl_Parse_shen_LBpattern1RB `pseq` applyWrapper aw_257 [kl_Parse_shen_LBpattern1RB]+                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                              let !aw_259 = Core.Types.Atom (Core.Types.UnboundSym "shen.hdtl")+                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                              !appl_260 <- kl_Parse_shen_LBpattern2RB `pseq` applyWrapper aw_259 [kl_Parse_shen_LBpattern2RB]+                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                              let !appl_261 = Atom Nil+                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                              !appl_262 <- appl_260 `pseq` (appl_261 `pseq` klCons appl_260 appl_261)+                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                              !appl_263 <- appl_258 `pseq` (appl_262 `pseq` klCons appl_258 appl_262)+                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                              !appl_264 <- appl_263 `pseq` klCons (Core.Types.Atom (Core.Types.UnboundSym "@v")) appl_263+                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                              let !aw_265 = Core.Types.Atom (Core.Types.UnboundSym "shen.pair")+                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                              appl_256 `pseq` (appl_264 `pseq` applyWrapper aw_265 [appl_256,+                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                    appl_264])+                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                        Atom (B (False)) -> do do let !aw_266 = Core.Types.Atom (Core.Types.UnboundSym "fail")+                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                  applyWrapper aw_266 []+                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                        _ -> throwError "if: expected boolean")))+                                                                                                                                                                                                                                                                                                                                                                                                                !appl_267 <- kl_Parse_shen_LBpattern1RB `pseq` kl_shen_LBpattern2RB kl_Parse_shen_LBpattern1RB+                                                                                                                                                                                                                                                                                                                                                                                                                appl_267 `pseq` applyWrapper appl_244 [appl_267]+                                                                                                                                                                                                                                                                                                                                                                                          Atom (B (False)) -> do do let !aw_268 = Core.Types.Atom (Core.Types.UnboundSym "fail")+                                                                                                                                                                                                                                                                                                                                                                                                                    applyWrapper aw_268 []+                                                                                                                                                                                                                                                                                                                                                                                          _ -> throwError "if: expected boolean")))+                                                                                                                                                                                                                                                                                                  !appl_269 <- kl_V1237 `pseq` hd kl_V1237+                                                                                                                                                                                                                                                                                                  !appl_270 <- appl_269 `pseq` hd appl_269+                                                                                                                                                                                                                                                                                                  !appl_271 <- kl_V1237 `pseq` tl kl_V1237+                                                                                                                                                                                                                                                                                                  !appl_272 <- appl_271 `pseq` hd appl_271+                                                                                                                                                                                                                                                                                                  let !aw_273 = Core.Types.Atom (Core.Types.UnboundSym "shen.pair")+                                                                                                                                                                                                                                                                                                  !appl_274 <- appl_270 `pseq` (appl_272 `pseq` applyWrapper aw_273 [appl_270,+                                                                                                                                                                                                                                                                                                                                                                     appl_272])+                                                                                                                                                                                                                                                                                                  !appl_275 <- appl_274 `pseq` hd appl_274+                                                                                                                                                                                                                                                                                                  !appl_276 <- appl_275 `pseq` tl appl_275+                                                                                                                                                                                                                                                                                                  !appl_277 <- kl_V1237 `pseq` hd kl_V1237+                                                                                                                                                                                                                                                                                                  !appl_278 <- appl_277 `pseq` hd appl_277+                                                                                                                                                                                                                                                                                                  !appl_279 <- kl_V1237 `pseq` tl kl_V1237+                                                                                                                                                                                                                                                                                                  !appl_280 <- appl_279 `pseq` hd appl_279+                                                                                                                                                                                                                                                                                                  let !aw_281 = Core.Types.Atom (Core.Types.UnboundSym "shen.pair")+                                                                                                                                                                                                                                                                                                  !appl_282 <- appl_278 `pseq` (appl_280 `pseq` applyWrapper aw_281 [appl_278,+                                                                                                                                                                                                                                                                                                                                                                     appl_280])+                                                                                                                                                                                                                                                                                                  let !aw_283 = Core.Types.Atom (Core.Types.UnboundSym "shen.hdtl")+                                                                                                                                                                                                                                                                                                  !appl_284 <- appl_282 `pseq` applyWrapper aw_283 [appl_282]+                                                                                                                                                                                                                                                                                                  let !aw_285 = Core.Types.Atom (Core.Types.UnboundSym "shen.pair")+                                                                                                                                                                                                                                                                                                  !appl_286 <- appl_276 `pseq` (appl_284 `pseq` applyWrapper aw_285 [appl_276,+                                                                                                                                                                                                                                                                                                                                                                     appl_284])+                                                                                                                                                                                                                                                                                                  !appl_287 <- appl_286 `pseq` kl_shen_LBpattern1RB appl_286+                                                                                                                                                                                                                                                                                                  appl_287 `pseq` applyWrapper appl_238 [appl_287]+                                                                                                                                                                                                                                                                            Atom (B (False)) -> do do let !aw_288 = Core.Types.Atom (Core.Types.UnboundSym "fail")+                                                                                                                                                                                                                                                                                                      applyWrapper aw_288 []+                                                                                                                                                                                                                                                                            _ -> throwError "if: expected boolean"+                                                                                                                                                                                                                                                  Atom (B (False)) -> do do let !aw_289 = Core.Types.Atom (Core.Types.UnboundSym "fail")+                                                                                                                                                                                                                                                                            applyWrapper aw_289 []+                                                                                                                                                                                                                                                  _ -> throwError "if: expected boolean"+                                                                                                                                                                                                                                 appl_219 `pseq` applyWrapper appl_8 [appl_219]+                                                                                                                                                                                                           Atom (B (False)) -> do do return kl_YaccParse+                                                                                                                                                                                                           _ -> throwError "if: expected boolean")))+                                                                                                                                   !appl_290 <- kl_V1237 `pseq` hd kl_V1237+                                                                                                                                   !kl_if_291 <- appl_290 `pseq` consP appl_290+                                                                                                                                   !kl_if_292 <- case kl_if_291 of+                                                                                                                                                     Atom (B (True)) -> do !appl_293 <- kl_V1237 `pseq` hd kl_V1237+                                                                                                                                                                           !appl_294 <- appl_293 `pseq` hd appl_293+                                                                                                                                                                           !kl_if_295 <- appl_294 `pseq` consP appl_294+                                                                                                                                                                           case kl_if_295 of+                                                                                                                                                                               Atom (B (True)) -> do return (Atom (B True))+                                                                                                                                                                               Atom (B (False)) -> do do return (Atom (B False))+                                                                                                                                                                               _ -> throwError "if: expected boolean"+                                                                                                                                                     Atom (B (False)) -> do do return (Atom (B False))+                                                                                                                                                     _ -> throwError "if: expected boolean"+                                                                                                                                   !appl_296 <- case kl_if_292 of+                                                                                                                                                    Atom (B (True)) -> do !appl_297 <- kl_V1237 `pseq` hd kl_V1237+                                                                                                                                                                          !appl_298 <- appl_297 `pseq` hd appl_297+                                                                                                                                                                          !appl_299 <- kl_V1237 `pseq` tl kl_V1237+                                                                                                                                                                          !appl_300 <- appl_299 `pseq` hd appl_299+                                                                                                                                                                          let !aw_301 = Core.Types.Atom (Core.Types.UnboundSym "shen.pair")+                                                                                                                                                                          !appl_302 <- appl_298 `pseq` (appl_300 `pseq` applyWrapper aw_301 [appl_298,+                                                                                                                                                                                                                                             appl_300])+                                                                                                                                                                          !appl_303 <- appl_302 `pseq` hd appl_302+                                                                                                                                                                          !kl_if_304 <- appl_303 `pseq` consP appl_303+                                                                                                                                                                          !kl_if_305 <- case kl_if_304 of+                                                                                                                                                                                            Atom (B (True)) -> do !appl_306 <- kl_V1237 `pseq` hd kl_V1237+                                                                                                                                                                                                                  !appl_307 <- appl_306 `pseq` hd appl_306+                                                                                                                                                                                                                  !appl_308 <- kl_V1237 `pseq` tl kl_V1237+                                                                                                                                                                                                                  !appl_309 <- appl_308 `pseq` hd appl_308+                                                                                                                                                                                                                  let !aw_310 = Core.Types.Atom (Core.Types.UnboundSym "shen.pair")+                                                                                                                                                                                                                  !appl_311 <- appl_307 `pseq` (appl_309 `pseq` applyWrapper aw_310 [appl_307,+                                                                                                                                                                                                                                                                                     appl_309])+                                                                                                                                                                                                                  !appl_312 <- appl_311 `pseq` hd appl_311+                                                                                                                                                                                                                  !appl_313 <- appl_312 `pseq` hd appl_312+                                                                                                                                                                                                                  !kl_if_314 <- appl_313 `pseq` eq (ApplC (wrapNamed "cons" klCons)) appl_313+                                                                                                                                                                                                                  case kl_if_314 of+                                                                                                                                                                                                                      Atom (B (True)) -> do return (Atom (B True))+                                                                                                                                                                                                                      Atom (B (False)) -> do do return (Atom (B False))+                                                                                                                                                                                                                      _ -> throwError "if: expected boolean"+                                                                                                                                                                                            Atom (B (False)) -> do do return (Atom (B False))+                                                                                                                                                                                            _ -> throwError "if: expected boolean"+                                                                                                                                                                          case kl_if_305 of+                                                                                                                                                                              Atom (B (True)) -> do let !appl_315 = ApplC (Func "lambda" (Context (\(!kl_Parse_shen_LBpattern1RB) -> do let !aw_316 = Core.Types.Atom (Core.Types.UnboundSym "fail")+                                                                                                                                                                                                                                                                                        !appl_317 <- applyWrapper aw_316 []+                                                                                                                                                                                                                                                                                        !appl_318 <- appl_317 `pseq` (kl_Parse_shen_LBpattern1RB `pseq` eq appl_317 kl_Parse_shen_LBpattern1RB)+                                                                                                                                                                                                                                                                                        let !aw_319 = Core.Types.Atom (Core.Types.UnboundSym "not")+                                                                                                                                                                                                                                                                                        !kl_if_320 <- appl_318 `pseq` applyWrapper aw_319 [appl_318]+                                                                                                                                                                                                                                                                                        case kl_if_320 of+                                                                                                                                                                                                                                                                                            Atom (B (True)) -> do let !appl_321 = ApplC (Func "lambda" (Context (\(!kl_Parse_shen_LBpattern2RB) -> do let !aw_322 = Core.Types.Atom (Core.Types.UnboundSym "fail")+                                                                                                                                                                                                                                                                                                                                                                                                      !appl_323 <- applyWrapper aw_322 []+                                                                                                                                                                                                                                                                                                                                                                                                      !appl_324 <- appl_323 `pseq` (kl_Parse_shen_LBpattern2RB `pseq` eq appl_323 kl_Parse_shen_LBpattern2RB)+                                                                                                                                                                                                                                                                                                                                                                                                      let !aw_325 = Core.Types.Atom (Core.Types.UnboundSym "not")+                                                                                                                                                                                                                                                                                                                                                                                                      !kl_if_326 <- appl_324 `pseq` applyWrapper aw_325 [appl_324]+                                                                                                                                                                                                                                                                                                                                                                                                      case kl_if_326 of+                                                                                                                                                                                                                                                                                                                                                                                                          Atom (B (True)) -> do !appl_327 <- kl_V1237 `pseq` hd kl_V1237+                                                                                                                                                                                                                                                                                                                                                                                                                                !appl_328 <- appl_327 `pseq` tl appl_327+                                                                                                                                                                                                                                                                                                                                                                                                                                !appl_329 <- kl_V1237 `pseq` tl kl_V1237+                                                                                                                                                                                                                                                                                                                                                                                                                                !appl_330 <- appl_329 `pseq` hd appl_329+                                                                                                                                                                                                                                                                                                                                                                                                                                let !aw_331 = Core.Types.Atom (Core.Types.UnboundSym "shen.pair")+                                                                                                                                                                                                                                                                                                                                                                                                                                !appl_332 <- appl_328 `pseq` (appl_330 `pseq` applyWrapper aw_331 [appl_328,+                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                   appl_330])+                                                                                                                                                                                                                                                                                                                                                                                                                                !appl_333 <- appl_332 `pseq` hd appl_332+                                                                                                                                                                                                                                                                                                                                                                                                                                let !aw_334 = Core.Types.Atom (Core.Types.UnboundSym "shen.hdtl")+                                                                                                                                                                                                                                                                                                                                                                                                                                !appl_335 <- kl_Parse_shen_LBpattern1RB `pseq` applyWrapper aw_334 [kl_Parse_shen_LBpattern1RB]+                                                                                                                                                                                                                                                                                                                                                                                                                                let !aw_336 = Core.Types.Atom (Core.Types.UnboundSym "shen.hdtl")+                                                                                                                                                                                                                                                                                                                                                                                                                                !appl_337 <- kl_Parse_shen_LBpattern2RB `pseq` applyWrapper aw_336 [kl_Parse_shen_LBpattern2RB]+                                                                                                                                                                                                                                                                                                                                                                                                                                let !appl_338 = Atom Nil+                                                                                                                                                                                                                                                                                                                                                                                                                                !appl_339 <- appl_337 `pseq` (appl_338 `pseq` klCons appl_337 appl_338)+                                                                                                                                                                                                                                                                                                                                                                                                                                !appl_340 <- appl_335 `pseq` (appl_339 `pseq` klCons appl_335 appl_339)+                                                                                                                                                                                                                                                                                                                                                                                                                                !appl_341 <- appl_340 `pseq` klCons (ApplC (wrapNamed "cons" klCons)) appl_340+                                                                                                                                                                                                                                                                                                                                                                                                                                let !aw_342 = Core.Types.Atom (Core.Types.UnboundSym "shen.pair")+                                                                                                                                                                                                                                                                                                                                                                                                                                appl_333 `pseq` (appl_341 `pseq` applyWrapper aw_342 [appl_333,+                                                                                                                                                                                                                                                                                                                                                                                                                                                                                      appl_341])+                                                                                                                                                                                                                                                                                                                                                                                                          Atom (B (False)) -> do do let !aw_343 = Core.Types.Atom (Core.Types.UnboundSym "fail")+                                                                                                                                                                                                                                                                                                                                                                                                                                    applyWrapper aw_343 []+                                                                                                                                                                                                                                                                                                                                                                                                          _ -> throwError "if: expected boolean")))+                                                                                                                                                                                                                                                                                                                  !appl_344 <- kl_Parse_shen_LBpattern1RB `pseq` kl_shen_LBpattern2RB kl_Parse_shen_LBpattern1RB+                                                                                                                                                                                                                                                                                                                  appl_344 `pseq` applyWrapper appl_321 [appl_344]+                                                                                                                                                                                                                                                                                            Atom (B (False)) -> do do let !aw_345 = Core.Types.Atom (Core.Types.UnboundSym "fail")+                                                                                                                                                                                                                                                                                                                      applyWrapper aw_345 []+                                                                                                                                                                                                                                                                                            _ -> throwError "if: expected boolean")))+                                                                                                                                                                                                    !appl_346 <- kl_V1237 `pseq` hd kl_V1237+                                                                                                                                                                                                    !appl_347 <- appl_346 `pseq` hd appl_346+                                                                                                                                                                                                    !appl_348 <- kl_V1237 `pseq` tl kl_V1237+                                                                                                                                                                                                    !appl_349 <- appl_348 `pseq` hd appl_348+                                                                                                                                                                                                    let !aw_350 = Core.Types.Atom (Core.Types.UnboundSym "shen.pair")+                                                                                                                                                                                                    !appl_351 <- appl_347 `pseq` (appl_349 `pseq` applyWrapper aw_350 [appl_347,+                                                                                                                                                                                                                                                                       appl_349])+                                                                                                                                                                                                    !appl_352 <- appl_351 `pseq` hd appl_351+                                                                                                                                                                                                    !appl_353 <- appl_352 `pseq` tl appl_352+                                                                                                                                                                                                    !appl_354 <- kl_V1237 `pseq` hd kl_V1237+                                                                                                                                                                                                    !appl_355 <- appl_354 `pseq` hd appl_354+                                                                                                                                                                                                    !appl_356 <- kl_V1237 `pseq` tl kl_V1237+                                                                                                                                                                                                    !appl_357 <- appl_356 `pseq` hd appl_356+                                                                                                                                                                                                    let !aw_358 = Core.Types.Atom (Core.Types.UnboundSym "shen.pair")+                                                                                                                                                                                                    !appl_359 <- appl_355 `pseq` (appl_357 `pseq` applyWrapper aw_358 [appl_355,+                                                                                                                                                                                                                                                                       appl_357])+                                                                                                                                                                                                    let !aw_360 = Core.Types.Atom (Core.Types.UnboundSym "shen.hdtl")+                                                                                                                                                                                                    !appl_361 <- appl_359 `pseq` applyWrapper aw_360 [appl_359]+                                                                                                                                                                                                    let !aw_362 = Core.Types.Atom (Core.Types.UnboundSym "shen.pair")+                                                                                                                                                                                                    !appl_363 <- appl_353 `pseq` (appl_361 `pseq` applyWrapper aw_362 [appl_353,+                                                                                                                                                                                                                                                                       appl_361])+                                                                                                                                                                                                    !appl_364 <- appl_363 `pseq` kl_shen_LBpattern1RB appl_363+                                                                                                                                                                                                    appl_364 `pseq` applyWrapper appl_315 [appl_364]+                                                                                                                                                                              Atom (B (False)) -> do do let !aw_365 = Core.Types.Atom (Core.Types.UnboundSym "fail")+                                                                                                                                                                                                        applyWrapper aw_365 []+                                                                                                                                                                              _ -> throwError "if: expected boolean"+                                                                                                                                                    Atom (B (False)) -> do do let !aw_366 = Core.Types.Atom (Core.Types.UnboundSym "fail")+                                                                                                                                                                              applyWrapper aw_366 []+                                                                                                                                                    _ -> throwError "if: expected boolean"+                                                                                                                                   appl_296 `pseq` applyWrapper appl_4 [appl_296]+                                                                                                             Atom (B (False)) -> do do return kl_YaccParse+                                                                                                             _ -> throwError "if: expected boolean")))+                                     !appl_367 <- kl_V1237 `pseq` hd kl_V1237+                                     !kl_if_368 <- appl_367 `pseq` consP appl_367+                                     !kl_if_369 <- case kl_if_368 of+                                                       Atom (B (True)) -> do !appl_370 <- kl_V1237 `pseq` hd kl_V1237+                                                                             !appl_371 <- appl_370 `pseq` hd appl_370+                                                                             !kl_if_372 <- appl_371 `pseq` consP appl_371+                                                                             case kl_if_372 of+                                                                                 Atom (B (True)) -> do return (Atom (B True))+                                                                                 Atom (B (False)) -> do do return (Atom (B False))+                                                                                 _ -> throwError "if: expected boolean"+                                                       Atom (B (False)) -> do do return (Atom (B False))+                                                       _ -> throwError "if: expected boolean"+                                     !appl_373 <- case kl_if_369 of+                                                      Atom (B (True)) -> do !appl_374 <- kl_V1237 `pseq` hd kl_V1237+                                                                            !appl_375 <- appl_374 `pseq` hd appl_374+                                                                            !appl_376 <- kl_V1237 `pseq` tl kl_V1237+                                                                            !appl_377 <- appl_376 `pseq` hd appl_376+                                                                            let !aw_378 = Core.Types.Atom (Core.Types.UnboundSym "shen.pair")+                                                                            !appl_379 <- appl_375 `pseq` (appl_377 `pseq` applyWrapper aw_378 [appl_375,+                                                                                                                                               appl_377])+                                                                            !appl_380 <- appl_379 `pseq` hd appl_379+                                                                            !kl_if_381 <- appl_380 `pseq` consP appl_380+                                                                            !kl_if_382 <- case kl_if_381 of+                                                                                              Atom (B (True)) -> do !appl_383 <- kl_V1237 `pseq` hd kl_V1237+                                                                                                                    !appl_384 <- appl_383 `pseq` hd appl_383+                                                                                                                    !appl_385 <- kl_V1237 `pseq` tl kl_V1237+                                                                                                                    !appl_386 <- appl_385 `pseq` hd appl_385+                                                                                                                    let !aw_387 = Core.Types.Atom (Core.Types.UnboundSym "shen.pair")+                                                                                                                    !appl_388 <- appl_384 `pseq` (appl_386 `pseq` applyWrapper aw_387 [appl_384,+                                                                                                                                                                                       appl_386])+                                                                                                                    !appl_389 <- appl_388 `pseq` hd appl_388+                                                                                                                    !appl_390 <- appl_389 `pseq` hd appl_389+                                                                                                                    !kl_if_391 <- appl_390 `pseq` eq (Core.Types.Atom (Core.Types.UnboundSym "@p")) appl_390+                                                                                                                    case kl_if_391 of+                                                                                                                        Atom (B (True)) -> do return (Atom (B True))+                                                                                                                        Atom (B (False)) -> do do return (Atom (B False))+                                                                                                                        _ -> throwError "if: expected boolean"+                                                                                              Atom (B (False)) -> do do return (Atom (B False))+                                                                                              _ -> throwError "if: expected boolean"+                                                                            case kl_if_382 of+                                                                                Atom (B (True)) -> do let !appl_392 = ApplC (Func "lambda" (Context (\(!kl_Parse_shen_LBpattern1RB) -> do let !aw_393 = Core.Types.Atom (Core.Types.UnboundSym "fail")+                                                                                                                                                                                          !appl_394 <- applyWrapper aw_393 []+                                                                                                                                                                                          !appl_395 <- appl_394 `pseq` (kl_Parse_shen_LBpattern1RB `pseq` eq appl_394 kl_Parse_shen_LBpattern1RB)+                                                                                                                                                                                          let !aw_396 = Core.Types.Atom (Core.Types.UnboundSym "not")+                                                                                                                                                                                          !kl_if_397 <- appl_395 `pseq` applyWrapper aw_396 [appl_395]+                                                                                                                                                                                          case kl_if_397 of+                                                                                                                                                                                              Atom (B (True)) -> do let !appl_398 = ApplC (Func "lambda" (Context (\(!kl_Parse_shen_LBpattern2RB) -> do let !aw_399 = Core.Types.Atom (Core.Types.UnboundSym "fail")+                                                                                                                                                                                                                                                                                                        !appl_400 <- applyWrapper aw_399 []+                                                                                                                                                                                                                                                                                                        !appl_401 <- appl_400 `pseq` (kl_Parse_shen_LBpattern2RB `pseq` eq appl_400 kl_Parse_shen_LBpattern2RB)+                                                                                                                                                                                                                                                                                                        let !aw_402 = Core.Types.Atom (Core.Types.UnboundSym "not")+                                                                                                                                                                                                                                                                                                        !kl_if_403 <- appl_401 `pseq` applyWrapper aw_402 [appl_401]+                                                                                                                                                                                                                                                                                                        case kl_if_403 of+                                                                                                                                                                                                                                                                                                            Atom (B (True)) -> do !appl_404 <- kl_V1237 `pseq` hd kl_V1237+                                                                                                                                                                                                                                                                                                                                  !appl_405 <- appl_404 `pseq` tl appl_404+                                                                                                                                                                                                                                                                                                                                  !appl_406 <- kl_V1237 `pseq` tl kl_V1237+                                                                                                                                                                                                                                                                                                                                  !appl_407 <- appl_406 `pseq` hd appl_406+                                                                                                                                                                                                                                                                                                                                  let !aw_408 = Core.Types.Atom (Core.Types.UnboundSym "shen.pair")+                                                                                                                                                                                                                                                                                                                                  !appl_409 <- appl_405 `pseq` (appl_407 `pseq` applyWrapper aw_408 [appl_405,+                                                                                                                                                                                                                                                                                                                                                                                                     appl_407])+                                                                                                                                                                                                                                                                                                                                  !appl_410 <- appl_409 `pseq` hd appl_409+                                                                                                                                                                                                                                                                                                                                  let !aw_411 = Core.Types.Atom (Core.Types.UnboundSym "shen.hdtl")+                                                                                                                                                                                                                                                                                                                                  !appl_412 <- kl_Parse_shen_LBpattern1RB `pseq` applyWrapper aw_411 [kl_Parse_shen_LBpattern1RB]+                                                                                                                                                                                                                                                                                                                                  let !aw_413 = Core.Types.Atom (Core.Types.UnboundSym "shen.hdtl")+                                                                                                                                                                                                                                                                                                                                  !appl_414 <- kl_Parse_shen_LBpattern2RB `pseq` applyWrapper aw_413 [kl_Parse_shen_LBpattern2RB]+                                                                                                                                                                                                                                                                                                                                  let !appl_415 = Atom Nil+                                                                                                                                                                                                                                                                                                                                  !appl_416 <- appl_414 `pseq` (appl_415 `pseq` klCons appl_414 appl_415)+                                                                                                                                                                                                                                                                                                                                  !appl_417 <- appl_412 `pseq` (appl_416 `pseq` klCons appl_412 appl_416)+                                                                                                                                                                                                                                                                                                                                  !appl_418 <- appl_417 `pseq` klCons (Core.Types.Atom (Core.Types.UnboundSym "@p")) appl_417+                                                                                                                                                                                                                                                                                                                                  let !aw_419 = Core.Types.Atom (Core.Types.UnboundSym "shen.pair")+                                                                                                                                                                                                                                                                                                                                  appl_410 `pseq` (appl_418 `pseq` applyWrapper aw_419 [appl_410,+                                                                                                                                                                                                                                                                                                                                                                                        appl_418])+                                                                                                                                                                                                                                                                                                            Atom (B (False)) -> do do let !aw_420 = Core.Types.Atom (Core.Types.UnboundSym "fail")+                                                                                                                                                                                                                                                                                                                                      applyWrapper aw_420 []+                                                                                                                                                                                                                                                                                                            _ -> throwError "if: expected boolean")))+                                                                                                                                                                                                                    !appl_421 <- kl_Parse_shen_LBpattern1RB `pseq` kl_shen_LBpattern2RB kl_Parse_shen_LBpattern1RB+                                                                                                                                                                                                                    appl_421 `pseq` applyWrapper appl_398 [appl_421]+                                                                                                                                                                                              Atom (B (False)) -> do do let !aw_422 = Core.Types.Atom (Core.Types.UnboundSym "fail")+                                                                                                                                                                                                                        applyWrapper aw_422 []+                                                                                                                                                                                              _ -> throwError "if: expected boolean")))+                                                                                                      !appl_423 <- kl_V1237 `pseq` hd kl_V1237+                                                                                                      !appl_424 <- appl_423 `pseq` hd appl_423+                                                                                                      !appl_425 <- kl_V1237 `pseq` tl kl_V1237+                                                                                                      !appl_426 <- appl_425 `pseq` hd appl_425+                                                                                                      let !aw_427 = Core.Types.Atom (Core.Types.UnboundSym "shen.pair")+                                                                                                      !appl_428 <- appl_424 `pseq` (appl_426 `pseq` applyWrapper aw_427 [appl_424,+                                                                                                                                                                         appl_426])+                                                                                                      !appl_429 <- appl_428 `pseq` hd appl_428+                                                                                                      !appl_430 <- appl_429 `pseq` tl appl_429+                                                                                                      !appl_431 <- kl_V1237 `pseq` hd kl_V1237+                                                                                                      !appl_432 <- appl_431 `pseq` hd appl_431+                                                                                                      !appl_433 <- kl_V1237 `pseq` tl kl_V1237+                                                                                                      !appl_434 <- appl_433 `pseq` hd appl_433+                                                                                                      let !aw_435 = Core.Types.Atom (Core.Types.UnboundSym "shen.pair")+                                                                                                      !appl_436 <- appl_432 `pseq` (appl_434 `pseq` applyWrapper aw_435 [appl_432,+                                                                                                                                                                         appl_434])+                                                                                                      let !aw_437 = Core.Types.Atom (Core.Types.UnboundSym "shen.hdtl")+                                                                                                      !appl_438 <- appl_436 `pseq` applyWrapper aw_437 [appl_436]+                                                                                                      let !aw_439 = Core.Types.Atom (Core.Types.UnboundSym "shen.pair")+                                                                                                      !appl_440 <- appl_430 `pseq` (appl_438 `pseq` applyWrapper aw_439 [appl_430,+                                                                                                                                                                         appl_438])+                                                                                                      !appl_441 <- appl_440 `pseq` kl_shen_LBpattern1RB appl_440+                                                                                                      appl_441 `pseq` applyWrapper appl_392 [appl_441]+                                                                                Atom (B (False)) -> do do let !aw_442 = Core.Types.Atom (Core.Types.UnboundSym "fail")+                                                                                                          applyWrapper aw_442 []+                                                                                _ -> throwError "if: expected boolean"+                                                      Atom (B (False)) -> do do let !aw_443 = Core.Types.Atom (Core.Types.UnboundSym "fail")+                                                                                applyWrapper aw_443 []+                                                      _ -> throwError "if: expected boolean"+                                     appl_373 `pseq` applyWrapper appl_0 [appl_373]++kl_shen_constructor_error :: Core.Types.KLValue ->+                             Core.Types.KLContext Core.Types.Env Core.Types.KLValue+kl_shen_constructor_error (!kl_V1239) = do let !aw_0 = Core.Types.Atom (Core.Types.UnboundSym "shen.app")+                                           !appl_1 <- kl_V1239 `pseq` applyWrapper aw_0 [kl_V1239,+                                                                                         Core.Types.Atom (Core.Types.Str " is not a legitimate constructor\n"),+                                                                                         Core.Types.Atom (Core.Types.UnboundSym "shen.a")]+                                           appl_1 `pseq` simpleError appl_1++kl_shen_LBsimple_patternRB :: Core.Types.KLValue ->+                              Core.Types.KLContext Core.Types.Env Core.Types.KLValue+kl_shen_LBsimple_patternRB (!kl_V1241) = do let !appl_0 = ApplC (Func "lambda" (Context (\(!kl_YaccParse) -> do let !aw_1 = Core.Types.Atom (Core.Types.UnboundSym "fail")+                                                                                                                !appl_2 <- applyWrapper aw_1 []+                                                                                                                !kl_if_3 <- kl_YaccParse `pseq` (appl_2 `pseq` eq kl_YaccParse appl_2)+                                                                                                                case kl_if_3 of+                                                                                                                    Atom (B (True)) -> do !appl_4 <- kl_V1241 `pseq` hd kl_V1241+                                                                                                                                          !kl_if_5 <- appl_4 `pseq` consP appl_4+                                                                                                                                          case kl_if_5 of+                                                                                                                                              Atom (B (True)) -> do let !appl_6 = ApplC (Func "lambda" (Context (\(!kl_Parse_X) -> do let !appl_7 = Atom Nil+                                                                                                                                                                                                                                      !appl_8 <- appl_7 `pseq` klCons (Core.Types.Atom (Core.Types.UnboundSym "<-")) appl_7+                                                                                                                                                                                                                                      !appl_9 <- appl_8 `pseq` klCons (Core.Types.Atom (Core.Types.UnboundSym "->")) appl_8+                                                                                                                                                                                                                                      let !aw_10 = Core.Types.Atom (Core.Types.UnboundSym "element?")+                                                                                                                                                                                                                                      !appl_11 <- kl_Parse_X `pseq` (appl_9 `pseq` applyWrapper aw_10 [kl_Parse_X,+                                                                                                                                                                                                                                                                                                       appl_9])+                                                                                                                                                                                                                                      let !aw_12 = Core.Types.Atom (Core.Types.UnboundSym "not")+                                                                                                                                                                                                                                      !kl_if_13 <- appl_11 `pseq` applyWrapper aw_12 [appl_11]+                                                                                                                                                                                                                                      case kl_if_13 of+                                                                                                                                                                                                                                          Atom (B (True)) -> do !appl_14 <- kl_V1241 `pseq` hd kl_V1241+                                                                                                                                                                                                                                                                !appl_15 <- appl_14 `pseq` tl appl_14+                                                                                                                                                                                                                                                                let !aw_16 = Core.Types.Atom (Core.Types.UnboundSym "shen.hdtl")+                                                                                                                                                                                                                                                                !appl_17 <- kl_V1241 `pseq` applyWrapper aw_16 [kl_V1241]+                                                                                                                                                                                                                                                                let !aw_18 = Core.Types.Atom (Core.Types.UnboundSym "shen.pair")+                                                                                                                                                                                                                                                                !appl_19 <- appl_15 `pseq` (appl_17 `pseq` applyWrapper aw_18 [appl_15,+                                                                                                                                                                                                                                                                                                                               appl_17])+                                                                                                                                                                                                                                                                !appl_20 <- appl_19 `pseq` hd appl_19+                                                                                                                                                                                                                                                                let !aw_21 = Core.Types.Atom (Core.Types.UnboundSym "shen.pair")+                                                                                                                                                                                                                                                                appl_20 `pseq` (kl_Parse_X `pseq` applyWrapper aw_21 [appl_20,+                                                                                                                                                                                                                                                                                                                      kl_Parse_X])+                                                                                                                                                                                                                                          Atom (B (False)) -> do do let !aw_22 = Core.Types.Atom (Core.Types.UnboundSym "fail")+                                                                                                                                                                                                                                                                    applyWrapper aw_22 []+                                                                                                                                                                                                                                          _ -> throwError "if: expected boolean")))+                                                                                                                                                                    !appl_23 <- kl_V1241 `pseq` hd kl_V1241+                                                                                                                                                                    !appl_24 <- appl_23 `pseq` hd appl_23+                                                                                                                                                                    appl_24 `pseq` applyWrapper appl_6 [appl_24]+                                                                                                                                              Atom (B (False)) -> do do let !aw_25 = Core.Types.Atom (Core.Types.UnboundSym "fail")+                                                                                                                                                                        applyWrapper aw_25 []+                                                                                                                                              _ -> throwError "if: expected boolean"+                                                                                                                    Atom (B (False)) -> do do return kl_YaccParse+                                                                                                                    _ -> throwError "if: expected boolean")))+                                            !appl_26 <- kl_V1241 `pseq` hd kl_V1241+                                            !kl_if_27 <- appl_26 `pseq` consP appl_26+                                            !appl_28 <- case kl_if_27 of+                                                            Atom (B (True)) -> do let !appl_29 = ApplC (Func "lambda" (Context (\(!kl_Parse_X) -> do let pat_cond_30 = do !appl_31 <- kl_V1241 `pseq` hd kl_V1241+                                                                                                                                                                          !appl_32 <- appl_31 `pseq` tl appl_31+                                                                                                                                                                          let !aw_33 = Core.Types.Atom (Core.Types.UnboundSym "shen.hdtl")+                                                                                                                                                                          !appl_34 <- kl_V1241 `pseq` applyWrapper aw_33 [kl_V1241]+                                                                                                                                                                          let !aw_35 = Core.Types.Atom (Core.Types.UnboundSym "shen.pair")+                                                                                                                                                                          !appl_36 <- appl_32 `pseq` (appl_34 `pseq` applyWrapper aw_35 [appl_32,+                                                                                                                                                                                                                                         appl_34])+                                                                                                                                                                          !appl_37 <- appl_36 `pseq` hd appl_36+                                                                                                                                                                          let !aw_38 = Core.Types.Atom (Core.Types.UnboundSym "gensym")+                                                                                                                                                                          !appl_39 <- applyWrapper aw_38 [Core.Types.Atom (Core.Types.UnboundSym "Parse_Y")]+                                                                                                                                                                          let !aw_40 = Core.Types.Atom (Core.Types.UnboundSym "shen.pair")+                                                                                                                                                                          appl_37 `pseq` (appl_39 `pseq` applyWrapper aw_40 [appl_37,+                                                                                                                                                                                                                             appl_39])+                                                                                                                                                         pat_cond_41 = do do let !aw_42 = Core.Types.Atom (Core.Types.UnboundSym "fail")+                                                                                                                                                                             applyWrapper aw_42 []+                                                                                                                                                      in case kl_Parse_X of+                                                                                                                                                             kl_Parse_X@(Atom (UnboundSym "_")) -> pat_cond_30+                                                                                                                                                             kl_Parse_X@(ApplC (PL "_"+                                                                                                                                                                                   _)) -> pat_cond_30+                                                                                                                                                             kl_Parse_X@(ApplC (Func "_"+                                                                                                                                                                                     _)) -> pat_cond_30+                                                                                                                                                             _ -> pat_cond_41)))+                                                                                  !appl_43 <- kl_V1241 `pseq` hd kl_V1241+                                                                                  !appl_44 <- appl_43 `pseq` hd appl_43+                                                                                  appl_44 `pseq` applyWrapper appl_29 [appl_44]+                                                            Atom (B (False)) -> do do let !aw_45 = Core.Types.Atom (Core.Types.UnboundSym "fail")+                                                                                      applyWrapper aw_45 []+                                                            _ -> throwError "if: expected boolean"+                                            appl_28 `pseq` applyWrapper appl_0 [appl_28]++kl_shen_LBpattern1RB :: Core.Types.KLValue ->+                        Core.Types.KLContext Core.Types.Env Core.Types.KLValue+kl_shen_LBpattern1RB (!kl_V1243) = do let !appl_0 = ApplC (Func "lambda" (Context (\(!kl_Parse_shen_LBpatternRB) -> do let !aw_1 = Core.Types.Atom (Core.Types.UnboundSym "fail")+                                                                                                                       !appl_2 <- applyWrapper aw_1 []+                                                                                                                       !appl_3 <- appl_2 `pseq` (kl_Parse_shen_LBpatternRB `pseq` eq appl_2 kl_Parse_shen_LBpatternRB)+                                                                                                                       let !aw_4 = Core.Types.Atom (Core.Types.UnboundSym "not")+                                                                                                                       !kl_if_5 <- appl_3 `pseq` applyWrapper aw_4 [appl_3]+                                                                                                                       case kl_if_5 of+                                                                                                                           Atom (B (True)) -> do !appl_6 <- kl_Parse_shen_LBpatternRB `pseq` hd kl_Parse_shen_LBpatternRB+                                                                                                                                                 let !aw_7 = Core.Types.Atom (Core.Types.UnboundSym "shen.hdtl")+                                                                                                                                                 !appl_8 <- kl_Parse_shen_LBpatternRB `pseq` applyWrapper aw_7 [kl_Parse_shen_LBpatternRB]+                                                                                                                                                 let !aw_9 = Core.Types.Atom (Core.Types.UnboundSym "shen.pair")+                                                                                                                                                 appl_6 `pseq` (appl_8 `pseq` applyWrapper aw_9 [appl_6,+                                                                                                                                                                                                 appl_8])+                                                                                                                           Atom (B (False)) -> do do let !aw_10 = Core.Types.Atom (Core.Types.UnboundSym "fail")+                                                                                                                                                     applyWrapper aw_10 []+                                                                                                                           _ -> throwError "if: expected boolean")))+                                      !appl_11 <- kl_V1243 `pseq` kl_shen_LBpatternRB kl_V1243+                                      appl_11 `pseq` applyWrapper appl_0 [appl_11]++kl_shen_LBpattern2RB :: Core.Types.KLValue ->+                        Core.Types.KLContext Core.Types.Env Core.Types.KLValue+kl_shen_LBpattern2RB (!kl_V1245) = do let !appl_0 = ApplC (Func "lambda" (Context (\(!kl_Parse_shen_LBpatternRB) -> do let !aw_1 = Core.Types.Atom (Core.Types.UnboundSym "fail")+                                                                                                                       !appl_2 <- applyWrapper aw_1 []+                                                                                                                       !appl_3 <- appl_2 `pseq` (kl_Parse_shen_LBpatternRB `pseq` eq appl_2 kl_Parse_shen_LBpatternRB)+                                                                                                                       let !aw_4 = Core.Types.Atom (Core.Types.UnboundSym "not")+                                                                                                                       !kl_if_5 <- appl_3 `pseq` applyWrapper aw_4 [appl_3]+                                                                                                                       case kl_if_5 of+                                                                                                                           Atom (B (True)) -> do !appl_6 <- kl_Parse_shen_LBpatternRB `pseq` hd kl_Parse_shen_LBpatternRB+                                                                                                                                                 let !aw_7 = Core.Types.Atom (Core.Types.UnboundSym "shen.hdtl")+                                                                                                                                                 !appl_8 <- kl_Parse_shen_LBpatternRB `pseq` applyWrapper aw_7 [kl_Parse_shen_LBpatternRB]+                                                                                                                                                 let !aw_9 = Core.Types.Atom (Core.Types.UnboundSym "shen.pair")+                                                                                                                                                 appl_6 `pseq` (appl_8 `pseq` applyWrapper aw_9 [appl_6,+                                                                                                                                                                                                 appl_8])+                                                                                                                           Atom (B (False)) -> do do let !aw_10 = Core.Types.Atom (Core.Types.UnboundSym "fail")+                                                                                                                                                     applyWrapper aw_10 []+                                                                                                                           _ -> throwError "if: expected boolean")))+                                      !appl_11 <- kl_V1245 `pseq` kl_shen_LBpatternRB kl_V1245+                                      appl_11 `pseq` applyWrapper appl_0 [appl_11]++kl_shen_LBactionRB :: Core.Types.KLValue ->+                      Core.Types.KLContext Core.Types.Env Core.Types.KLValue+kl_shen_LBactionRB (!kl_V1247) = do !appl_0 <- kl_V1247 `pseq` hd kl_V1247+                                    !kl_if_1 <- appl_0 `pseq` consP appl_0+                                    case kl_if_1 of+                                        Atom (B (True)) -> do let !appl_2 = ApplC (Func "lambda" (Context (\(!kl_Parse_X) -> do !appl_3 <- kl_V1247 `pseq` hd kl_V1247+                                                                                                                                !appl_4 <- appl_3 `pseq` tl appl_3+                                                                                                                                let !aw_5 = Core.Types.Atom (Core.Types.UnboundSym "shen.hdtl")+                                                                                                                                !appl_6 <- kl_V1247 `pseq` applyWrapper aw_5 [kl_V1247]+                                                                                                                                let !aw_7 = Core.Types.Atom (Core.Types.UnboundSym "shen.pair")+                                                                                                                                !appl_8 <- appl_4 `pseq` (appl_6 `pseq` applyWrapper aw_7 [appl_4,+                                                                                                                                                                                           appl_6])+                                                                                                                                !appl_9 <- appl_8 `pseq` hd appl_8+                                                                                                                                let !aw_10 = Core.Types.Atom (Core.Types.UnboundSym "shen.pair")+                                                                                                                                appl_9 `pseq` (kl_Parse_X `pseq` applyWrapper aw_10 [appl_9,+                                                                                                                                                                                     kl_Parse_X]))))+                                                              !appl_11 <- kl_V1247 `pseq` hd kl_V1247+                                                              !appl_12 <- appl_11 `pseq` hd appl_11+                                                              appl_12 `pseq` applyWrapper appl_2 [appl_12]+                                        Atom (B (False)) -> do do let !aw_13 = Core.Types.Atom (Core.Types.UnboundSym "fail")+                                                                  applyWrapper aw_13 []+                                        _ -> throwError "if: expected boolean"++kl_shen_LBguardRB :: Core.Types.KLValue ->+                     Core.Types.KLContext Core.Types.Env Core.Types.KLValue+kl_shen_LBguardRB (!kl_V1249) = do !appl_0 <- kl_V1249 `pseq` hd kl_V1249+                                   !kl_if_1 <- appl_0 `pseq` consP appl_0+                                   case kl_if_1 of+                                       Atom (B (True)) -> do let !appl_2 = ApplC (Func "lambda" (Context (\(!kl_Parse_X) -> do !appl_3 <- kl_V1249 `pseq` hd kl_V1249+                                                                                                                               !appl_4 <- appl_3 `pseq` tl appl_3+                                                                                                                               let !aw_5 = Core.Types.Atom (Core.Types.UnboundSym "shen.hdtl")+                                                                                                                               !appl_6 <- kl_V1249 `pseq` applyWrapper aw_5 [kl_V1249]+                                                                                                                               let !aw_7 = Core.Types.Atom (Core.Types.UnboundSym "shen.pair")+                                                                                                                               !appl_8 <- appl_4 `pseq` (appl_6 `pseq` applyWrapper aw_7 [appl_4,+                                                                                                                                                                                          appl_6])+                                                                                                                               !appl_9 <- appl_8 `pseq` hd appl_8+                                                                                                                               let !aw_10 = Core.Types.Atom (Core.Types.UnboundSym "shen.pair")+                                                                                                                               appl_9 `pseq` (kl_Parse_X `pseq` applyWrapper aw_10 [appl_9,+                                                                                                                                                                                    kl_Parse_X]))))+                                                             !appl_11 <- kl_V1249 `pseq` hd kl_V1249+                                                             !appl_12 <- appl_11 `pseq` hd appl_11+                                                             appl_12 `pseq` applyWrapper appl_2 [appl_12]+                                       Atom (B (False)) -> do do let !aw_13 = Core.Types.Atom (Core.Types.UnboundSym "fail")+                                                                 applyWrapper aw_13 []+                                       _ -> throwError "if: expected boolean"++kl_shen_compile_to_machine_code :: Core.Types.KLValue ->+                                   Core.Types.KLValue ->+                                   Core.Types.KLContext Core.Types.Env Core.Types.KLValue+kl_shen_compile_to_machine_code (!kl_V1252) (!kl_V1253) = do let !appl_0 = ApplC (Func "lambda" (Context (\(!kl_LambdaPlus) -> do let !appl_1 = ApplC (Func "lambda" (Context (\(!kl_KL) -> do let !appl_2 = ApplC (Func "lambda" (Context (\(!kl_Record) -> do return kl_KL)))+                                                                                                                                                                                               !appl_3 <- kl_V1252 `pseq` (kl_KL `pseq` kl_shen_record_source kl_V1252 kl_KL)+                                                                                                                                                                                               appl_3 `pseq` applyWrapper appl_2 [appl_3])))+                                                                                                                                  !appl_4 <- kl_V1252 `pseq` (kl_LambdaPlus `pseq` kl_shen_compile_to_kl kl_V1252 kl_LambdaPlus)+                                                                                                                                  appl_4 `pseq` applyWrapper appl_1 [appl_4])))+                                                             !appl_5 <- kl_V1252 `pseq` (kl_V1253 `pseq` kl_shen_compile_to_lambdaPlus kl_V1252 kl_V1253)+                                                             appl_5 `pseq` applyWrapper appl_0 [appl_5]++kl_shen_record_source :: Core.Types.KLValue ->+                         Core.Types.KLValue ->+                         Core.Types.KLContext Core.Types.Env Core.Types.KLValue+kl_shen_record_source (!kl_V1258) (!kl_V1259) = do !kl_if_0 <- value (Core.Types.Atom (Core.Types.UnboundSym "shen.*installing-kl*"))+                                                   case kl_if_0 of+                                                       Atom (B (True)) -> do return (Core.Types.Atom (Core.Types.UnboundSym "shen.skip"))+                                                       Atom (B (False)) -> do do !appl_1 <- value (Core.Types.Atom (Core.Types.UnboundSym "*property-vector*"))+                                                                                 let !aw_2 = Core.Types.Atom (Core.Types.UnboundSym "put")+                                                                                 kl_V1258 `pseq` (kl_V1259 `pseq` (appl_1 `pseq` applyWrapper aw_2 [kl_V1258,+                                                                                                                                                    Core.Types.Atom (Core.Types.UnboundSym "shen.source"),+                                                                                                                                                    kl_V1259,+                                                                                                                                                    appl_1]))+                                                       _ -> throwError "if: expected boolean"++kl_shen_compile_to_lambdaPlus :: Core.Types.KLValue ->+                                 Core.Types.KLValue ->+                                 Core.Types.KLContext Core.Types.Env Core.Types.KLValue+kl_shen_compile_to_lambdaPlus (!kl_V1262) (!kl_V1263) = do let !appl_0 = ApplC (Func "lambda" (Context (\(!kl_Arity) -> do let !appl_1 = ApplC (Func "lambda" (Context (\(!kl_UpDateSymbolTable) -> do let !appl_2 = ApplC (Func "lambda" (Context (\(!kl_Free) -> do let !appl_3 = ApplC (Func "lambda" (Context (\(!kl_Variables) -> do let !appl_4 = ApplC (Func "lambda" (Context (\(!kl_Strip) -> do let !appl_5 = ApplC (Func "lambda" (Context (\(!kl_Abstractions) -> do let !appl_6 = ApplC (Func "lambda" (Context (\(!kl_Applications) -> do let !appl_7 = Atom Nil+                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                        !appl_8 <- kl_Applications `pseq` (appl_7 `pseq` klCons kl_Applications appl_7)+                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                        kl_Variables `pseq` (appl_8 `pseq` klCons kl_Variables appl_8))))+                                                                                                                                                                                                                                                                                                                                                                                                                                                                                 let !appl_9 = ApplC (Func "lambda" (Context (\(!kl_X) -> do kl_Variables `pseq` (kl_X `pseq` kl_shen_application_build kl_Variables kl_X))))+                                                                                                                                                                                                                                                                                                                                                                                                                                                                                 let !aw_10 = Core.Types.Atom (Core.Types.UnboundSym "map")+                                                                                                                                                                                                                                                                                                                                                                                                                                                                                 !appl_11 <- appl_9 `pseq` (kl_Abstractions `pseq` applyWrapper aw_10 [appl_9,+                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                       kl_Abstractions])+                                                                                                                                                                                                                                                                                                                                                                                                                                                                                 appl_11 `pseq` applyWrapper appl_6 [appl_11])))+                                                                                                                                                                                                                                                                                                                                                                                                          let !appl_12 = ApplC (Func "lambda" (Context (\(!kl_X) -> do kl_X `pseq` kl_shen_abstract_rule kl_X)))+                                                                                                                                                                                                                                                                                                                                                                                                          let !aw_13 = Core.Types.Atom (Core.Types.UnboundSym "map")+                                                                                                                                                                                                                                                                                                                                                                                                          !appl_14 <- appl_12 `pseq` (kl_Strip `pseq` applyWrapper aw_13 [appl_12,+                                                                                                                                                                                                                                                                                                                                                                                                                                                                          kl_Strip])+                                                                                                                                                                                                                                                                                                                                                                                                          appl_14 `pseq` applyWrapper appl_5 [appl_14])))+                                                                                                                                                                                                                                                                                                                                          let !appl_15 = ApplC (Func "lambda" (Context (\(!kl_X) -> do kl_X `pseq` kl_shen_strip_protect kl_X)))+                                                                                                                                                                                                                                                                                                                                          let !aw_16 = Core.Types.Atom (Core.Types.UnboundSym "map")+                                                                                                                                                                                                                                                                                                                                          !appl_17 <- appl_15 `pseq` (kl_V1263 `pseq` applyWrapper aw_16 [appl_15,+                                                                                                                                                                                                                                                                                                                                                                                                          kl_V1263])+                                                                                                                                                                                                                                                                                                                                          appl_17 `pseq` applyWrapper appl_4 [appl_17])))+                                                                                                                                                                                                                                                                      !appl_18 <- kl_Arity `pseq` kl_shen_parameters kl_Arity+                                                                                                                                                                                                                                                                      appl_18 `pseq` applyWrapper appl_3 [appl_18])))+                                                                                                                                                                                                       let !appl_19 = ApplC (Func "lambda" (Context (\(!kl_Rule) -> do kl_V1262 `pseq` (kl_Rule `pseq` kl_shen_free_variable_check kl_V1262 kl_Rule))))+                                                                                                                                                                                                       let !aw_20 = Core.Types.Atom (Core.Types.UnboundSym "for-each")+                                                                                                                                                                                                       !appl_21 <- appl_19 `pseq` (kl_V1263 `pseq` applyWrapper aw_20 [appl_19,+                                                                                                                                                                                                                                                                       kl_V1263])+                                                                                                                                                                                                       appl_21 `pseq` applyWrapper appl_2 [appl_21])))+                                                                                                                           !appl_22 <- kl_V1262 `pseq` (kl_Arity `pseq` kl_shen_update_symbol_table kl_V1262 kl_Arity)+                                                                                                                           appl_22 `pseq` applyWrapper appl_1 [appl_22])))+                                                           !appl_23 <- kl_V1262 `pseq` (kl_V1263 `pseq` kl_shen_aritycheck kl_V1262 kl_V1263)+                                                           appl_23 `pseq` applyWrapper appl_0 [appl_23]++kl_shen_update_symbol_table :: Core.Types.KLValue ->+                               Core.Types.KLValue ->+                               Core.Types.KLContext Core.Types.Env Core.Types.KLValue+kl_shen_update_symbol_table (!kl_V1266) (!kl_V1267) = do let pat_cond_0 = do return (Core.Types.Atom (Core.Types.UnboundSym "shen.skip"))+                                                             pat_cond_1 = do do let !aw_2 = Core.Types.Atom (Core.Types.UnboundSym "shen.lambda-form")+                                                                                !appl_3 <- kl_V1266 `pseq` (kl_V1267 `pseq` applyWrapper aw_2 [kl_V1266,+                                                                                                                                               kl_V1267])+                                                                                !appl_4 <- appl_3 `pseq` evalKL appl_3+                                                                                !appl_5 <- value (Core.Types.Atom (Core.Types.UnboundSym "*property-vector*"))+                                                                                let !aw_6 = Core.Types.Atom (Core.Types.UnboundSym "put")+                                                                                kl_V1266 `pseq` (appl_4 `pseq` (appl_5 `pseq` applyWrapper aw_6 [kl_V1266,+                                                                                                                                                 Core.Types.Atom (Core.Types.UnboundSym "shen.lambda-form"),+                                                                                                                                                 appl_4,+                                                                                                                                                 appl_5]))+                                                          in case kl_V1267 of+                                                                 kl_V1267@(Atom (N (KI 0))) -> pat_cond_0+                                                                 _ -> pat_cond_1++kl_shen_free_variable_check :: Core.Types.KLValue ->+                               Core.Types.KLValue ->+                               Core.Types.KLContext Core.Types.Env Core.Types.KLValue+kl_shen_free_variable_check (!kl_V1270) (!kl_V1271) = do !kl_if_0 <- let pat_cond_1 kl_V1271 kl_V1271h kl_V1271t = do !kl_if_2 <- let pat_cond_3 kl_V1271t kl_V1271th kl_V1271tt = do let !appl_4 = Atom Nil+                                                                                                                                                                                      !kl_if_5 <- appl_4 `pseq` (kl_V1271tt `pseq` eq appl_4 kl_V1271tt)+                                                                                                                                                                                      case kl_if_5 of+                                                                                                                                                                                          Atom (B (True)) -> do return (Atom (B True))+                                                                                                                                                                                          Atom (B (False)) -> do do return (Atom (B False))+                                                                                                                                                                                          _ -> throwError "if: expected boolean"+                                                                                                                                      pat_cond_6 = do do return (Atom (B False))+                                                                                                                                   in case kl_V1271t of+                                                                                                                                          !(kl_V1271t@(Cons (!kl_V1271th)+                                                                                                                                                            (!kl_V1271tt))) -> pat_cond_3 kl_V1271t kl_V1271th kl_V1271tt+                                                                                                                                          _ -> pat_cond_6+                                                                                                                      case kl_if_2 of+                                                                                                                          Atom (B (True)) -> do return (Atom (B True))+                                                                                                                          Atom (B (False)) -> do do return (Atom (B False))+                                                                                                                          _ -> throwError "if: expected boolean"+                                                                         pat_cond_7 = do do return (Atom (B False))+                                                                      in case kl_V1271 of+                                                                             !(kl_V1271@(Cons (!kl_V1271h)+                                                                                              (!kl_V1271t))) -> pat_cond_1 kl_V1271 kl_V1271h kl_V1271t+                                                                             _ -> pat_cond_7+                                                         case kl_if_0 of+                                                             Atom (B (True)) -> do let !appl_8 = ApplC (Func "lambda" (Context (\(!kl_Bound) -> do let !appl_9 = ApplC (Func "lambda" (Context (\(!kl_Free) -> do kl_V1270 `pseq` (kl_Free `pseq` kl_shen_free_variable_warnings kl_V1270 kl_Free))))+                                                                                                                                                   !appl_10 <- kl_V1271 `pseq` tl kl_V1271+                                                                                                                                                   !appl_11 <- appl_10 `pseq` hd appl_10+                                                                                                                                                   !appl_12 <- kl_Bound `pseq` (appl_11 `pseq` kl_shen_extract_free_vars kl_Bound appl_11)+                                                                                                                                                   appl_12 `pseq` applyWrapper appl_9 [appl_12])))+                                                                                   !appl_13 <- kl_V1271 `pseq` hd kl_V1271+                                                                                   !appl_14 <- appl_13 `pseq` kl_shen_extract_vars appl_13+                                                                                   appl_14 `pseq` applyWrapper appl_8 [appl_14]+                                                             Atom (B (False)) -> do do let !aw_15 = Core.Types.Atom (Core.Types.UnboundSym "shen.f_error")+                                                                                       applyWrapper aw_15 [ApplC (wrapNamed "shen.free_variable_check" kl_shen_free_variable_check)]+                                                             _ -> throwError "if: expected boolean"++kl_shen_extract_vars :: Core.Types.KLValue ->+                        Core.Types.KLContext Core.Types.Env Core.Types.KLValue+kl_shen_extract_vars (!kl_V1273) = do let !aw_0 = Core.Types.Atom (Core.Types.UnboundSym "variable?")+                                      !kl_if_1 <- kl_V1273 `pseq` applyWrapper aw_0 [kl_V1273]+                                      case kl_if_1 of+                                          Atom (B (True)) -> do let !appl_2 = Atom Nil+                                                                kl_V1273 `pseq` (appl_2 `pseq` klCons kl_V1273 appl_2)+                                          Atom (B (False)) -> do let pat_cond_3 kl_V1273 kl_V1273h kl_V1273t = do !appl_4 <- kl_V1273h `pseq` kl_shen_extract_vars kl_V1273h+                                                                                                                  !appl_5 <- kl_V1273t `pseq` kl_shen_extract_vars kl_V1273t+                                                                                                                  let !aw_6 = Core.Types.Atom (Core.Types.UnboundSym "union")+                                                                                                                  appl_4 `pseq` (appl_5 `pseq` applyWrapper aw_6 [appl_4,+                                                                                                                                                                  appl_5])+                                                                     pat_cond_7 = do do return (Atom Nil)+                                                                  in case kl_V1273 of+                                                                         !(kl_V1273@(Cons (!kl_V1273h)+                                                                                          (!kl_V1273t))) -> pat_cond_3 kl_V1273 kl_V1273h kl_V1273t+                                                                         _ -> pat_cond_7+                                          _ -> throwError "if: expected boolean"++kl_shen_extract_free_vars :: Core.Types.KLValue ->+                             Core.Types.KLValue ->+                             Core.Types.KLContext Core.Types.Env Core.Types.KLValue+kl_shen_extract_free_vars (!kl_V1285) (!kl_V1286) = do !kl_if_0 <- let pat_cond_1 kl_V1286 kl_V1286h kl_V1286t = do !kl_if_2 <- let pat_cond_3 kl_V1286t kl_V1286th kl_V1286tt = do let !appl_4 = Atom Nil+                                                                                                                                                                                    !kl_if_5 <- appl_4 `pseq` (kl_V1286tt `pseq` eq appl_4 kl_V1286tt)+                                                                                                                                                                                    !kl_if_6 <- case kl_if_5 of+                                                                                                                                                                                                    Atom (B (True)) -> do let pat_cond_7 = do return (Atom (B True))+                                                                                                                                                                                                                              pat_cond_8 = do do return (Atom (B False))+                                                                                                                                                                                                                           in case kl_V1286h of+                                                                                                                                                                                                                                  kl_V1286h@(Atom (UnboundSym "protect")) -> pat_cond_7+                                                                                                                                                                                                                                  kl_V1286h@(ApplC (PL "protect"+                                                                                                                                                                                                                                                       _)) -> pat_cond_7+                                                                                                                                                                                                                                  kl_V1286h@(ApplC (Func "protect"+                                                                                                                                                                                                                                                         _)) -> pat_cond_7+                                                                                                                                                                                                                                  _ -> pat_cond_8+                                                                                                                                                                                                    Atom (B (False)) -> do do return (Atom (B False))+                                                                                                                                                                                                    _ -> throwError "if: expected boolean"+                                                                                                                                                                                    case kl_if_6 of+                                                                                                                                                                                        Atom (B (True)) -> do return (Atom (B True))+                                                                                                                                                                                        Atom (B (False)) -> do do return (Atom (B False))+                                                                                                                                                                                        _ -> throwError "if: expected boolean"+                                                                                                                                    pat_cond_9 = do do return (Atom (B False))+                                                                                                                                 in case kl_V1286t of+                                                                                                                                        !(kl_V1286t@(Cons (!kl_V1286th)+                                                                                                                                                          (!kl_V1286tt))) -> pat_cond_3 kl_V1286t kl_V1286th kl_V1286tt+                                                                                                                                        _ -> pat_cond_9+                                                                                                                    case kl_if_2 of+                                                                                                                        Atom (B (True)) -> do return (Atom (B True))+                                                                                                                        Atom (B (False)) -> do do return (Atom (B False))+                                                                                                                        _ -> throwError "if: expected boolean"+                                                                       pat_cond_10 = do do return (Atom (B False))+                                                                    in case kl_V1286 of+                                                                           !(kl_V1286@(Cons (!kl_V1286h)+                                                                                            (!kl_V1286t))) -> pat_cond_1 kl_V1286 kl_V1286h kl_V1286t+                                                                           _ -> pat_cond_10+                                                       case kl_if_0 of+                                                           Atom (B (True)) -> do return (Atom Nil)+                                                           Atom (B (False)) -> do let !aw_11 = Core.Types.Atom (Core.Types.UnboundSym "variable?")+                                                                                  !kl_if_12 <- kl_V1286 `pseq` applyWrapper aw_11 [kl_V1286]+                                                                                  !kl_if_13 <- case kl_if_12 of+                                                                                                   Atom (B (True)) -> do let !aw_14 = Core.Types.Atom (Core.Types.UnboundSym "element?")+                                                                                                                         !appl_15 <- kl_V1286 `pseq` (kl_V1285 `pseq` applyWrapper aw_14 [kl_V1286,+                                                                                                                                                                                          kl_V1285])+                                                                                                                         let !aw_16 = Core.Types.Atom (Core.Types.UnboundSym "not")+                                                                                                                         !kl_if_17 <- appl_15 `pseq` applyWrapper aw_16 [appl_15]+                                                                                                                         case kl_if_17 of+                                                                                                                             Atom (B (True)) -> do return (Atom (B True))+                                                                                                                             Atom (B (False)) -> do do return (Atom (B False))+                                                                                                                             _ -> throwError "if: expected boolean"+                                                                                                   Atom (B (False)) -> do do return (Atom (B False))+                                                                                                   _ -> throwError "if: expected boolean"+                                                                                  case kl_if_13 of+                                                                                      Atom (B (True)) -> do let !appl_18 = Atom Nil+                                                                                                            kl_V1286 `pseq` (appl_18 `pseq` klCons kl_V1286 appl_18)+                                                                                      Atom (B (False)) -> do !kl_if_19 <- let pat_cond_20 kl_V1286 kl_V1286h kl_V1286t = do !kl_if_21 <- let pat_cond_22 = do !kl_if_23 <- let pat_cond_24 kl_V1286t kl_V1286th kl_V1286tt = do !kl_if_25 <- let pat_cond_26 kl_V1286tt kl_V1286tth kl_V1286ttt = do let !appl_27 = Atom Nil+                                                                                                                                                                                                                                                                                                                                                     !kl_if_28 <- appl_27 `pseq` (kl_V1286ttt `pseq` eq appl_27 kl_V1286ttt)+                                                                                                                                                                                                                                                                                                                                                     case kl_if_28 of+                                                                                                                                                                                                                                                                                                                                                         Atom (B (True)) -> do return (Atom (B True))+                                                                                                                                                                                                                                                                                                                                                         Atom (B (False)) -> do do return (Atom (B False))+                                                                                                                                                                                                                                                                                                                                                         _ -> throwError "if: expected boolean"+                                                                                                                                                                                                                                                                                                 pat_cond_29 = do do return (Atom (B False))+                                                                                                                                                                                                                                                                                              in case kl_V1286tt of+                                                                                                                                                                                                                                                                                                     !(kl_V1286tt@(Cons (!kl_V1286tth)+                                                                                                                                                                                                                                                                                                                        (!kl_V1286ttt))) -> pat_cond_26 kl_V1286tt kl_V1286tth kl_V1286ttt+                                                                                                                                                                                                                                                                                                     _ -> pat_cond_29+                                                                                                                                                                                                                                                                                case kl_if_25 of+                                                                                                                                                                                                                                                                                    Atom (B (True)) -> do return (Atom (B True))+                                                                                                                                                                                                                                                                                    Atom (B (False)) -> do do return (Atom (B False))+                                                                                                                                                                                                                                                                                    _ -> throwError "if: expected boolean"+                                                                                                                                                                                                                               pat_cond_30 = do do return (Atom (B False))+                                                                                                                                                                                                                            in case kl_V1286t of+                                                                                                                                                                                                                                   !(kl_V1286t@(Cons (!kl_V1286th)+                                                                                                                                                                                                                                                     (!kl_V1286tt))) -> pat_cond_24 kl_V1286t kl_V1286th kl_V1286tt+                                                                                                                                                                                                                                   _ -> pat_cond_30+                                                                                                                                                                                                              case kl_if_23 of+                                                                                                                                                                                                                  Atom (B (True)) -> do return (Atom (B True))+                                                                                                                                                                                                                  Atom (B (False)) -> do do return (Atom (B False))+                                                                                                                                                                                                                  _ -> throwError "if: expected boolean"+                                                                                                                                                                                             pat_cond_31 = do do return (Atom (B False))+                                                                                                                                                                                          in case kl_V1286h of+                                                                                                                                                                                                 kl_V1286h@(Atom (UnboundSym "lambda")) -> pat_cond_22+                                                                                                                                                                                                 kl_V1286h@(ApplC (PL "lambda"+                                                                                                                                                                                                                      _)) -> pat_cond_22+                                                                                                                                                                                                 kl_V1286h@(ApplC (Func "lambda"+                                                                                                                                                                                                                        _)) -> pat_cond_22+                                                                                                                                                                                                 _ -> pat_cond_31+                                                                                                                                                                            case kl_if_21 of+                                                                                                                                                                                Atom (B (True)) -> do return (Atom (B True))+                                                                                                                                                                                Atom (B (False)) -> do do return (Atom (B False))+                                                                                                                                                                                _ -> throwError "if: expected boolean"+                                                                                                                              pat_cond_32 = do do return (Atom (B False))+                                                                                                                           in case kl_V1286 of+                                                                                                                                  !(kl_V1286@(Cons (!kl_V1286h)+                                                                                                                                                   (!kl_V1286t))) -> pat_cond_20 kl_V1286 kl_V1286h kl_V1286t+                                                                                                                                  _ -> pat_cond_32+                                                                                                             case kl_if_19 of+                                                                                                                 Atom (B (True)) -> do !appl_33 <- kl_V1286 `pseq` tl kl_V1286+                                                                                                                                       !appl_34 <- appl_33 `pseq` hd appl_33+                                                                                                                                       !appl_35 <- appl_34 `pseq` (kl_V1285 `pseq` klCons appl_34 kl_V1285)+                                                                                                                                       !appl_36 <- kl_V1286 `pseq` tl kl_V1286+                                                                                                                                       !appl_37 <- appl_36 `pseq` tl appl_36+                                                                                                                                       !appl_38 <- appl_37 `pseq` hd appl_37+                                                                                                                                       appl_35 `pseq` (appl_38 `pseq` kl_shen_extract_free_vars appl_35 appl_38)+                                                                                                                 Atom (B (False)) -> do !kl_if_39 <- let pat_cond_40 kl_V1286 kl_V1286h kl_V1286t = do !kl_if_41 <- let pat_cond_42 = do !kl_if_43 <- let pat_cond_44 kl_V1286t kl_V1286th kl_V1286tt = do !kl_if_45 <- let pat_cond_46 kl_V1286tt kl_V1286tth kl_V1286ttt = do !kl_if_47 <- let pat_cond_48 kl_V1286ttt kl_V1286ttth kl_V1286tttt = do let !appl_49 = Atom Nil+                                                                                                                                                                                                                                                                                                                                                                                                                                                        !kl_if_50 <- appl_49 `pseq` (kl_V1286tttt `pseq` eq appl_49 kl_V1286tttt)+                                                                                                                                                                                                                                                                                                                                                                                                                                                        case kl_if_50 of+                                                                                                                                                                                                                                                                                                                                                                                                                                                            Atom (B (True)) -> do return (Atom (B True))+                                                                                                                                                                                                                                                                                                                                                                                                                                                            Atom (B (False)) -> do do return (Atom (B False))+                                                                                                                                                                                                                                                                                                                                                                                                                                                            _ -> throwError "if: expected boolean"+                                                                                                                                                                                                                                                                                                                                                                                                 pat_cond_51 = do do return (Atom (B False))+                                                                                                                                                                                                                                                                                                                                                                                              in case kl_V1286ttt of+                                                                                                                                                                                                                                                                                                                                                                                                     !(kl_V1286ttt@(Cons (!kl_V1286ttth)+                                                                                                                                                                                                                                                                                                                                                                                                                         (!kl_V1286tttt))) -> pat_cond_48 kl_V1286ttt kl_V1286ttth kl_V1286tttt+                                                                                                                                                                                                                                                                                                                                                                                                     _ -> pat_cond_51+                                                                                                                                                                                                                                                                                                                                                                                case kl_if_47 of+                                                                                                                                                                                                                                                                                                                                                                                    Atom (B (True)) -> do return (Atom (B True))+                                                                                                                                                                                                                                                                                                                                                                                    Atom (B (False)) -> do do return (Atom (B False))+                                                                                                                                                                                                                                                                                                                                                                                    _ -> throwError "if: expected boolean"+                                                                                                                                                                                                                                                                                                                            pat_cond_52 = do do return (Atom (B False))+                                                                                                                                                                                                                                                                                                                         in case kl_V1286tt of+                                                                                                                                                                                                                                                                                                                                !(kl_V1286tt@(Cons (!kl_V1286tth)+                                                                                                                                                                                                                                                                                                                                                   (!kl_V1286ttt))) -> pat_cond_46 kl_V1286tt kl_V1286tth kl_V1286ttt+                                                                                                                                                                                                                                                                                                                                _ -> pat_cond_52+                                                                                                                                                                                                                                                                                                           case kl_if_45 of+                                                                                                                                                                                                                                                                                                               Atom (B (True)) -> do return (Atom (B True))+                                                                                                                                                                                                                                                                                                               Atom (B (False)) -> do do return (Atom (B False))+                                                                                                                                                                                                                                                                                                               _ -> throwError "if: expected boolean"+                                                                                                                                                                                                                                                          pat_cond_53 = do do return (Atom (B False))+                                                                                                                                                                                                                                                       in case kl_V1286t of+                                                                                                                                                                                                                                                              !(kl_V1286t@(Cons (!kl_V1286th)+                                                                                                                                                                                                                                                                                (!kl_V1286tt))) -> pat_cond_44 kl_V1286t kl_V1286th kl_V1286tt+                                                                                                                                                                                                                                                              _ -> pat_cond_53+                                                                                                                                                                                                                                         case kl_if_43 of+                                                                                                                                                                                                                                             Atom (B (True)) -> do return (Atom (B True))+                                                                                                                                                                                                                                             Atom (B (False)) -> do do return (Atom (B False))+                                                                                                                                                                                                                                             _ -> throwError "if: expected boolean"+                                                                                                                                                                                                                        pat_cond_54 = do do return (Atom (B False))+                                                                                                                                                                                                                     in case kl_V1286h of+                                                                                                                                                                                                                            kl_V1286h@(Atom (UnboundSym "let")) -> pat_cond_42+                                                                                                                                                                                                                            kl_V1286h@(ApplC (PL "let"+                                                                                                                                                                                                                                                 _)) -> pat_cond_42+                                                                                                                                                                                                                            kl_V1286h@(ApplC (Func "let"+                                                                                                                                                                                                                                                   _)) -> pat_cond_42+                                                                                                                                                                                                                            _ -> pat_cond_54+                                                                                                                                                                                                       case kl_if_41 of+                                                                                                                                                                                                           Atom (B (True)) -> do return (Atom (B True))+                                                                                                                                                                                                           Atom (B (False)) -> do do return (Atom (B False))+                                                                                                                                                                                                           _ -> throwError "if: expected boolean"+                                                                                                                                                         pat_cond_55 = do do return (Atom (B False))+                                                                                                                                                      in case kl_V1286 of+                                                                                                                                                             !(kl_V1286@(Cons (!kl_V1286h)+                                                                                                                                                                              (!kl_V1286t))) -> pat_cond_40 kl_V1286 kl_V1286h kl_V1286t+                                                                                                                                                             _ -> pat_cond_55+                                                                                                                                        case kl_if_39 of+                                                                                                                                            Atom (B (True)) -> do !appl_56 <- kl_V1286 `pseq` tl kl_V1286+                                                                                                                                                                  !appl_57 <- appl_56 `pseq` tl appl_56+                                                                                                                                                                  !appl_58 <- appl_57 `pseq` hd appl_57+                                                                                                                                                                  !appl_59 <- kl_V1285 `pseq` (appl_58 `pseq` kl_shen_extract_free_vars kl_V1285 appl_58)+                                                                                                                                                                  !appl_60 <- kl_V1286 `pseq` tl kl_V1286+                                                                                                                                                                  !appl_61 <- appl_60 `pseq` hd appl_60+                                                                                                                                                                  !appl_62 <- appl_61 `pseq` (kl_V1285 `pseq` klCons appl_61 kl_V1285)+                                                                                                                                                                  !appl_63 <- kl_V1286 `pseq` tl kl_V1286+                                                                                                                                                                  !appl_64 <- appl_63 `pseq` tl appl_63+                                                                                                                                                                  !appl_65 <- appl_64 `pseq` tl appl_64+                                                                                                                                                                  !appl_66 <- appl_65 `pseq` hd appl_65+                                                                                                                                                                  !appl_67 <- appl_62 `pseq` (appl_66 `pseq` kl_shen_extract_free_vars appl_62 appl_66)+                                                                                                                                                                  let !aw_68 = Core.Types.Atom (Core.Types.UnboundSym "union")+                                                                                                                                                                  appl_59 `pseq` (appl_67 `pseq` applyWrapper aw_68 [appl_59,+                                                                                                                                                                                                                     appl_67])+                                                                                                                                            Atom (B (False)) -> do let pat_cond_69 kl_V1286 kl_V1286h kl_V1286t = do !appl_70 <- kl_V1285 `pseq` (kl_V1286h `pseq` kl_shen_extract_free_vars kl_V1285 kl_V1286h)+                                                                                                                                                                                                                     !appl_71 <- kl_V1285 `pseq` (kl_V1286t `pseq` kl_shen_extract_free_vars kl_V1285 kl_V1286t)+                                                                                                                                                                                                                     let !aw_72 = Core.Types.Atom (Core.Types.UnboundSym "union")+                                                                                                                                                                                                                     appl_70 `pseq` (appl_71 `pseq` applyWrapper aw_72 [appl_70,+                                                                                                                                                                                                                                                                        appl_71])+                                                                                                                                                                       pat_cond_73 = do do return (Atom Nil)+                                                                                                                                                                    in case kl_V1286 of+                                                                                                                                                                           !(kl_V1286@(Cons (!kl_V1286h)+                                                                                                                                                                                            (!kl_V1286t))) -> pat_cond_69 kl_V1286 kl_V1286h kl_V1286t+                                                                                                                                                                           _ -> pat_cond_73+                                                                                                                                            _ -> throwError "if: expected boolean"+                                                                                                                 _ -> throwError "if: expected boolean"+                                                                                      _ -> throwError "if: expected boolean"+                                                           _ -> throwError "if: expected boolean"++kl_shen_free_variable_warnings :: Core.Types.KLValue ->+                                  Core.Types.KLValue ->+                                  Core.Types.KLContext Core.Types.Env Core.Types.KLValue+kl_shen_free_variable_warnings (!kl_V1291) (!kl_V1292) = do let !appl_0 = Atom Nil+                                                            !kl_if_1 <- appl_0 `pseq` (kl_V1292 `pseq` eq appl_0 kl_V1292)+                                                            case kl_if_1 of+                                                                Atom (B (True)) -> do return (Core.Types.Atom (Core.Types.UnboundSym "_"))+                                                                Atom (B (False)) -> do do !appl_2 <- kl_V1292 `pseq` kl_shen_list_variables kl_V1292+                                                                                          let !aw_3 = Core.Types.Atom (Core.Types.UnboundSym "shen.app")+                                                                                          !appl_4 <- appl_2 `pseq` applyWrapper aw_3 [appl_2,+                                                                                                                                      Core.Types.Atom (Core.Types.Str ""),+                                                                                                                                      Core.Types.Atom (Core.Types.UnboundSym "shen.a")]+                                                                                          !appl_5 <- appl_4 `pseq` cn (Core.Types.Atom (Core.Types.Str ": ")) appl_4+                                                                                          let !aw_6 = Core.Types.Atom (Core.Types.UnboundSym "shen.app")+                                                                                          !appl_7 <- kl_V1291 `pseq` (appl_5 `pseq` applyWrapper aw_6 [kl_V1291,+                                                                                                                                                       appl_5,+                                                                                                                                                       Core.Types.Atom (Core.Types.UnboundSym "shen.a")])+                                                                                          !appl_8 <- appl_7 `pseq` cn (Core.Types.Atom (Core.Types.Str "error: the following variables are free in ")) appl_7+                                                                                          appl_8 `pseq` simpleError appl_8+                                                                _ -> throwError "if: expected boolean"++kl_shen_list_variables :: Core.Types.KLValue ->+                          Core.Types.KLContext Core.Types.Env Core.Types.KLValue+kl_shen_list_variables (!kl_V1294) = do !kl_if_0 <- let pat_cond_1 kl_V1294 kl_V1294h kl_V1294t = do let !appl_2 = Atom Nil+                                                                                                     !kl_if_3 <- appl_2 `pseq` (kl_V1294t `pseq` eq appl_2 kl_V1294t)+                                                                                                     case kl_if_3 of+                                                                                                         Atom (B (True)) -> do return (Atom (B True))+                                                                                                         Atom (B (False)) -> do do return (Atom (B False))+                                                                                                         _ -> throwError "if: expected boolean"+                                                        pat_cond_4 = do do return (Atom (B False))+                                                     in case kl_V1294 of+                                                            !(kl_V1294@(Cons (!kl_V1294h)+                                                                             (!kl_V1294t))) -> pat_cond_1 kl_V1294 kl_V1294h kl_V1294t+                                                            _ -> pat_cond_4+                                        case kl_if_0 of+                                            Atom (B (True)) -> do !appl_5 <- kl_V1294 `pseq` hd kl_V1294+                                                                  !appl_6 <- appl_5 `pseq` str appl_5+                                                                  appl_6 `pseq` cn appl_6 (Core.Types.Atom (Core.Types.Str "."))+                                            Atom (B (False)) -> do let pat_cond_7 kl_V1294 kl_V1294h kl_V1294t = do !appl_8 <- kl_V1294h `pseq` str kl_V1294h+                                                                                                                    !appl_9 <- kl_V1294t `pseq` kl_shen_list_variables kl_V1294t+                                                                                                                    !appl_10 <- appl_9 `pseq` cn (Core.Types.Atom (Core.Types.Str ", ")) appl_9+                                                                                                                    appl_8 `pseq` (appl_10 `pseq` cn appl_8 appl_10)+                                                                       pat_cond_11 = do do let !aw_12 = Core.Types.Atom (Core.Types.UnboundSym "shen.f_error")+                                                                                           applyWrapper aw_12 [ApplC (wrapNamed "shen.list_variables" kl_shen_list_variables)]+                                                                    in case kl_V1294 of+                                                                           !(kl_V1294@(Cons (!kl_V1294h)+                                                                                            (!kl_V1294t))) -> pat_cond_7 kl_V1294 kl_V1294h kl_V1294t+                                                                           _ -> pat_cond_11+                                            _ -> throwError "if: expected boolean"++kl_shen_strip_protect :: Core.Types.KLValue ->+                         Core.Types.KLContext Core.Types.Env Core.Types.KLValue+kl_shen_strip_protect (!kl_V1296) = do !kl_if_0 <- let pat_cond_1 kl_V1296 kl_V1296h kl_V1296t = do !kl_if_2 <- let pat_cond_3 kl_V1296t kl_V1296th kl_V1296tt = do let !appl_4 = Atom Nil+                                                                                                                                                                    !kl_if_5 <- appl_4 `pseq` (kl_V1296tt `pseq` eq appl_4 kl_V1296tt)+                                                                                                                                                                    !kl_if_6 <- case kl_if_5 of+                                                                                                                                                                                    Atom (B (True)) -> do let pat_cond_7 = do return (Atom (B True))+                                                                                                                                                                                                              pat_cond_8 = do do return (Atom (B False))+                                                                                                                                                                                                           in case kl_V1296h of+                                                                                                                                                                                                                  kl_V1296h@(Atom (UnboundSym "protect")) -> pat_cond_7+                                                                                                                                                                                                                  kl_V1296h@(ApplC (PL "protect"+                                                                                                                                                                                                                                       _)) -> pat_cond_7+                                                                                                                                                                                                                  kl_V1296h@(ApplC (Func "protect"+                                                                                                                                                                                                                                         _)) -> pat_cond_7+                                                                                                                                                                                                                  _ -> pat_cond_8+                                                                                                                                                                                    Atom (B (False)) -> do do return (Atom (B False))+                                                                                                                                                                                    _ -> throwError "if: expected boolean"+                                                                                                                                                                    case kl_if_6 of+                                                                                                                                                                        Atom (B (True)) -> do return (Atom (B True))+                                                                                                                                                                        Atom (B (False)) -> do do return (Atom (B False))+                                                                                                                                                                        _ -> throwError "if: expected boolean"+                                                                                                                    pat_cond_9 = do do return (Atom (B False))+                                                                                                                 in case kl_V1296t of+                                                                                                                        !(kl_V1296t@(Cons (!kl_V1296th)+                                                                                                                                          (!kl_V1296tt))) -> pat_cond_3 kl_V1296t kl_V1296th kl_V1296tt+                                                                                                                        _ -> pat_cond_9+                                                                                                    case kl_if_2 of+                                                                                                        Atom (B (True)) -> do return (Atom (B True))+                                                                                                        Atom (B (False)) -> do do return (Atom (B False))+                                                                                                        _ -> throwError "if: expected boolean"+                                                       pat_cond_10 = do do return (Atom (B False))+                                                    in case kl_V1296 of+                                                           !(kl_V1296@(Cons (!kl_V1296h)+                                                                            (!kl_V1296t))) -> pat_cond_1 kl_V1296 kl_V1296h kl_V1296t+                                                           _ -> pat_cond_10+                                       case kl_if_0 of+                                           Atom (B (True)) -> do !appl_11 <- kl_V1296 `pseq` tl kl_V1296+                                                                 !appl_12 <- appl_11 `pseq` hd appl_11+                                                                 appl_12 `pseq` kl_shen_strip_protect appl_12+                                           Atom (B (False)) -> do let pat_cond_13 kl_V1296 kl_V1296h kl_V1296t = do let !appl_14 = ApplC (Func "lambda" (Context (\(!kl_Z) -> do kl_Z `pseq` kl_shen_strip_protect kl_Z)))+                                                                                                                    let !aw_15 = Core.Types.Atom (Core.Types.UnboundSym "map")+                                                                                                                    appl_14 `pseq` (kl_V1296 `pseq` applyWrapper aw_15 [appl_14,+                                                                                                                                                                        kl_V1296])+                                                                      pat_cond_16 = do do return kl_V1296+                                                                   in case kl_V1296 of+                                                                          !(kl_V1296@(Cons (!kl_V1296h)+                                                                                           (!kl_V1296t))) -> pat_cond_13 kl_V1296 kl_V1296h kl_V1296t+                                                                          _ -> pat_cond_16+                                           _ -> throwError "if: expected boolean"++kl_shen_linearise :: Core.Types.KLValue ->+                     Core.Types.KLContext Core.Types.Env Core.Types.KLValue+kl_shen_linearise (!kl_V1298) = do !kl_if_0 <- let pat_cond_1 kl_V1298 kl_V1298h kl_V1298t = do !kl_if_2 <- let pat_cond_3 kl_V1298t kl_V1298th kl_V1298tt = do let !appl_4 = Atom Nil+                                                                                                                                                                !kl_if_5 <- appl_4 `pseq` (kl_V1298tt `pseq` eq appl_4 kl_V1298tt)+                                                                                                                                                                case kl_if_5 of+                                                                                                                                                                    Atom (B (True)) -> do return (Atom (B True))+                                                                                                                                                                    Atom (B (False)) -> do do return (Atom (B False))+                                                                                                                                                                    _ -> throwError "if: expected boolean"+                                                                                                                pat_cond_6 = do do return (Atom (B False))+                                                                                                             in case kl_V1298t of+                                                                                                                    !(kl_V1298t@(Cons (!kl_V1298th)+                                                                                                                                      (!kl_V1298tt))) -> pat_cond_3 kl_V1298t kl_V1298th kl_V1298tt+                                                                                                                    _ -> pat_cond_6+                                                                                                case kl_if_2 of+                                                                                                    Atom (B (True)) -> do return (Atom (B True))+                                                                                                    Atom (B (False)) -> do do return (Atom (B False))+                                                                                                    _ -> throwError "if: expected boolean"+                                                   pat_cond_7 = do do return (Atom (B False))+                                                in case kl_V1298 of+                                                       !(kl_V1298@(Cons (!kl_V1298h)+                                                                        (!kl_V1298t))) -> pat_cond_1 kl_V1298 kl_V1298h kl_V1298t+                                                       _ -> pat_cond_7+                                   case kl_if_0 of+                                       Atom (B (True)) -> do !appl_8 <- kl_V1298 `pseq` hd kl_V1298+                                                             !appl_9 <- appl_8 `pseq` kl_shen_flatten appl_8+                                                             !appl_10 <- kl_V1298 `pseq` hd kl_V1298+                                                             !appl_11 <- kl_V1298 `pseq` tl kl_V1298+                                                             !appl_12 <- appl_11 `pseq` hd appl_11+                                                             appl_9 `pseq` (appl_10 `pseq` (appl_12 `pseq` kl_shen_linearise_help appl_9 appl_10 appl_12))+                                       Atom (B (False)) -> do do let !aw_13 = Core.Types.Atom (Core.Types.UnboundSym "shen.f_error")+                                                                 applyWrapper aw_13 [ApplC (wrapNamed "shen.linearise" kl_shen_linearise)]+                                       _ -> throwError "if: expected boolean"++kl_shen_flatten :: Core.Types.KLValue ->+                   Core.Types.KLContext Core.Types.Env Core.Types.KLValue+kl_shen_flatten (!kl_V1300) = do let !appl_0 = Atom Nil+                                 !kl_if_1 <- appl_0 `pseq` (kl_V1300 `pseq` eq appl_0 kl_V1300)+                                 case kl_if_1 of+                                     Atom (B (True)) -> do return (Atom Nil)+                                     Atom (B (False)) -> do let pat_cond_2 kl_V1300 kl_V1300h kl_V1300t = do !appl_3 <- kl_V1300h `pseq` kl_shen_flatten kl_V1300h+                                                                                                             !appl_4 <- kl_V1300t `pseq` kl_shen_flatten kl_V1300t+                                                                                                             let !aw_5 = Core.Types.Atom (Core.Types.UnboundSym "append")+                                                                                                             appl_3 `pseq` (appl_4 `pseq` applyWrapper aw_5 [appl_3,+                                                                                                                                                             appl_4])+                                                                pat_cond_6 = do do let !appl_7 = Atom Nil+                                                                                   kl_V1300 `pseq` (appl_7 `pseq` klCons kl_V1300 appl_7)+                                                             in case kl_V1300 of+                                                                    !(kl_V1300@(Cons (!kl_V1300h)+                                                                                     (!kl_V1300t))) -> pat_cond_2 kl_V1300 kl_V1300h kl_V1300t+                                                                    _ -> pat_cond_6+                                     _ -> throwError "if: expected boolean"++kl_shen_linearise_help :: Core.Types.KLValue ->+                          Core.Types.KLValue ->+                          Core.Types.KLValue ->+                          Core.Types.KLContext Core.Types.Env Core.Types.KLValue+kl_shen_linearise_help (!kl_V1304) (!kl_V1305) (!kl_V1306) = do let !appl_0 = Atom Nil+                                                                !kl_if_1 <- appl_0 `pseq` (kl_V1304 `pseq` eq appl_0 kl_V1304)+                                                                case kl_if_1 of+                                                                    Atom (B (True)) -> do let !appl_2 = Atom Nil+                                                                                          !appl_3 <- kl_V1306 `pseq` (appl_2 `pseq` klCons kl_V1306 appl_2)+                                                                                          kl_V1305 `pseq` (appl_3 `pseq` klCons kl_V1305 appl_3)+                                                                    Atom (B (False)) -> do let pat_cond_4 kl_V1304 kl_V1304h kl_V1304t = do let !aw_5 = Core.Types.Atom (Core.Types.UnboundSym "variable?")+                                                                                                                                            !kl_if_6 <- kl_V1304h `pseq` applyWrapper aw_5 [kl_V1304h]+                                                                                                                                            !kl_if_7 <- case kl_if_6 of+                                                                                                                                                            Atom (B (True)) -> do let !aw_8 = Core.Types.Atom (Core.Types.UnboundSym "element?")+                                                                                                                                                                                  !kl_if_9 <- kl_V1304h `pseq` (kl_V1304t `pseq` applyWrapper aw_8 [kl_V1304h,+                                                                                                                                                                                                                                                    kl_V1304t])+                                                                                                                                                                                  case kl_if_9 of+                                                                                                                                                                                      Atom (B (True)) -> do return (Atom (B True))+                                                                                                                                                                                      Atom (B (False)) -> do do return (Atom (B False))+                                                                                                                                                                                      _ -> throwError "if: expected boolean"+                                                                                                                                                            Atom (B (False)) -> do do return (Atom (B False))+                                                                                                                                                            _ -> throwError "if: expected boolean"+                                                                                                                                            case kl_if_7 of+                                                                                                                                                Atom (B (True)) -> do let !appl_10 = ApplC (Func "lambda" (Context (\(!kl_Var) -> do let !appl_11 = ApplC (Func "lambda" (Context (\(!kl_NewAction) -> do let !appl_12 = ApplC (Func "lambda" (Context (\(!kl_NewPatts) -> do kl_V1304t `pseq` (kl_NewPatts `pseq` (kl_NewAction `pseq` kl_shen_linearise_help kl_V1304t kl_NewPatts kl_NewAction)))))+                                                                                                                                                                                                                                                                                                          !appl_13 <- kl_V1304h `pseq` (kl_Var `pseq` (kl_V1305 `pseq` kl_shen_linearise_X kl_V1304h kl_Var kl_V1305))+                                                                                                                                                                                                                                                                                                          appl_13 `pseq` applyWrapper appl_12 [appl_13])))+                                                                                                                                                                                                                                     let !appl_14 = Atom Nil+                                                                                                                                                                                                                                     !appl_15 <- kl_Var `pseq` (appl_14 `pseq` klCons kl_Var appl_14)+                                                                                                                                                                                                                                     !appl_16 <- kl_V1304h `pseq` (appl_15 `pseq` klCons kl_V1304h appl_15)+                                                                                                                                                                                                                                     !appl_17 <- appl_16 `pseq` klCons (ApplC (wrapNamed "=" eq)) appl_16+                                                                                                                                                                                                                                     let !appl_18 = Atom Nil+                                                                                                                                                                                                                                     !appl_19 <- kl_V1306 `pseq` (appl_18 `pseq` klCons kl_V1306 appl_18)+                                                                                                                                                                                                                                     !appl_20 <- appl_17 `pseq` (appl_19 `pseq` klCons appl_17 appl_19)+                                                                                                                                                                                                                                     !appl_21 <- appl_20 `pseq` klCons (Core.Types.Atom (Core.Types.UnboundSym "where")) appl_20+                                                                                                                                                                                                                                     appl_21 `pseq` applyWrapper appl_11 [appl_21])))+                                                                                                                                                                      let !aw_22 = Core.Types.Atom (Core.Types.UnboundSym "gensym")+                                                                                                                                                                      !appl_23 <- kl_V1304h `pseq` applyWrapper aw_22 [kl_V1304h]+                                                                                                                                                                      appl_23 `pseq` applyWrapper appl_10 [appl_23]+                                                                                                                                                Atom (B (False)) -> do do kl_V1304t `pseq` (kl_V1305 `pseq` (kl_V1306 `pseq` kl_shen_linearise_help kl_V1304t kl_V1305 kl_V1306))+                                                                                                                                                _ -> throwError "if: expected boolean"+                                                                                               pat_cond_24 = do do let !aw_25 = Core.Types.Atom (Core.Types.UnboundSym "shen.f_error")+                                                                                                                   applyWrapper aw_25 [ApplC (wrapNamed "shen.linearise_help" kl_shen_linearise_help)]+                                                                                            in case kl_V1304 of+                                                                                                   !(kl_V1304@(Cons (!kl_V1304h)+                                                                                                                    (!kl_V1304t))) -> pat_cond_4 kl_V1304 kl_V1304h kl_V1304t+                                                                                                   _ -> pat_cond_24+                                                                    _ -> throwError "if: expected boolean"++kl_shen_linearise_X :: Core.Types.KLValue ->+                       Core.Types.KLValue ->+                       Core.Types.KLValue ->+                       Core.Types.KLContext Core.Types.Env Core.Types.KLValue+kl_shen_linearise_X (!kl_V1319) (!kl_V1320) (!kl_V1321) = do !kl_if_0 <- kl_V1321 `pseq` (kl_V1319 `pseq` eq kl_V1321 kl_V1319)+                                                             case kl_if_0 of+                                                                 Atom (B (True)) -> do return kl_V1320+                                                                 Atom (B (False)) -> do let pat_cond_1 kl_V1321 kl_V1321h kl_V1321t = do let !appl_2 = ApplC (Func "lambda" (Context (\(!kl_L) -> do !kl_if_3 <- kl_L `pseq` (kl_V1321h `pseq` eq kl_L kl_V1321h)+                                                                                                                                                                                                     case kl_if_3 of+                                                                                                                                                                                                         Atom (B (True)) -> do !appl_4 <- kl_V1319 `pseq` (kl_V1320 `pseq` (kl_V1321t `pseq` kl_shen_linearise_X kl_V1319 kl_V1320 kl_V1321t))+                                                                                                                                                                                                                               kl_V1321h `pseq` (appl_4 `pseq` klCons kl_V1321h appl_4)+                                                                                                                                                                                                         Atom (B (False)) -> do do kl_L `pseq` (kl_V1321t `pseq` klCons kl_L kl_V1321t)+                                                                                                                                                                                                         _ -> throwError "if: expected boolean")))+                                                                                                                                         !appl_5 <- kl_V1319 `pseq` (kl_V1320 `pseq` (kl_V1321h `pseq` kl_shen_linearise_X kl_V1319 kl_V1320 kl_V1321h))+                                                                                                                                         appl_5 `pseq` applyWrapper appl_2 [appl_5]+                                                                                            pat_cond_6 = do do return kl_V1321+                                                                                         in case kl_V1321 of+                                                                                                !(kl_V1321@(Cons (!kl_V1321h)+                                                                                                                 (!kl_V1321t))) -> pat_cond_1 kl_V1321 kl_V1321h kl_V1321t+                                                                                                _ -> pat_cond_6+                                                                 _ -> throwError "if: expected boolean"++kl_shen_aritycheck :: Core.Types.KLValue ->+                      Core.Types.KLValue ->+                      Core.Types.KLContext Core.Types.Env Core.Types.KLValue+kl_shen_aritycheck (!kl_V1324) (!kl_V1325) = do !kl_if_0 <- let pat_cond_1 kl_V1325 kl_V1325h kl_V1325t = do !kl_if_2 <- let pat_cond_3 kl_V1325h kl_V1325hh kl_V1325ht = do !kl_if_4 <- let pat_cond_5 kl_V1325ht kl_V1325hth kl_V1325htt = do let !appl_6 = Atom Nil+                                                                                                                                                                                                                                                !kl_if_7 <- appl_6 `pseq` (kl_V1325htt `pseq` eq appl_6 kl_V1325htt)+                                                                                                                                                                                                                                                !kl_if_8 <- case kl_if_7 of+                                                                                                                                                                                                                                                                Atom (B (True)) -> do let !appl_9 = Atom Nil+                                                                                                                                                                                                                                                                                      !kl_if_10 <- appl_9 `pseq` (kl_V1325t `pseq` eq appl_9 kl_V1325t)+                                                                                                                                                                                                                                                                                      case kl_if_10 of+                                                                                                                                                                                                                                                                                          Atom (B (True)) -> do return (Atom (B True))+                                                                                                                                                                                                                                                                                          Atom (B (False)) -> do do return (Atom (B False))+                                                                                                                                                                                                                                                                                          _ -> throwError "if: expected boolean"+                                                                                                                                                                                                                                                                Atom (B (False)) -> do do return (Atom (B False))+                                                                                                                                                                                                                                                                _ -> throwError "if: expected boolean"+                                                                                                                                                                                                                                                case kl_if_8 of+                                                                                                                                                                                                                                                    Atom (B (True)) -> do return (Atom (B True))+                                                                                                                                                                                                                                                    Atom (B (False)) -> do do return (Atom (B False))+                                                                                                                                                                                                                                                    _ -> throwError "if: expected boolean"+                                                                                                                                                                                             pat_cond_11 = do do return (Atom (B False))+                                                                                                                                                                                          in case kl_V1325ht of+                                                                                                                                                                                                 !(kl_V1325ht@(Cons (!kl_V1325hth)+                                                                                                                                                                                                                    (!kl_V1325htt))) -> pat_cond_5 kl_V1325ht kl_V1325hth kl_V1325htt+                                                                                                                                                                                                 _ -> pat_cond_11+                                                                                                                                                                             case kl_if_4 of+                                                                                                                                                                                 Atom (B (True)) -> do return (Atom (B True))+                                                                                                                                                                                 Atom (B (False)) -> do do return (Atom (B False))+                                                                                                                                                                                 _ -> throwError "if: expected boolean"+                                                                                                                             pat_cond_12 = do do return (Atom (B False))+                                                                                                                          in case kl_V1325h of+                                                                                                                                 !(kl_V1325h@(Cons (!kl_V1325hh)+                                                                                                                                                   (!kl_V1325ht))) -> pat_cond_3 kl_V1325h kl_V1325hh kl_V1325ht+                                                                                                                                 _ -> pat_cond_12+                                                                                                             case kl_if_2 of+                                                                                                                 Atom (B (True)) -> do return (Atom (B True))+                                                                                                                 Atom (B (False)) -> do do return (Atom (B False))+                                                                                                                 _ -> throwError "if: expected boolean"+                                                                pat_cond_13 = do do return (Atom (B False))+                                                             in case kl_V1325 of+                                                                    !(kl_V1325@(Cons (!kl_V1325h)+                                                                                     (!kl_V1325t))) -> pat_cond_1 kl_V1325 kl_V1325h kl_V1325t+                                                                    _ -> pat_cond_13+                                                case kl_if_0 of+                                                    Atom (B (True)) -> do !appl_14 <- kl_V1325 `pseq` hd kl_V1325+                                                                          !appl_15 <- appl_14 `pseq` tl appl_14+                                                                          !appl_16 <- appl_15 `pseq` hd appl_15+                                                                          !appl_17 <- appl_16 `pseq` kl_shen_aritycheck_action appl_16+                                                                          let !aw_18 = Core.Types.Atom (Core.Types.UnboundSym "arity")+                                                                          !appl_19 <- kl_V1324 `pseq` applyWrapper aw_18 [kl_V1324]+                                                                          !appl_20 <- kl_V1325 `pseq` hd kl_V1325+                                                                          !appl_21 <- appl_20 `pseq` hd appl_20+                                                                          let !aw_22 = Core.Types.Atom (Core.Types.UnboundSym "length")+                                                                          !appl_23 <- appl_21 `pseq` applyWrapper aw_22 [appl_21]+                                                                          !appl_24 <- kl_V1324 `pseq` (appl_19 `pseq` (appl_23 `pseq` kl_shen_aritycheck_name kl_V1324 appl_19 appl_23))+                                                                          let !aw_25 = Core.Types.Atom (Core.Types.UnboundSym "do")+                                                                          appl_17 `pseq` (appl_24 `pseq` applyWrapper aw_25 [appl_17,+                                                                                                                             appl_24])+                                                    Atom (B (False)) -> do !kl_if_26 <- let pat_cond_27 kl_V1325 kl_V1325h kl_V1325t = do !kl_if_28 <- let pat_cond_29 kl_V1325h kl_V1325hh kl_V1325ht = do !kl_if_30 <- let pat_cond_31 kl_V1325ht kl_V1325hth kl_V1325htt = do let !appl_32 = Atom Nil+                                                                                                                                                                                                                                                                                 !kl_if_33 <- appl_32 `pseq` (kl_V1325htt `pseq` eq appl_32 kl_V1325htt)+                                                                                                                                                                                                                                                                                 !kl_if_34 <- case kl_if_33 of+                                                                                                                                                                                                                                                                                                  Atom (B (True)) -> do !kl_if_35 <- let pat_cond_36 kl_V1325t kl_V1325th kl_V1325tt = do !kl_if_37 <- let pat_cond_38 kl_V1325th kl_V1325thh kl_V1325tht = do !kl_if_39 <- let pat_cond_40 kl_V1325tht kl_V1325thth kl_V1325thtt = do let !appl_41 = Atom Nil+                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                       !kl_if_42 <- appl_41 `pseq` (kl_V1325thtt `pseq` eq appl_41 kl_V1325thtt)+                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                       case kl_if_42 of+                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                           Atom (B (True)) -> do return (Atom (B True))+                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                           Atom (B (False)) -> do do return (Atom (B False))+                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                           _ -> throwError "if: expected boolean"+                                                                                                                                                                                                                                                                                                                                                                                                                                                                                pat_cond_43 = do do return (Atom (B False))+                                                                                                                                                                                                                                                                                                                                                                                                                                                                             in case kl_V1325tht of+                                                                                                                                                                                                                                                                                                                                                                                                                                                                                    !(kl_V1325tht@(Cons (!kl_V1325thth)+                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                        (!kl_V1325thtt))) -> pat_cond_40 kl_V1325tht kl_V1325thth kl_V1325thtt+                                                                                                                                                                                                                                                                                                                                                                                                                                                                                    _ -> pat_cond_43+                                                                                                                                                                                                                                                                                                                                                                                                                                                               case kl_if_39 of+                                                                                                                                                                                                                                                                                                                                                                                                                                                                   Atom (B (True)) -> do return (Atom (B True))+                                                                                                                                                                                                                                                                                                                                                                                                                                                                   Atom (B (False)) -> do do return (Atom (B False))+                                                                                                                                                                                                                                                                                                                                                                                                                                                                   _ -> throwError "if: expected boolean"+                                                                                                                                                                                                                                                                                                                                                                                                           pat_cond_44 = do do return (Atom (B False))+                                                                                                                                                                                                                                                                                                                                                                                                        in case kl_V1325th of+                                                                                                                                                                                                                                                                                                                                                                                                               !(kl_V1325th@(Cons (!kl_V1325thh)+                                                                                                                                                                                                                                                                                                                                                                                                                                  (!kl_V1325tht))) -> pat_cond_38 kl_V1325th kl_V1325thh kl_V1325tht+                                                                                                                                                                                                                                                                                                                                                                                                               _ -> pat_cond_44+                                                                                                                                                                                                                                                                                                                                                                                          case kl_if_37 of+                                                                                                                                                                                                                                                                                                                                                                                              Atom (B (True)) -> do return (Atom (B True))+                                                                                                                                                                                                                                                                                                                                                                                              Atom (B (False)) -> do do return (Atom (B False))+                                                                                                                                                                                                                                                                                                                                                                                              _ -> throwError "if: expected boolean"+                                                                                                                                                                                                                                                                                                                                         pat_cond_45 = do do return (Atom (B False))+                                                                                                                                                                                                                                                                                                                                      in case kl_V1325t of+                                                                                                                                                                                                                                                                                                                                             !(kl_V1325t@(Cons (!kl_V1325th)+                                                                                                                                                                                                                                                                                                                                                               (!kl_V1325tt))) -> pat_cond_36 kl_V1325t kl_V1325th kl_V1325tt+                                                                                                                                                                                                                                                                                                                                             _ -> pat_cond_45+                                                                                                                                                                                                                                                                                                                        case kl_if_35 of+                                                                                                                                                                                                                                                                                                                            Atom (B (True)) -> do return (Atom (B True))+                                                                                                                                                                                                                                                                                                                            Atom (B (False)) -> do do return (Atom (B False))+                                                                                                                                                                                                                                                                                                                            _ -> throwError "if: expected boolean"+                                                                                                                                                                                                                                                                                                  Atom (B (False)) -> do do return (Atom (B False))+                                                                                                                                                                                                                                                                                                  _ -> throwError "if: expected boolean"+                                                                                                                                                                                                                                                                                 case kl_if_34 of+                                                                                                                                                                                                                                                                                     Atom (B (True)) -> do return (Atom (B True))+                                                                                                                                                                                                                                                                                     Atom (B (False)) -> do do return (Atom (B False))+                                                                                                                                                                                                                                                                                     _ -> throwError "if: expected boolean"+                                                                                                                                                                                                                             pat_cond_46 = do do return (Atom (B False))+                                                                                                                                                                                                                          in case kl_V1325ht of+                                                                                                                                                                                                                                 !(kl_V1325ht@(Cons (!kl_V1325hth)+                                                                                                                                                                                                                                                    (!kl_V1325htt))) -> pat_cond_31 kl_V1325ht kl_V1325hth kl_V1325htt+                                                                                                                                                                                                                                 _ -> pat_cond_46+                                                                                                                                                                                                            case kl_if_30 of+                                                                                                                                                                                                                Atom (B (True)) -> do return (Atom (B True))+                                                                                                                                                                                                                Atom (B (False)) -> do do return (Atom (B False))+                                                                                                                                                                                                                _ -> throwError "if: expected boolean"+                                                                                                                                                           pat_cond_47 = do do return (Atom (B False))+                                                                                                                                                        in case kl_V1325h of+                                                                                                                                                               !(kl_V1325h@(Cons (!kl_V1325hh)+                                                                                                                                                                                 (!kl_V1325ht))) -> pat_cond_29 kl_V1325h kl_V1325hh kl_V1325ht+                                                                                                                                                               _ -> pat_cond_47+                                                                                                                                          case kl_if_28 of+                                                                                                                                              Atom (B (True)) -> do return (Atom (B True))+                                                                                                                                              Atom (B (False)) -> do do return (Atom (B False))+                                                                                                                                              _ -> throwError "if: expected boolean"+                                                                                            pat_cond_48 = do do return (Atom (B False))+                                                                                         in case kl_V1325 of+                                                                                                !(kl_V1325@(Cons (!kl_V1325h)+                                                                                                                 (!kl_V1325t))) -> pat_cond_27 kl_V1325 kl_V1325h kl_V1325t+                                                                                                _ -> pat_cond_48+                                                                           case kl_if_26 of+                                                                               Atom (B (True)) -> do !appl_49 <- kl_V1325 `pseq` hd kl_V1325+                                                                                                     !appl_50 <- appl_49 `pseq` hd appl_49+                                                                                                     let !aw_51 = Core.Types.Atom (Core.Types.UnboundSym "length")+                                                                                                     !appl_52 <- appl_50 `pseq` applyWrapper aw_51 [appl_50]+                                                                                                     !appl_53 <- kl_V1325 `pseq` tl kl_V1325+                                                                                                     !appl_54 <- appl_53 `pseq` hd appl_53+                                                                                                     !appl_55 <- appl_54 `pseq` hd appl_54+                                                                                                     let !aw_56 = Core.Types.Atom (Core.Types.UnboundSym "length")+                                                                                                     !appl_57 <- appl_55 `pseq` applyWrapper aw_56 [appl_55]+                                                                                                     !kl_if_58 <- appl_52 `pseq` (appl_57 `pseq` eq appl_52 appl_57)+                                                                                                     case kl_if_58 of+                                                                                                         Atom (B (True)) -> do !appl_59 <- kl_V1325 `pseq` hd kl_V1325+                                                                                                                               !appl_60 <- appl_59 `pseq` tl appl_59+                                                                                                                               !appl_61 <- appl_60 `pseq` hd appl_60+                                                                                                                               !appl_62 <- appl_61 `pseq` kl_shen_aritycheck_action appl_61+                                                                                                                               !appl_63 <- kl_V1325 `pseq` tl kl_V1325+                                                                                                                               !appl_64 <- kl_V1324 `pseq` (appl_63 `pseq` kl_shen_aritycheck kl_V1324 appl_63)+                                                                                                                               let !aw_65 = Core.Types.Atom (Core.Types.UnboundSym "do")+                                                                                                                               appl_62 `pseq` (appl_64 `pseq` applyWrapper aw_65 [appl_62,+                                                                                                                                                                                  appl_64])+                                                                                                         Atom (B (False)) -> do do let !aw_66 = Core.Types.Atom (Core.Types.UnboundSym "shen.app")+                                                                                                                                   !appl_67 <- kl_V1324 `pseq` applyWrapper aw_66 [kl_V1324,+                                                                                                                                                                                   Core.Types.Atom (Core.Types.Str "\n"),+                                                                                                                                                                                   Core.Types.Atom (Core.Types.UnboundSym "shen.a")]+                                                                                                                                   !appl_68 <- appl_67 `pseq` cn (Core.Types.Atom (Core.Types.Str "arity error in ")) appl_67+                                                                                                                                   appl_68 `pseq` simpleError appl_68+                                                                                                         _ -> throwError "if: expected boolean"+                                                                               Atom (B (False)) -> do do let !aw_69 = Core.Types.Atom (Core.Types.UnboundSym "shen.f_error")+                                                                                                         applyWrapper aw_69 [ApplC (wrapNamed "shen.aritycheck" kl_shen_aritycheck)]+                                                                               _ -> throwError "if: expected boolean"+                                                    _ -> throwError "if: expected boolean"++kl_shen_aritycheck_name :: Core.Types.KLValue ->+                           Core.Types.KLValue ->+                           Core.Types.KLValue ->+                           Core.Types.KLContext Core.Types.Env Core.Types.KLValue+kl_shen_aritycheck_name (!kl_V1338) (!kl_V1339) (!kl_V1340) = do let pat_cond_0 = do return kl_V1340+                                                                     pat_cond_1 = do !kl_if_2 <- kl_V1340 `pseq` (kl_V1339 `pseq` eq kl_V1340 kl_V1339)+                                                                                     case kl_if_2 of+                                                                                         Atom (B (True)) -> do return kl_V1340+                                                                                         Atom (B (False)) -> do do let !aw_3 = Core.Types.Atom (Core.Types.UnboundSym "shen.app")+                                                                                                                   !appl_4 <- kl_V1338 `pseq` applyWrapper aw_3 [kl_V1338,+                                                                                                                                                                 Core.Types.Atom (Core.Types.Str " can cause errors.\n"),+                                                                                                                                                                 Core.Types.Atom (Core.Types.UnboundSym "shen.a")]+                                                                                                                   !appl_5 <- appl_4 `pseq` cn (Core.Types.Atom (Core.Types.Str "\nwarning: changing the arity of ")) appl_4+                                                                                                                   let !aw_6 = Core.Types.Atom (Core.Types.UnboundSym "stoutput")+                                                                                                                   !appl_7 <- applyWrapper aw_6 []+                                                                                                                   let !aw_8 = Core.Types.Atom (Core.Types.UnboundSym "shen.prhush")+                                                                                                                   !appl_9 <- appl_5 `pseq` (appl_7 `pseq` applyWrapper aw_8 [appl_5,+                                                                                                                                                                              appl_7])+                                                                                                                   let !aw_10 = Core.Types.Atom (Core.Types.UnboundSym "do")+                                                                                                                   appl_9 `pseq` (kl_V1340 `pseq` applyWrapper aw_10 [appl_9,+                                                                                                                                                                      kl_V1340])+                                                                                         _ -> throwError "if: expected boolean"+                                                                  in case kl_V1339 of+                                                                         kl_V1339@(Atom (N (KI (-1)))) -> pat_cond_0+                                                                         _ -> pat_cond_1++kl_shen_aritycheck_action :: Core.Types.KLValue ->+                             Core.Types.KLContext Core.Types.Env Core.Types.KLValue+kl_shen_aritycheck_action (!kl_V1346) = do let pat_cond_0 kl_V1346 kl_V1346h kl_V1346t = do !appl_1 <- kl_V1346h `pseq` (kl_V1346t `pseq` kl_shen_aah kl_V1346h kl_V1346t)+                                                                                            let !appl_2 = ApplC (Func "lambda" (Context (\(!kl_Y) -> do kl_Y `pseq` kl_shen_aritycheck_action kl_Y)))+                                                                                            let !aw_3 = Core.Types.Atom (Core.Types.UnboundSym "for-each")+                                                                                            !appl_4 <- appl_2 `pseq` (kl_V1346 `pseq` applyWrapper aw_3 [appl_2,+                                                                                                                                                         kl_V1346])+                                                                                            let !aw_5 = Core.Types.Atom (Core.Types.UnboundSym "do")+                                                                                            appl_1 `pseq` (appl_4 `pseq` applyWrapper aw_5 [appl_1,+                                                                                                                                            appl_4])+                                               pat_cond_6 = do do return (Core.Types.Atom (Core.Types.UnboundSym "shen.skip"))+                                            in case kl_V1346 of+                                                   !(kl_V1346@(Cons (!kl_V1346h)+                                                                    (!kl_V1346t))) -> pat_cond_0 kl_V1346 kl_V1346h kl_V1346t+                                                   _ -> pat_cond_6++kl_shen_aah :: Core.Types.KLValue ->+               Core.Types.KLValue ->+               Core.Types.KLContext Core.Types.Env Core.Types.KLValue+kl_shen_aah (!kl_V1349) (!kl_V1350) = do let !appl_0 = ApplC (Func "lambda" (Context (\(!kl_Arity) -> do let !appl_1 = ApplC (Func "lambda" (Context (\(!kl_Len) -> do !kl_if_2 <- kl_Arity `pseq` greaterThan kl_Arity (Core.Types.Atom (Core.Types.N (Core.Types.KI (-1))))+                                                                                                                                                                       !kl_if_3 <- case kl_if_2 of+                                                                                                                                                                                       Atom (B (True)) -> do !kl_if_4 <- kl_Len `pseq` (kl_Arity `pseq` greaterThan kl_Len kl_Arity)+                                                                                                                                                                                                             case kl_if_4 of+                                                                                                                                                                                                                 Atom (B (True)) -> do return (Atom (B True))+                                                                                                                                                                                                                 Atom (B (False)) -> do do return (Atom (B False))+                                                                                                                                                                                                                 _ -> throwError "if: expected boolean"+                                                                                                                                                                                       Atom (B (False)) -> do do return (Atom (B False))+                                                                                                                                                                                       _ -> throwError "if: expected boolean"+                                                                                                                                                                       case kl_if_3 of+                                                                                                                                                                           Atom (B (True)) -> do !kl_if_5 <- kl_Len `pseq` greaterThan kl_Len (Core.Types.Atom (Core.Types.N (Core.Types.KI 1)))+                                                                                                                                                                                                 !appl_6 <- case kl_if_5 of+                                                                                                                                                                                                                Atom (B (True)) -> do return (Core.Types.Atom (Core.Types.Str "s"))+                                                                                                                                                                                                                Atom (B (False)) -> do do return (Core.Types.Atom (Core.Types.Str ""))+                                                                                                                                                                                                                _ -> throwError "if: expected boolean"+                                                                                                                                                                                                 let !aw_7 = Core.Types.Atom (Core.Types.UnboundSym "shen.app")+                                                                                                                                                                                                 !appl_8 <- appl_6 `pseq` applyWrapper aw_7 [appl_6,+                                                                                                                                                                                                                                             Core.Types.Atom (Core.Types.Str ".\n"),+                                                                                                                                                                                                                                             Core.Types.Atom (Core.Types.UnboundSym "shen.a")]+                                                                                                                                                                                                 !appl_9 <- appl_8 `pseq` cn (Core.Types.Atom (Core.Types.Str " argument")) appl_8+                                                                                                                                                                                                 let !aw_10 = Core.Types.Atom (Core.Types.UnboundSym "shen.app")+                                                                                                                                                                                                 !appl_11 <- kl_Len `pseq` (appl_9 `pseq` applyWrapper aw_10 [kl_Len,+                                                                                                                                                                                                                                                              appl_9,+                                                                                                                                                                                                                                                              Core.Types.Atom (Core.Types.UnboundSym "shen.a")])+                                                                                                                                                                                                 !appl_12 <- appl_11 `pseq` cn (Core.Types.Atom (Core.Types.Str " might not like ")) appl_11+                                                                                                                                                                                                 let !aw_13 = Core.Types.Atom (Core.Types.UnboundSym "shen.app")+                                                                                                                                                                                                 !appl_14 <- kl_V1349 `pseq` (appl_12 `pseq` applyWrapper aw_13 [kl_V1349,+                                                                                                                                                                                                                                                                 appl_12,+                                                                                                                                                                                                                                                                 Core.Types.Atom (Core.Types.UnboundSym "shen.a")])+                                                                                                                                                                                                 !appl_15 <- appl_14 `pseq` cn (Core.Types.Atom (Core.Types.Str "warning: ")) appl_14+                                                                                                                                                                                                 let !aw_16 = Core.Types.Atom (Core.Types.UnboundSym "stoutput")+                                                                                                                                                                                                 !appl_17 <- applyWrapper aw_16 []+                                                                                                                                                                                                 let !aw_18 = Core.Types.Atom (Core.Types.UnboundSym "shen.prhush")+                                                                                                                                                                                                 appl_15 `pseq` (appl_17 `pseq` applyWrapper aw_18 [appl_15,+                                                                                                                                                                                                                                                    appl_17])+                                                                                                                                                                           Atom (B (False)) -> do do return (Core.Types.Atom (Core.Types.UnboundSym "shen.skip"))+                                                                                                                                                                           _ -> throwError "if: expected boolean")))+                                                                                                         let !aw_19 = Core.Types.Atom (Core.Types.UnboundSym "length")+                                                                                                         !appl_20 <- kl_V1350 `pseq` applyWrapper aw_19 [kl_V1350]+                                                                                                         appl_20 `pseq` applyWrapper appl_1 [appl_20])))+                                         let !aw_21 = Core.Types.Atom (Core.Types.UnboundSym "arity")+                                         !appl_22 <- kl_V1349 `pseq` applyWrapper aw_21 [kl_V1349]+                                         appl_22 `pseq` applyWrapper appl_0 [appl_22]++kl_shen_abstract_rule :: Core.Types.KLValue ->+                         Core.Types.KLContext Core.Types.Env Core.Types.KLValue+kl_shen_abstract_rule (!kl_V1352) = do !kl_if_0 <- let pat_cond_1 kl_V1352 kl_V1352h kl_V1352t = do !kl_if_2 <- let pat_cond_3 kl_V1352t kl_V1352th kl_V1352tt = do let !appl_4 = Atom Nil+                                                                                                                                                                    !kl_if_5 <- appl_4 `pseq` (kl_V1352tt `pseq` eq appl_4 kl_V1352tt)+                                                                                                                                                                    case kl_if_5 of+                                                                                                                                                                        Atom (B (True)) -> do return (Atom (B True))+                                                                                                                                                                        Atom (B (False)) -> do do return (Atom (B False))+                                                                                                                                                                        _ -> throwError "if: expected boolean"+                                                                                                                    pat_cond_6 = do do return (Atom (B False))+                                                                                                                 in case kl_V1352t of+                                                                                                                        !(kl_V1352t@(Cons (!kl_V1352th)+                                                                                                                                          (!kl_V1352tt))) -> pat_cond_3 kl_V1352t kl_V1352th kl_V1352tt+                                                                                                                        _ -> pat_cond_6+                                                                                                    case kl_if_2 of+                                                                                                        Atom (B (True)) -> do return (Atom (B True))+                                                                                                        Atom (B (False)) -> do do return (Atom (B False))+                                                                                                        _ -> throwError "if: expected boolean"+                                                       pat_cond_7 = do do return (Atom (B False))+                                                    in case kl_V1352 of+                                                           !(kl_V1352@(Cons (!kl_V1352h)+                                                                            (!kl_V1352t))) -> pat_cond_1 kl_V1352 kl_V1352h kl_V1352t+                                                           _ -> pat_cond_7+                                       case kl_if_0 of+                                           Atom (B (True)) -> do !appl_8 <- kl_V1352 `pseq` hd kl_V1352+                                                                 !appl_9 <- kl_V1352 `pseq` tl kl_V1352+                                                                 !appl_10 <- appl_9 `pseq` hd appl_9+                                                                 appl_8 `pseq` (appl_10 `pseq` kl_shen_abstraction_build appl_8 appl_10)+                                           Atom (B (False)) -> do do let !aw_11 = Core.Types.Atom (Core.Types.UnboundSym "shen.f_error")+                                                                     applyWrapper aw_11 [ApplC (wrapNamed "shen.abstract_rule" kl_shen_abstract_rule)]+                                           _ -> throwError "if: expected boolean"++kl_shen_abstraction_build :: Core.Types.KLValue ->+                             Core.Types.KLValue ->+                             Core.Types.KLContext Core.Types.Env Core.Types.KLValue+kl_shen_abstraction_build (!kl_V1355) (!kl_V1356) = do let !appl_0 = Atom Nil+                                                       !kl_if_1 <- appl_0 `pseq` (kl_V1355 `pseq` eq appl_0 kl_V1355)+                                                       case kl_if_1 of+                                                           Atom (B (True)) -> do return kl_V1356+                                                           Atom (B (False)) -> do let pat_cond_2 kl_V1355 kl_V1355h kl_V1355t = do !appl_3 <- kl_V1355t `pseq` (kl_V1356 `pseq` kl_shen_abstraction_build kl_V1355t kl_V1356)+                                                                                                                                   let !appl_4 = Atom Nil+                                                                                                                                   !appl_5 <- appl_3 `pseq` (appl_4 `pseq` klCons appl_3 appl_4)+                                                                                                                                   !appl_6 <- kl_V1355h `pseq` (appl_5 `pseq` klCons kl_V1355h appl_5)+                                                                                                                                   appl_6 `pseq` klCons (Core.Types.Atom (Core.Types.UnboundSym "/.")) appl_6+                                                                                      pat_cond_7 = do do let !aw_8 = Core.Types.Atom (Core.Types.UnboundSym "shen.f_error")+                                                                                                         applyWrapper aw_8 [ApplC (wrapNamed "shen.abstraction_build" kl_shen_abstraction_build)]+                                                                                   in case kl_V1355 of+                                                                                          !(kl_V1355@(Cons (!kl_V1355h)+                                                                                                           (!kl_V1355t))) -> pat_cond_2 kl_V1355 kl_V1355h kl_V1355t+                                                                                          _ -> pat_cond_7+                                                           _ -> throwError "if: expected boolean"++kl_shen_parameters :: Core.Types.KLValue ->+                      Core.Types.KLContext Core.Types.Env Core.Types.KLValue+kl_shen_parameters (!kl_V1358) = do let pat_cond_0 = do return (Atom Nil)+                                        pat_cond_1 = do do let !aw_2 = Core.Types.Atom (Core.Types.UnboundSym "gensym")+                                                           !appl_3 <- applyWrapper aw_2 [Core.Types.Atom (Core.Types.UnboundSym "V")]+                                                           !appl_4 <- kl_V1358 `pseq` Primitives.subtract kl_V1358 (Core.Types.Atom (Core.Types.N (Core.Types.KI 1)))+                                                           !appl_5 <- appl_4 `pseq` kl_shen_parameters appl_4+                                                           appl_3 `pseq` (appl_5 `pseq` klCons appl_3 appl_5)+                                     in case kl_V1358 of+                                            kl_V1358@(Atom (N (KI 0))) -> pat_cond_0+                                            _ -> pat_cond_1++kl_shen_application_build :: Core.Types.KLValue ->+                             Core.Types.KLValue ->+                             Core.Types.KLContext Core.Types.Env Core.Types.KLValue+kl_shen_application_build (!kl_V1361) (!kl_V1362) = do let !appl_0 = Atom Nil+                                                       !kl_if_1 <- appl_0 `pseq` (kl_V1361 `pseq` eq appl_0 kl_V1361)+                                                       case kl_if_1 of+                                                           Atom (B (True)) -> do return kl_V1362+                                                           Atom (B (False)) -> do let pat_cond_2 kl_V1361 kl_V1361h kl_V1361t = do let !appl_3 = Atom Nil+                                                                                                                                   !appl_4 <- kl_V1361h `pseq` (appl_3 `pseq` klCons kl_V1361h appl_3)+                                                                                                                                   !appl_5 <- kl_V1362 `pseq` (appl_4 `pseq` klCons kl_V1362 appl_4)+                                                                                                                                   kl_V1361t `pseq` (appl_5 `pseq` kl_shen_application_build kl_V1361t appl_5)+                                                                                      pat_cond_6 = do do let !aw_7 = Core.Types.Atom (Core.Types.UnboundSym "shen.f_error")+                                                                                                         applyWrapper aw_7 [ApplC (wrapNamed "shen.application_build" kl_shen_application_build)]+                                                                                   in case kl_V1361 of+                                                                                          !(kl_V1361@(Cons (!kl_V1361h)+                                                                                                           (!kl_V1361t))) -> pat_cond_2 kl_V1361 kl_V1361h kl_V1361t+                                                                                          _ -> pat_cond_6+                                                           _ -> throwError "if: expected boolean"++kl_shen_compile_to_kl :: Core.Types.KLValue ->+                         Core.Types.KLValue ->+                         Core.Types.KLContext Core.Types.Env Core.Types.KLValue+kl_shen_compile_to_kl (!kl_V1365) (!kl_V1366) = do !kl_if_0 <- let pat_cond_1 kl_V1366 kl_V1366h kl_V1366t = do !kl_if_2 <- let pat_cond_3 kl_V1366t kl_V1366th kl_V1366tt = do let !appl_4 = Atom Nil+                                                                                                                                                                                !kl_if_5 <- appl_4 `pseq` (kl_V1366tt `pseq` eq appl_4 kl_V1366tt)+                                                                                                                                                                                case kl_if_5 of+                                                                                                                                                                                    Atom (B (True)) -> do return (Atom (B True))+                                                                                                                                                                                    Atom (B (False)) -> do do return (Atom (B False))+                                                                                                                                                                                    _ -> throwError "if: expected boolean"+                                                                                                                                pat_cond_6 = do do return (Atom (B False))+                                                                                                                             in case kl_V1366t of+                                                                                                                                    !(kl_V1366t@(Cons (!kl_V1366th)+                                                                                                                                                      (!kl_V1366tt))) -> pat_cond_3 kl_V1366t kl_V1366th kl_V1366tt+                                                                                                                                    _ -> pat_cond_6+                                                                                                                case kl_if_2 of+                                                                                                                    Atom (B (True)) -> do return (Atom (B True))+                                                                                                                    Atom (B (False)) -> do do return (Atom (B False))+                                                                                                                    _ -> throwError "if: expected boolean"+                                                                   pat_cond_7 = do do return (Atom (B False))+                                                                in case kl_V1366 of+                                                                       !(kl_V1366@(Cons (!kl_V1366h)+                                                                                        (!kl_V1366t))) -> pat_cond_1 kl_V1366 kl_V1366h kl_V1366t+                                                                       _ -> pat_cond_7+                                                   case kl_if_0 of+                                                       Atom (B (True)) -> do let !appl_8 = ApplC (Func "lambda" (Context (\(!kl_Arity) -> do let !appl_9 = ApplC (Func "lambda" (Context (\(!kl_Reduce) -> do let !appl_10 = ApplC (Func "lambda" (Context (\(!kl_CondExpression) -> do let !appl_11 = ApplC (Func "lambda" (Context (\(!kl_TypeTable) -> do let !appl_12 = ApplC (Func "lambda" (Context (\(!kl_TypedCondExpression) -> do !appl_13 <- kl_V1366 `pseq` hd kl_V1366+                                                                                                                                                                                                                                                                                                                                                                                                                                            let !appl_14 = Atom Nil+                                                                                                                                                                                                                                                                                                                                                                                                                                            !appl_15 <- kl_TypedCondExpression `pseq` (appl_14 `pseq` klCons kl_TypedCondExpression appl_14)+                                                                                                                                                                                                                                                                                                                                                                                                                                            !appl_16 <- appl_13 `pseq` (appl_15 `pseq` klCons appl_13 appl_15)+                                                                                                                                                                                                                                                                                                                                                                                                                                            !appl_17 <- kl_V1365 `pseq` (appl_16 `pseq` klCons kl_V1365 appl_16)+                                                                                                                                                                                                                                                                                                                                                                                                                                            appl_17 `pseq` klCons (Core.Types.Atom (Core.Types.UnboundSym "defun")) appl_17)))+                                                                                                                                                                                                                                                                                                                                                             !kl_if_18 <- value (Core.Types.Atom (Core.Types.UnboundSym "shen.*optimise*"))+                                                                                                                                                                                                                                                                                                                                                             !appl_19 <- case kl_if_18 of+                                                                                                                                                                                                                                                                                                                                                                             Atom (B (True)) -> do !appl_20 <- kl_V1366 `pseq` hd kl_V1366+                                                                                                                                                                                                                                                                                                                                                                                                   appl_20 `pseq` (kl_TypeTable `pseq` (kl_CondExpression `pseq` kl_shen_assign_types appl_20 kl_TypeTable kl_CondExpression))+                                                                                                                                                                                                                                                                                                                                                                             Atom (B (False)) -> do do return kl_CondExpression+                                                                                                                                                                                                                                                                                                                                                                             _ -> throwError "if: expected boolean"+                                                                                                                                                                                                                                                                                                                                                             appl_19 `pseq` applyWrapper appl_12 [appl_19])))+                                                                                                                                                                                                                                                                                        !kl_if_21 <- value (Core.Types.Atom (Core.Types.UnboundSym "shen.*optimise*"))+                                                                                                                                                                                                                                                                                        !appl_22 <- case kl_if_21 of+                                                                                                                                                                                                                                                                                                        Atom (B (True)) -> do !appl_23 <- kl_V1365 `pseq` kl_shen_get_type kl_V1365+                                                                                                                                                                                                                                                                                                                              !appl_24 <- kl_V1366 `pseq` hd kl_V1366+                                                                                                                                                                                                                                                                                                                              appl_23 `pseq` (appl_24 `pseq` kl_shen_typextable appl_23 appl_24)+                                                                                                                                                                                                                                                                                                        Atom (B (False)) -> do do return (Core.Types.Atom (Core.Types.UnboundSym "shen.skip"))+                                                                                                                                                                                                                                                                                                        _ -> throwError "if: expected boolean"+                                                                                                                                                                                                                                                                                        appl_22 `pseq` applyWrapper appl_11 [appl_22])))+                                                                                                                                                                                                              !appl_25 <- kl_V1366 `pseq` hd kl_V1366+                                                                                                                                                                                                              !appl_26 <- kl_V1365 `pseq` (appl_25 `pseq` (kl_Reduce `pseq` kl_shen_cond_expression kl_V1365 appl_25 kl_Reduce))+                                                                                                                                                                                                              appl_26 `pseq` applyWrapper appl_10 [appl_26])))+                                                                                                                                             let !appl_27 = ApplC (Func "lambda" (Context (\(!kl_X) -> do kl_X `pseq` kl_shen_reduce kl_X)))+                                                                                                                                             !appl_28 <- kl_V1366 `pseq` tl kl_V1366+                                                                                                                                             !appl_29 <- appl_28 `pseq` hd appl_28+                                                                                                                                             let !aw_30 = Core.Types.Atom (Core.Types.UnboundSym "map")+                                                                                                                                             !appl_31 <- appl_27 `pseq` (appl_29 `pseq` applyWrapper aw_30 [appl_27,+                                                                                                                                                                                                            appl_29])+                                                                                                                                             appl_31 `pseq` applyWrapper appl_9 [appl_31])))+                                                                             !appl_32 <- kl_V1366 `pseq` hd kl_V1366+                                                                             let !aw_33 = Core.Types.Atom (Core.Types.UnboundSym "length")+                                                                             !appl_34 <- appl_32 `pseq` applyWrapper aw_33 [appl_32]+                                                                             !appl_35 <- kl_V1365 `pseq` (appl_34 `pseq` kl_shen_store_arity kl_V1365 appl_34)+                                                                             appl_35 `pseq` applyWrapper appl_8 [appl_35]+                                                       Atom (B (False)) -> do do let !aw_36 = Core.Types.Atom (Core.Types.UnboundSym "shen.f_error")+                                                                                 applyWrapper aw_36 [ApplC (wrapNamed "shen.compile_to_kl" kl_shen_compile_to_kl)]+                                                       _ -> throwError "if: expected boolean"++kl_shen_get_type :: Core.Types.KLValue ->+                    Core.Types.KLContext Core.Types.Env Core.Types.KLValue+kl_shen_get_type (!kl_V1372) = do let pat_cond_0 kl_V1372 kl_V1372h kl_V1372t = do return (Core.Types.Atom (Core.Types.UnboundSym "shen.skip"))+                                      pat_cond_1 = do do let !appl_2 = ApplC (Func "lambda" (Context (\(!kl_FType) -> do let !aw_3 = Core.Types.Atom (Core.Types.UnboundSym "empty?")+                                                                                                                         !kl_if_4 <- kl_FType `pseq` applyWrapper aw_3 [kl_FType]+                                                                                                                         case kl_if_4 of+                                                                                                                             Atom (B (True)) -> do return (Core.Types.Atom (Core.Types.UnboundSym "shen.skip"))+                                                                                                                             Atom (B (False)) -> do do kl_FType `pseq` tl kl_FType+                                                                                                                             _ -> throwError "if: expected boolean")))+                                                         !appl_5 <- value (Core.Types.Atom (Core.Types.UnboundSym "shen.*signedfuncs*"))+                                                         let !aw_6 = Core.Types.Atom (Core.Types.UnboundSym "assoc")+                                                         !appl_7 <- kl_V1372 `pseq` (appl_5 `pseq` applyWrapper aw_6 [kl_V1372,+                                                                                                                      appl_5])+                                                         appl_7 `pseq` applyWrapper appl_2 [appl_7]+                                   in case kl_V1372 of+                                          !(kl_V1372@(Cons (!kl_V1372h)+                                                           (!kl_V1372t))) -> pat_cond_0 kl_V1372 kl_V1372h kl_V1372t+                                          _ -> pat_cond_1++kl_shen_typextable :: Core.Types.KLValue ->+                      Core.Types.KLValue ->+                      Core.Types.KLContext Core.Types.Env Core.Types.KLValue+kl_shen_typextable (!kl_V1383) (!kl_V1384) = do !kl_if_0 <- let pat_cond_1 kl_V1383 kl_V1383h kl_V1383t = do !kl_if_2 <- let pat_cond_3 kl_V1383t kl_V1383th kl_V1383tt = do !kl_if_4 <- let pat_cond_5 = do !kl_if_6 <- let pat_cond_7 kl_V1383tt kl_V1383tth kl_V1383ttt = do let !appl_8 = Atom Nil+                                                                                                                                                                                                                                                                                !kl_if_9 <- appl_8 `pseq` (kl_V1383ttt `pseq` eq appl_8 kl_V1383ttt)+                                                                                                                                                                                                                                                                                !kl_if_10 <- case kl_if_9 of+                                                                                                                                                                                                                                                                                                 Atom (B (True)) -> do let pat_cond_11 kl_V1384 kl_V1384h kl_V1384t = do return (Atom (B True))+                                                                                                                                                                                                                                                                                                                           pat_cond_12 = do do return (Atom (B False))+                                                                                                                                                                                                                                                                                                                        in case kl_V1384 of+                                                                                                                                                                                                                                                                                                                               !(kl_V1384@(Cons (!kl_V1384h)+                                                                                                                                                                                                                                                                                                                                                (!kl_V1384t))) -> pat_cond_11 kl_V1384 kl_V1384h kl_V1384t+                                                                                                                                                                                                                                                                                                                               _ -> pat_cond_12+                                                                                                                                                                                                                                                                                                 Atom (B (False)) -> do do return (Atom (B False))+                                                                                                                                                                                                                                                                                                 _ -> throwError "if: expected boolean"+                                                                                                                                                                                                                                                                                case kl_if_10 of+                                                                                                                                                                                                                                                                                    Atom (B (True)) -> do return (Atom (B True))+                                                                                                                                                                                                                                                                                    Atom (B (False)) -> do do return (Atom (B False))+                                                                                                                                                                                                                                                                                    _ -> throwError "if: expected boolean"+                                                                                                                                                                                                                             pat_cond_13 = do do return (Atom (B False))+                                                                                                                                                                                                                          in case kl_V1383tt of+                                                                                                                                                                                                                                 !(kl_V1383tt@(Cons (!kl_V1383tth)+                                                                                                                                                                                                                                                    (!kl_V1383ttt))) -> pat_cond_7 kl_V1383tt kl_V1383tth kl_V1383ttt+                                                                                                                                                                                                                                 _ -> pat_cond_13+                                                                                                                                                                                                             case kl_if_6 of+                                                                                                                                                                                                                 Atom (B (True)) -> do return (Atom (B True))+                                                                                                                                                                                                                 Atom (B (False)) -> do do return (Atom (B False))+                                                                                                                                                                                                                 _ -> throwError "if: expected boolean"+                                                                                                                                                                                             pat_cond_14 = do do return (Atom (B False))+                                                                                                                                                                                          in case kl_V1383th of+                                                                                                                                                                                                 kl_V1383th@(Atom (UnboundSym "-->")) -> pat_cond_5+                                                                                                                                                                                                 kl_V1383th@(ApplC (PL "-->"+                                                                                                                                                                                                                       _)) -> pat_cond_5+                                                                                                                                                                                                 kl_V1383th@(ApplC (Func "-->"+                                                                                                                                                                                                                         _)) -> pat_cond_5+                                                                                                                                                                                                 _ -> pat_cond_14+                                                                                                                                                                             case kl_if_4 of+                                                                                                                                                                                 Atom (B (True)) -> do return (Atom (B True))+                                                                                                                                                                                 Atom (B (False)) -> do do return (Atom (B False))+                                                                                                                                                                                 _ -> throwError "if: expected boolean"+                                                                                                                             pat_cond_15 = do do return (Atom (B False))+                                                                                                                          in case kl_V1383t of+                                                                                                                                 !(kl_V1383t@(Cons (!kl_V1383th)+                                                                                                                                                   (!kl_V1383tt))) -> pat_cond_3 kl_V1383t kl_V1383th kl_V1383tt+                                                                                                                                 _ -> pat_cond_15+                                                                                                             case kl_if_2 of+                                                                                                                 Atom (B (True)) -> do return (Atom (B True))+                                                                                                                 Atom (B (False)) -> do do return (Atom (B False))+                                                                                                                 _ -> throwError "if: expected boolean"+                                                                pat_cond_16 = do do return (Atom (B False))+                                                             in case kl_V1383 of+                                                                    !(kl_V1383@(Cons (!kl_V1383h)+                                                                                     (!kl_V1383t))) -> pat_cond_1 kl_V1383 kl_V1383h kl_V1383t+                                                                    _ -> pat_cond_16+                                                case kl_if_0 of+                                                    Atom (B (True)) -> do !appl_17 <- kl_V1383 `pseq` hd kl_V1383+                                                                          let !aw_18 = Core.Types.Atom (Core.Types.UnboundSym "variable?")+                                                                          !kl_if_19 <- appl_17 `pseq` applyWrapper aw_18 [appl_17]+                                                                          case kl_if_19 of+                                                                              Atom (B (True)) -> do !appl_20 <- kl_V1383 `pseq` tl kl_V1383+                                                                                                    !appl_21 <- appl_20 `pseq` tl appl_20+                                                                                                    !appl_22 <- appl_21 `pseq` hd appl_21+                                                                                                    !appl_23 <- kl_V1384 `pseq` tl kl_V1384+                                                                                                    appl_22 `pseq` (appl_23 `pseq` kl_shen_typextable appl_22 appl_23)+                                                                              Atom (B (False)) -> do do !appl_24 <- kl_V1384 `pseq` hd kl_V1384+                                                                                                        !appl_25 <- kl_V1383 `pseq` hd kl_V1383+                                                                                                        !appl_26 <- appl_24 `pseq` (appl_25 `pseq` klCons appl_24 appl_25)+                                                                                                        !appl_27 <- kl_V1383 `pseq` tl kl_V1383+                                                                                                        !appl_28 <- appl_27 `pseq` tl appl_27+                                                                                                        !appl_29 <- appl_28 `pseq` hd appl_28+                                                                                                        !appl_30 <- kl_V1384 `pseq` tl kl_V1384+                                                                                                        !appl_31 <- appl_29 `pseq` (appl_30 `pseq` kl_shen_typextable appl_29 appl_30)+                                                                                                        appl_26 `pseq` (appl_31 `pseq` klCons appl_26 appl_31)+                                                                              _ -> throwError "if: expected boolean"+                                                    Atom (B (False)) -> do do return (Atom Nil)+                                                    _ -> throwError "if: expected boolean"++kl_shen_assign_types :: Core.Types.KLValue ->+                        Core.Types.KLValue ->+                        Core.Types.KLValue ->+                        Core.Types.KLContext Core.Types.Env Core.Types.KLValue+kl_shen_assign_types (!kl_V1388) (!kl_V1389) (!kl_V1390) = do !kl_if_0 <- let pat_cond_1 kl_V1390 kl_V1390h kl_V1390t = do !kl_if_2 <- let pat_cond_3 = do !kl_if_4 <- let pat_cond_5 kl_V1390t kl_V1390th kl_V1390tt = do !kl_if_6 <- let pat_cond_7 kl_V1390tt kl_V1390tth kl_V1390ttt = do !kl_if_8 <- let pat_cond_9 kl_V1390ttt kl_V1390ttth kl_V1390tttt = do let !appl_10 = Atom Nil+                                                                                                                                                                                                                                                                                                                                                                    !kl_if_11 <- appl_10 `pseq` (kl_V1390tttt `pseq` eq appl_10 kl_V1390tttt)+                                                                                                                                                                                                                                                                                                                                                                    case kl_if_11 of+                                                                                                                                                                                                                                                                                                                                                                        Atom (B (True)) -> do return (Atom (B True))+                                                                                                                                                                                                                                                                                                                                                                        Atom (B (False)) -> do do return (Atom (B False))+                                                                                                                                                                                                                                                                                                                                                                        _ -> throwError "if: expected boolean"+                                                                                                                                                                                                                                                                                                              pat_cond_12 = do do return (Atom (B False))+                                                                                                                                                                                                                                                                                                           in case kl_V1390ttt of+                                                                                                                                                                                                                                                                                                                  !(kl_V1390ttt@(Cons (!kl_V1390ttth)+                                                                                                                                                                                                                                                                                                                                      (!kl_V1390tttt))) -> pat_cond_9 kl_V1390ttt kl_V1390ttth kl_V1390tttt+                                                                                                                                                                                                                                                                                                                  _ -> pat_cond_12+                                                                                                                                                                                                                                                                                              case kl_if_8 of+                                                                                                                                                                                                                                                                                                  Atom (B (True)) -> do return (Atom (B True))+                                                                                                                                                                                                                                                                                                  Atom (B (False)) -> do do return (Atom (B False))+                                                                                                                                                                                                                                                                                                  _ -> throwError "if: expected boolean"+                                                                                                                                                                                                                                           pat_cond_13 = do do return (Atom (B False))+                                                                                                                                                                                                                                        in case kl_V1390tt of+                                                                                                                                                                                                                                               !(kl_V1390tt@(Cons (!kl_V1390tth)+                                                                                                                                                                                                                                                                  (!kl_V1390ttt))) -> pat_cond_7 kl_V1390tt kl_V1390tth kl_V1390ttt+                                                                                                                                                                                                                                               _ -> pat_cond_13+                                                                                                                                                                                                                           case kl_if_6 of+                                                                                                                                                                                                                               Atom (B (True)) -> do return (Atom (B True))+                                                                                                                                                                                                                               Atom (B (False)) -> do do return (Atom (B False))+                                                                                                                                                                                                                               _ -> throwError "if: expected boolean"+                                                                                                                                                                           pat_cond_14 = do do return (Atom (B False))+                                                                                                                                                                        in case kl_V1390t of+                                                                                                                                                                               !(kl_V1390t@(Cons (!kl_V1390th)+                                                                                                                                                                                                 (!kl_V1390tt))) -> pat_cond_5 kl_V1390t kl_V1390th kl_V1390tt+                                                                                                                                                                               _ -> pat_cond_14+                                                                                                                                                           case kl_if_4 of+                                                                                                                                                               Atom (B (True)) -> do return (Atom (B True))+                                                                                                                                                               Atom (B (False)) -> do do return (Atom (B False))+                                                                                                                                                               _ -> throwError "if: expected boolean"+                                                                                                                                           pat_cond_15 = do do return (Atom (B False))+                                                                                                                                        in case kl_V1390h of+                                                                                                                                               kl_V1390h@(Atom (UnboundSym "let")) -> pat_cond_3+                                                                                                                                               kl_V1390h@(ApplC (PL "let"+                                                                                                                                                                    _)) -> pat_cond_3+                                                                                                                                               kl_V1390h@(ApplC (Func "let"+                                                                                                                                                                      _)) -> pat_cond_3+                                                                                                                                               _ -> pat_cond_15+                                                                                                                           case kl_if_2 of+                                                                                                                               Atom (B (True)) -> do return (Atom (B True))+                                                                                                                               Atom (B (False)) -> do do return (Atom (B False))+                                                                                                                               _ -> throwError "if: expected boolean"+                                                                              pat_cond_16 = do do return (Atom (B False))+                                                                           in case kl_V1390 of+                                                                                  !(kl_V1390@(Cons (!kl_V1390h)+                                                                                                   (!kl_V1390t))) -> pat_cond_1 kl_V1390 kl_V1390h kl_V1390t+                                                                                  _ -> pat_cond_16+                                                              case kl_if_0 of+                                                                  Atom (B (True)) -> do !appl_17 <- kl_V1390 `pseq` tl kl_V1390+                                                                                        !appl_18 <- appl_17 `pseq` hd appl_17+                                                                                        !appl_19 <- kl_V1390 `pseq` tl kl_V1390+                                                                                        !appl_20 <- appl_19 `pseq` tl appl_19+                                                                                        !appl_21 <- appl_20 `pseq` hd appl_20+                                                                                        !appl_22 <- kl_V1388 `pseq` (kl_V1389 `pseq` (appl_21 `pseq` kl_shen_assign_types kl_V1388 kl_V1389 appl_21))+                                                                                        !appl_23 <- kl_V1390 `pseq` tl kl_V1390+                                                                                        !appl_24 <- appl_23 `pseq` hd appl_23+                                                                                        !appl_25 <- appl_24 `pseq` (kl_V1388 `pseq` klCons appl_24 kl_V1388)+                                                                                        !appl_26 <- kl_V1390 `pseq` tl kl_V1390+                                                                                        !appl_27 <- appl_26 `pseq` tl appl_26+                                                                                        !appl_28 <- appl_27 `pseq` tl appl_27+                                                                                        !appl_29 <- appl_28 `pseq` hd appl_28+                                                                                        !appl_30 <- appl_25 `pseq` (kl_V1389 `pseq` (appl_29 `pseq` kl_shen_assign_types appl_25 kl_V1389 appl_29))+                                                                                        let !appl_31 = Atom Nil+                                                                                        !appl_32 <- appl_30 `pseq` (appl_31 `pseq` klCons appl_30 appl_31)+                                                                                        !appl_33 <- appl_22 `pseq` (appl_32 `pseq` klCons appl_22 appl_32)+                                                                                        !appl_34 <- appl_18 `pseq` (appl_33 `pseq` klCons appl_18 appl_33)+                                                                                        appl_34 `pseq` klCons (Core.Types.Atom (Core.Types.UnboundSym "let")) appl_34+                                                                  Atom (B (False)) -> do !kl_if_35 <- let pat_cond_36 kl_V1390 kl_V1390h kl_V1390t = do !kl_if_37 <- let pat_cond_38 = do !kl_if_39 <- let pat_cond_40 kl_V1390t kl_V1390th kl_V1390tt = do !kl_if_41 <- let pat_cond_42 kl_V1390tt kl_V1390tth kl_V1390ttt = do let !appl_43 = Atom Nil+                                                                                                                                                                                                                                                                                                                                 !kl_if_44 <- appl_43 `pseq` (kl_V1390ttt `pseq` eq appl_43 kl_V1390ttt)+                                                                                                                                                                                                                                                                                                                                 case kl_if_44 of+                                                                                                                                                                                                                                                                                                                                     Atom (B (True)) -> do return (Atom (B True))+                                                                                                                                                                                                                                                                                                                                     Atom (B (False)) -> do do return (Atom (B False))+                                                                                                                                                                                                                                                                                                                                     _ -> throwError "if: expected boolean"+                                                                                                                                                                                                                                                                             pat_cond_45 = do do return (Atom (B False))+                                                                                                                                                                                                                                                                          in case kl_V1390tt of+                                                                                                                                                                                                                                                                                 !(kl_V1390tt@(Cons (!kl_V1390tth)+                                                                                                                                                                                                                                                                                                    (!kl_V1390ttt))) -> pat_cond_42 kl_V1390tt kl_V1390tth kl_V1390ttt+                                                                                                                                                                                                                                                                                 _ -> pat_cond_45+                                                                                                                                                                                                                                                            case kl_if_41 of+                                                                                                                                                                                                                                                                Atom (B (True)) -> do return (Atom (B True))+                                                                                                                                                                                                                                                                Atom (B (False)) -> do do return (Atom (B False))+                                                                                                                                                                                                                                                                _ -> throwError "if: expected boolean"+                                                                                                                                                                                                           pat_cond_46 = do do return (Atom (B False))+                                                                                                                                                                                                        in case kl_V1390t of+                                                                                                                                                                                                               !(kl_V1390t@(Cons (!kl_V1390th)+                                                                                                                                                                                                                                 (!kl_V1390tt))) -> pat_cond_40 kl_V1390t kl_V1390th kl_V1390tt+                                                                                                                                                                                                               _ -> pat_cond_46+                                                                                                                                                                                          case kl_if_39 of+                                                                                                                                                                                              Atom (B (True)) -> do return (Atom (B True))+                                                                                                                                                                                              Atom (B (False)) -> do do return (Atom (B False))+                                                                                                                                                                                              _ -> throwError "if: expected boolean"+                                                                                                                                                                         pat_cond_47 = do do return (Atom (B False))+                                                                                                                                                                      in case kl_V1390h of+                                                                                                                                                                             kl_V1390h@(Atom (UnboundSym "lambda")) -> pat_cond_38+                                                                                                                                                                             kl_V1390h@(ApplC (PL "lambda"+                                                                                                                                                                                                  _)) -> pat_cond_38+                                                                                                                                                                             kl_V1390h@(ApplC (Func "lambda"+                                                                                                                                                                                                    _)) -> pat_cond_38+                                                                                                                                                                             _ -> pat_cond_47+                                                                                                                                                        case kl_if_37 of+                                                                                                                                                            Atom (B (True)) -> do return (Atom (B True))+                                                                                                                                                            Atom (B (False)) -> do do return (Atom (B False))+                                                                                                                                                            _ -> throwError "if: expected boolean"+                                                                                                          pat_cond_48 = do do return (Atom (B False))+                                                                                                       in case kl_V1390 of+                                                                                                              !(kl_V1390@(Cons (!kl_V1390h)+                                                                                                                               (!kl_V1390t))) -> pat_cond_36 kl_V1390 kl_V1390h kl_V1390t+                                                                                                              _ -> pat_cond_48+                                                                                         case kl_if_35 of+                                                                                             Atom (B (True)) -> do !appl_49 <- kl_V1390 `pseq` tl kl_V1390+                                                                                                                   !appl_50 <- appl_49 `pseq` hd appl_49+                                                                                                                   !appl_51 <- kl_V1390 `pseq` tl kl_V1390+                                                                                                                   !appl_52 <- appl_51 `pseq` hd appl_51+                                                                                                                   !appl_53 <- appl_52 `pseq` (kl_V1388 `pseq` klCons appl_52 kl_V1388)+                                                                                                                   !appl_54 <- kl_V1390 `pseq` tl kl_V1390+                                                                                                                   !appl_55 <- appl_54 `pseq` tl appl_54+                                                                                                                   !appl_56 <- appl_55 `pseq` hd appl_55+                                                                                                                   !appl_57 <- appl_53 `pseq` (kl_V1389 `pseq` (appl_56 `pseq` kl_shen_assign_types appl_53 kl_V1389 appl_56))+                                                                                                                   let !appl_58 = Atom Nil+                                                                                                                   !appl_59 <- appl_57 `pseq` (appl_58 `pseq` klCons appl_57 appl_58)+                                                                                                                   !appl_60 <- appl_50 `pseq` (appl_59 `pseq` klCons appl_50 appl_59)+                                                                                                                   appl_60 `pseq` klCons (Core.Types.Atom (Core.Types.UnboundSym "lambda")) appl_60+                                                                                             Atom (B (False)) -> do let pat_cond_61 kl_V1390 kl_V1390t = do let !appl_62 = ApplC (Func "lambda" (Context (\(!kl_Y) -> do !appl_63 <- kl_Y `pseq` hd kl_Y+                                                                                                                                                                                                                         !appl_64 <- kl_V1388 `pseq` (kl_V1389 `pseq` (appl_63 `pseq` kl_shen_assign_types kl_V1388 kl_V1389 appl_63))+                                                                                                                                                                                                                         !appl_65 <- kl_Y `pseq` tl kl_Y+                                                                                                                                                                                                                         !appl_66 <- appl_65 `pseq` hd appl_65+                                                                                                                                                                                                                         !appl_67 <- kl_V1388 `pseq` (kl_V1389 `pseq` (appl_66 `pseq` kl_shen_assign_types kl_V1388 kl_V1389 appl_66))+                                                                                                                                                                                                                         let !appl_68 = Atom Nil+                                                                                                                                                                                                                         !appl_69 <- appl_67 `pseq` (appl_68 `pseq` klCons appl_67 appl_68)+                                                                                                                                                                                                                         appl_64 `pseq` (appl_69 `pseq` klCons appl_64 appl_69))))+                                                                                                                                                            let !aw_70 = Core.Types.Atom (Core.Types.UnboundSym "map")+                                                                                                                                                            !appl_71 <- appl_62 `pseq` (kl_V1390t `pseq` applyWrapper aw_70 [appl_62,+                                                                                                                                                                                                                             kl_V1390t])+                                                                                                                                                            appl_71 `pseq` klCons (Core.Types.Atom (Core.Types.UnboundSym "cond")) appl_71+                                                                                                                        pat_cond_72 kl_V1390 kl_V1390h kl_V1390t = do let !appl_73 = ApplC (Func "lambda" (Context (\(!kl_NewTable) -> do let !appl_74 = ApplC (Func "lambda" (Context (\(!kl_Y) -> do let !aw_75 = Core.Types.Atom (Core.Types.UnboundSym "append")+                                                                                                                                                                                                                                                                                                       !appl_76 <- kl_V1389 `pseq` (kl_NewTable `pseq` applyWrapper aw_75 [kl_V1389,+                                                                                                                                                                                                                                                                                                                                                                           kl_NewTable])+                                                                                                                                                                                                                                                                                                       kl_V1388 `pseq` (appl_76 `pseq` (kl_Y `pseq` kl_shen_assign_types kl_V1388 appl_76 kl_Y)))))+                                                                                                                                                                                                                                          let !aw_77 = Core.Types.Atom (Core.Types.UnboundSym "map")+                                                                                                                                                                                                                                          !appl_78 <- appl_74 `pseq` (kl_V1390t `pseq` applyWrapper aw_77 [appl_74,+                                                                                                                                                                                                                                                                                                           kl_V1390t])+                                                                                                                                                                                                                                          kl_V1390h `pseq` (appl_78 `pseq` klCons kl_V1390h appl_78))))+                                                                                                                                                                      !appl_79 <- kl_V1390h `pseq` kl_shen_get_type kl_V1390h+                                                                                                                                                                      !appl_80 <- appl_79 `pseq` (kl_V1390t `pseq` kl_shen_typextable appl_79 kl_V1390t)+                                                                                                                                                                      appl_80 `pseq` applyWrapper appl_73 [appl_80]+                                                                                                                        pat_cond_81 = do do let !appl_82 = ApplC (Func "lambda" (Context (\(!kl_AtomType) -> do let pat_cond_83 kl_AtomType kl_AtomTypeh kl_AtomTypet = do let !appl_84 = Atom Nil+                                                                                                                                                                                                                                                                           !appl_85 <- kl_AtomTypet `pseq` (appl_84 `pseq` klCons kl_AtomTypet appl_84)+                                                                                                                                                                                                                                                                           !appl_86 <- kl_V1390 `pseq` (appl_85 `pseq` klCons kl_V1390 appl_85)+                                                                                                                                                                                                                                                                           appl_86 `pseq` klCons (ApplC (wrapNamed "type" typeA)) appl_86+                                                                                                                                                                                                                    pat_cond_87 = do do let !aw_88 = Core.Types.Atom (Core.Types.UnboundSym "element?")+                                                                                                                                                                                                                                        !kl_if_89 <- kl_V1390 `pseq` (kl_V1388 `pseq` applyWrapper aw_88 [kl_V1390,+                                                                                                                                                                                                                                                                                                          kl_V1388])+                                                                                                                                                                                                                                        case kl_if_89 of+                                                                                                                                                                                                                                            Atom (B (True)) -> do return kl_V1390+                                                                                                                                                                                                                                            Atom (B (False)) -> do do kl_V1390 `pseq` kl_shen_atom_type kl_V1390+                                                                                                                                                                                                                                            _ -> throwError "if: expected boolean"+                                                                                                                                                                                                                 in case kl_AtomType of+                                                                                                                                                                                                                        !(kl_AtomType@(Cons (!kl_AtomTypeh)+                                                                                                                                                                                                                                            (!kl_AtomTypet))) -> pat_cond_83 kl_AtomType kl_AtomTypeh kl_AtomTypet+                                                                                                                                                                                                                        _ -> pat_cond_87)))+                                                                                                                                            let !aw_90 = Core.Types.Atom (Core.Types.UnboundSym "assoc")+                                                                                                                                            !appl_91 <- kl_V1390 `pseq` (kl_V1389 `pseq` applyWrapper aw_90 [kl_V1390,+                                                                                                                                                                                                             kl_V1389])+                                                                                                                                            appl_91 `pseq` applyWrapper appl_82 [appl_91]+                                                                                                                     in case kl_V1390 of+                                                                                                                            !(kl_V1390@(Cons (Atom (UnboundSym "cond"))+                                                                                                                                             (!kl_V1390t))) -> pat_cond_61 kl_V1390 kl_V1390t+                                                                                                                            !(kl_V1390@(Cons (ApplC (PL "cond"+                                                                                                                                                        _))+                                                                                                                                             (!kl_V1390t))) -> pat_cond_61 kl_V1390 kl_V1390t+                                                                                                                            !(kl_V1390@(Cons (ApplC (Func "cond"+                                                                                                                                                          _))+                                                                                                                                             (!kl_V1390t))) -> pat_cond_61 kl_V1390 kl_V1390t+                                                                                                                            !(kl_V1390@(Cons (!kl_V1390h)+                                                                                                                                             (!kl_V1390t))) -> pat_cond_72 kl_V1390 kl_V1390h kl_V1390t+                                                                                                                            _ -> pat_cond_81+                                                                                             _ -> throwError "if: expected boolean"+                                                                  _ -> throwError "if: expected boolean"++kl_shen_atom_type :: Core.Types.KLValue ->+                     Core.Types.KLContext Core.Types.Env Core.Types.KLValue+kl_shen_atom_type (!kl_V1392) = do !kl_if_0 <- kl_V1392 `pseq` stringP kl_V1392+                                   case kl_if_0 of+                                       Atom (B (True)) -> do let !appl_1 = Atom Nil+                                                             !appl_2 <- appl_1 `pseq` klCons (Core.Types.Atom (Core.Types.UnboundSym "string")) appl_1+                                                             !appl_3 <- kl_V1392 `pseq` (appl_2 `pseq` klCons kl_V1392 appl_2)+                                                             appl_3 `pseq` klCons (ApplC (wrapNamed "type" typeA)) appl_3+                                       Atom (B (False)) -> do do !kl_if_4 <- kl_V1392 `pseq` numberP kl_V1392+                                                                 case kl_if_4 of+                                                                     Atom (B (True)) -> do let !appl_5 = Atom Nil+                                                                                           !appl_6 <- appl_5 `pseq` klCons (Core.Types.Atom (Core.Types.UnboundSym "number")) appl_5+                                                                                           !appl_7 <- kl_V1392 `pseq` (appl_6 `pseq` klCons kl_V1392 appl_6)+                                                                                           appl_7 `pseq` klCons (ApplC (wrapNamed "type" typeA)) appl_7+                                                                     Atom (B (False)) -> do do let !aw_8 = Core.Types.Atom (Core.Types.UnboundSym "boolean?")+                                                                                               !kl_if_9 <- kl_V1392 `pseq` applyWrapper aw_8 [kl_V1392]+                                                                                               case kl_if_9 of+                                                                                                   Atom (B (True)) -> do let !appl_10 = Atom Nil+                                                                                                                         !appl_11 <- appl_10 `pseq` klCons (Core.Types.Atom (Core.Types.UnboundSym "boolean")) appl_10+                                                                                                                         !appl_12 <- kl_V1392 `pseq` (appl_11 `pseq` klCons kl_V1392 appl_11)+                                                                                                                         appl_12 `pseq` klCons (ApplC (wrapNamed "type" typeA)) appl_12+                                                                                                   Atom (B (False)) -> do do let !aw_13 = Core.Types.Atom (Core.Types.UnboundSym "symbol?")+                                                                                                                             !kl_if_14 <- kl_V1392 `pseq` applyWrapper aw_13 [kl_V1392]+                                                                                                                             case kl_if_14 of+                                                                                                                                 Atom (B (True)) -> do let !appl_15 = Atom Nil+                                                                                                                                                       !appl_16 <- appl_15 `pseq` klCons (Core.Types.Atom (Core.Types.UnboundSym "symbol")) appl_15+                                                                                                                                                       !appl_17 <- kl_V1392 `pseq` (appl_16 `pseq` klCons kl_V1392 appl_16)+                                                                                                                                                       appl_17 `pseq` klCons (ApplC (wrapNamed "type" typeA)) appl_17+                                                                                                                                 Atom (B (False)) -> do do return kl_V1392+                                                                                                                                 _ -> throwError "if: expected boolean"+                                                                                                   _ -> throwError "if: expected boolean"+                                                                     _ -> throwError "if: expected boolean"+                                       _ -> throwError "if: expected boolean"++kl_shen_store_arity :: Core.Types.KLValue ->+                       Core.Types.KLValue ->+                       Core.Types.KLContext Core.Types.Env Core.Types.KLValue+kl_shen_store_arity (!kl_V1397) (!kl_V1398) = do !kl_if_0 <- value (Core.Types.Atom (Core.Types.UnboundSym "shen.*installing-kl*"))+                                                 case kl_if_0 of+                                                     Atom (B (True)) -> do return (Core.Types.Atom (Core.Types.UnboundSym "shen.skip"))+                                                     Atom (B (False)) -> do do !appl_1 <- value (Core.Types.Atom (Core.Types.UnboundSym "*property-vector*"))+                                                                               let !aw_2 = Core.Types.Atom (Core.Types.UnboundSym "put")+                                                                               kl_V1397 `pseq` (kl_V1398 `pseq` (appl_1 `pseq` applyWrapper aw_2 [kl_V1397,+                                                                                                                                                  Core.Types.Atom (Core.Types.UnboundSym "arity"),+                                                                                                                                                  kl_V1398,+                                                                                                                                                  appl_1]))+                                                     _ -> throwError "if: expected boolean"++kl_shen_reduce :: Core.Types.KLValue ->+                  Core.Types.KLContext Core.Types.Env Core.Types.KLValue+kl_shen_reduce (!kl_V1400) = do let !appl_0 = Atom Nil+                                !appl_1 <- appl_0 `pseq` klSet (Core.Types.Atom (Core.Types.UnboundSym "shen.*teststack*")) appl_0+                                let !appl_2 = ApplC (Func "lambda" (Context (\(!kl_Result) -> do !appl_3 <- value (Core.Types.Atom (Core.Types.UnboundSym "shen.*teststack*"))+                                                                                                 let !aw_4 = Core.Types.Atom (Core.Types.UnboundSym "reverse")+                                                                                                 !appl_5 <- appl_3 `pseq` applyWrapper aw_4 [appl_3]+                                                                                                 !appl_6 <- appl_5 `pseq` klCons (Core.Types.Atom (Core.Types.UnboundSym "shen.tests")) appl_5+                                                                                                 !appl_7 <- appl_6 `pseq` klCons (Core.Types.Atom (Core.Types.UnboundSym ":")) appl_6+                                                                                                 let !appl_8 = Atom Nil+                                                                                                 !appl_9 <- kl_Result `pseq` (appl_8 `pseq` klCons kl_Result appl_8)+                                                                                                 appl_7 `pseq` (appl_9 `pseq` klCons appl_7 appl_9))))+                                !appl_10 <- kl_V1400 `pseq` kl_shen_reduce_help kl_V1400+                                !appl_11 <- appl_10 `pseq` applyWrapper appl_2 [appl_10]+                                let !aw_12 = Core.Types.Atom (Core.Types.UnboundSym "do")+                                appl_1 `pseq` (appl_11 `pseq` applyWrapper aw_12 [appl_1, appl_11])++kl_shen_reduce_help :: Core.Types.KLValue ->+                       Core.Types.KLContext Core.Types.Env Core.Types.KLValue+kl_shen_reduce_help (!kl_V1402) = do !kl_if_0 <- let pat_cond_1 kl_V1402 kl_V1402h kl_V1402t = do !kl_if_2 <- let pat_cond_3 kl_V1402h kl_V1402hh kl_V1402ht = do !kl_if_4 <- let pat_cond_5 = do !kl_if_6 <- let pat_cond_7 kl_V1402ht kl_V1402hth kl_V1402htt = do !kl_if_8 <- let pat_cond_9 kl_V1402hth kl_V1402hthh kl_V1402htht = do !kl_if_10 <- let pat_cond_11 = do !kl_if_12 <- let pat_cond_13 kl_V1402htht kl_V1402hthth kl_V1402hthtt = do !kl_if_14 <- let pat_cond_15 kl_V1402hthtt kl_V1402hthtth kl_V1402hthttt = do let !appl_16 = Atom Nil+                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                      !kl_if_17 <- appl_16 `pseq` (kl_V1402hthttt `pseq` eq appl_16 kl_V1402hthttt)+                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                      !kl_if_18 <- case kl_if_17 of+                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                       Atom (B (True)) -> do !kl_if_19 <- let pat_cond_20 kl_V1402htt kl_V1402htth kl_V1402httt = do let !appl_21 = Atom Nil+                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                     !kl_if_22 <- appl_21 `pseq` (kl_V1402httt `pseq` eq appl_21 kl_V1402httt)+                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                     !kl_if_23 <- case kl_if_22 of+                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                      Atom (B (True)) -> do !kl_if_24 <- let pat_cond_25 kl_V1402t kl_V1402th kl_V1402tt = do let !appl_26 = Atom Nil+                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                              !kl_if_27 <- appl_26 `pseq` (kl_V1402tt `pseq` eq appl_26 kl_V1402tt)+                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                              case kl_if_27 of+                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                  Atom (B (True)) -> do return (Atom (B True))+                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                  Atom (B (False)) -> do do return (Atom (B False))+                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                  _ -> throwError "if: expected boolean"+                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                             pat_cond_28 = do do return (Atom (B False))+                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                          in case kl_V1402t of+                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                 !(kl_V1402t@(Cons (!kl_V1402th)+                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                   (!kl_V1402tt))) -> pat_cond_25 kl_V1402t kl_V1402th kl_V1402tt+                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                 _ -> pat_cond_28+                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                            case kl_if_24 of+                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                Atom (B (True)) -> do return (Atom (B True))+                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                Atom (B (False)) -> do do return (Atom (B False))+                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                _ -> throwError "if: expected boolean"+                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                      Atom (B (False)) -> do do return (Atom (B False))+                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                      _ -> throwError "if: expected boolean"+                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                     case kl_if_23 of+                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                         Atom (B (True)) -> do return (Atom (B True))+                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                         Atom (B (False)) -> do do return (Atom (B False))+                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                         _ -> throwError "if: expected boolean"+                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                              pat_cond_29 = do do return (Atom (B False))+                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                           in case kl_V1402htt of+                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                  !(kl_V1402htt@(Cons (!kl_V1402htth)+                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                      (!kl_V1402httt))) -> pat_cond_20 kl_V1402htt kl_V1402htth kl_V1402httt+                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                  _ -> pat_cond_29+                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                             case kl_if_19 of+                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                 Atom (B (True)) -> do return (Atom (B True))+                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                 Atom (B (False)) -> do do return (Atom (B False))+                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                 _ -> throwError "if: expected boolean"+                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                       Atom (B (False)) -> do do return (Atom (B False))+                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                       _ -> throwError "if: expected boolean"+                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                      case kl_if_18 of+                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                          Atom (B (True)) -> do return (Atom (B True))+                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                          Atom (B (False)) -> do do return (Atom (B False))+                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                          _ -> throwError "if: expected boolean"+                                                                                                                                                                                                                                                                                                                                                                                                                                                                         pat_cond_30 = do do return (Atom (B False))+                                                                                                                                                                                                                                                                                                                                                                                                                                                                      in case kl_V1402hthtt of+                                                                                                                                                                                                                                                                                                                                                                                                                                                                             !(kl_V1402hthtt@(Cons (!kl_V1402hthtth)+                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                   (!kl_V1402hthttt))) -> pat_cond_15 kl_V1402hthtt kl_V1402hthtth kl_V1402hthttt+                                                                                                                                                                                                                                                                                                                                                                                                                                                                             _ -> pat_cond_30+                                                                                                                                                                                                                                                                                                                                                                                                                                                        case kl_if_14 of+                                                                                                                                                                                                                                                                                                                                                                                                                                                            Atom (B (True)) -> do return (Atom (B True))+                                                                                                                                                                                                                                                                                                                                                                                                                                                            Atom (B (False)) -> do do return (Atom (B False))+                                                                                                                                                                                                                                                                                                                                                                                                                                                            _ -> throwError "if: expected boolean"+                                                                                                                                                                                                                                                                                                                                                                                              pat_cond_31 = do do return (Atom (B False))+                                                                                                                                                                                                                                                                                                                                                                                           in case kl_V1402htht of+                                                                                                                                                                                                                                                                                                                                                                                                  !(kl_V1402htht@(Cons (!kl_V1402hthth)+                                                                                                                                                                                                                                                                                                                                                                                                                       (!kl_V1402hthtt))) -> pat_cond_13 kl_V1402htht kl_V1402hthth kl_V1402hthtt+                                                                                                                                                                                                                                                                                                                                                                                                  _ -> pat_cond_31+                                                                                                                                                                                                                                                                                                                                                                             case kl_if_12 of+                                                                                                                                                                                                                                                                                                                                                                                 Atom (B (True)) -> do return (Atom (B True))+                                                                                                                                                                                                                                                                                                                                                                                 Atom (B (False)) -> do do return (Atom (B False))+                                                                                                                                                                                                                                                                                                                                                                                 _ -> throwError "if: expected boolean"+                                                                                                                                                                                                                                                                                                                                                            pat_cond_32 = do do return (Atom (B False))+                                                                                                                                                                                                                                                                                                                                                         in case kl_V1402hthh of+                                                                                                                                                                                                                                                                                                                                                                kl_V1402hthh@(Atom (UnboundSym "cons")) -> pat_cond_11+                                                                                                                                                                                                                                                                                                                                                                kl_V1402hthh@(ApplC (PL "cons"+                                                                                                                                                                                                                                                                                                                                                                                        _)) -> pat_cond_11+                                                                                                                                                                                                                                                                                                                                                                kl_V1402hthh@(ApplC (Func "cons"+                                                                                                                                                                                                                                                                                                                                                                                          _)) -> pat_cond_11+                                                                                                                                                                                                                                                                                                                                                                _ -> pat_cond_32+                                                                                                                                                                                                                                                                                                                                           case kl_if_10 of+                                                                                                                                                                                                                                                                                                                                               Atom (B (True)) -> do return (Atom (B True))+                                                                                                                                                                                                                                                                                                                                               Atom (B (False)) -> do do return (Atom (B False))+                                                                                                                                                                                                                                                                                                                                               _ -> throwError "if: expected boolean"+                                                                                                                                                                                                                                                                                     pat_cond_33 = do do return (Atom (B False))+                                                                                                                                                                                                                                                                                  in case kl_V1402hth of+                                                                                                                                                                                                                                                                                         !(kl_V1402hth@(Cons (!kl_V1402hthh)+                                                                                                                                                                                                                                                                                                             (!kl_V1402htht))) -> pat_cond_9 kl_V1402hth kl_V1402hthh kl_V1402htht+                                                                                                                                                                                                                                                                                         _ -> pat_cond_33+                                                                                                                                                                                                                                                                     case kl_if_8 of+                                                                                                                                                                                                                                                                         Atom (B (True)) -> do return (Atom (B True))+                                                                                                                                                                                                                                                                         Atom (B (False)) -> do do return (Atom (B False))+                                                                                                                                                                                                                                                                         _ -> throwError "if: expected boolean"+                                                                                                                                                                                                                  pat_cond_34 = do do return (Atom (B False))+                                                                                                                                                                                                               in case kl_V1402ht of+                                                                                                                                                                                                                      !(kl_V1402ht@(Cons (!kl_V1402hth)+                                                                                                                                                                                                                                         (!kl_V1402htt))) -> pat_cond_7 kl_V1402ht kl_V1402hth kl_V1402htt+                                                                                                                                                                                                                      _ -> pat_cond_34+                                                                                                                                                                                                  case kl_if_6 of+                                                                                                                                                                                                      Atom (B (True)) -> do return (Atom (B True))+                                                                                                                                                                                                      Atom (B (False)) -> do do return (Atom (B False))+                                                                                                                                                                                                      _ -> throwError "if: expected boolean"+                                                                                                                                                                                  pat_cond_35 = do do return (Atom (B False))+                                                                                                                                                                               in case kl_V1402hh of+                                                                                                                                                                                      kl_V1402hh@(Atom (UnboundSym "/.")) -> pat_cond_5+                                                                                                                                                                                      kl_V1402hh@(ApplC (PL "/."+                                                                                                                                                                                                            _)) -> pat_cond_5+                                                                                                                                                                                      kl_V1402hh@(ApplC (Func "/."+                                                                                                                                                                                                              _)) -> pat_cond_5+                                                                                                                                                                                      _ -> pat_cond_35+                                                                                                                                                                  case kl_if_4 of+                                                                                                                                                                      Atom (B (True)) -> do return (Atom (B True))+                                                                                                                                                                      Atom (B (False)) -> do do return (Atom (B False))+                                                                                                                                                                      _ -> throwError "if: expected boolean"+                                                                                                                  pat_cond_36 = do do return (Atom (B False))+                                                                                                               in case kl_V1402h of+                                                                                                                      !(kl_V1402h@(Cons (!kl_V1402hh)+                                                                                                                                        (!kl_V1402ht))) -> pat_cond_3 kl_V1402h kl_V1402hh kl_V1402ht+                                                                                                                      _ -> pat_cond_36+                                                                                                  case kl_if_2 of+                                                                                                      Atom (B (True)) -> do return (Atom (B True))+                                                                                                      Atom (B (False)) -> do do return (Atom (B False))+                                                                                                      _ -> throwError "if: expected boolean"+                                                     pat_cond_37 = do do return (Atom (B False))+                                                  in case kl_V1402 of+                                                         !(kl_V1402@(Cons (!kl_V1402h)+                                                                          (!kl_V1402t))) -> pat_cond_1 kl_V1402 kl_V1402h kl_V1402t+                                                         _ -> pat_cond_37+                                     case kl_if_0 of+                                         Atom (B (True)) -> do !appl_38 <- kl_V1402 `pseq` tl kl_V1402+                                                               !appl_39 <- appl_38 `pseq` klCons (ApplC (wrapNamed "cons?" consP)) appl_38+                                                               !appl_40 <- appl_39 `pseq` kl_shen_add_test appl_39+                                                               let !appl_41 = ApplC (Func "lambda" (Context (\(!kl_Abstraction) -> do let !appl_42 = ApplC (Func "lambda" (Context (\(!kl_Application) -> do kl_Application `pseq` kl_shen_reduce_help kl_Application)))+                                                                                                                                      !appl_43 <- kl_V1402 `pseq` tl kl_V1402+                                                                                                                                      !appl_44 <- appl_43 `pseq` klCons (ApplC (wrapNamed "hd" hd)) appl_43+                                                                                                                                      let !appl_45 = Atom Nil+                                                                                                                                      !appl_46 <- appl_44 `pseq` (appl_45 `pseq` klCons appl_44 appl_45)+                                                                                                                                      !appl_47 <- kl_Abstraction `pseq` (appl_46 `pseq` klCons kl_Abstraction appl_46)+                                                                                                                                      !appl_48 <- kl_V1402 `pseq` tl kl_V1402+                                                                                                                                      !appl_49 <- appl_48 `pseq` klCons (ApplC (wrapNamed "tl" tl)) appl_48+                                                                                                                                      let !appl_50 = Atom Nil+                                                                                                                                      !appl_51 <- appl_49 `pseq` (appl_50 `pseq` klCons appl_49 appl_50)+                                                                                                                                      !appl_52 <- appl_47 `pseq` (appl_51 `pseq` klCons appl_47 appl_51)+                                                                                                                                      appl_52 `pseq` applyWrapper appl_42 [appl_52])))+                                                               !appl_53 <- kl_V1402 `pseq` hd kl_V1402+                                                               !appl_54 <- appl_53 `pseq` tl appl_53+                                                               !appl_55 <- appl_54 `pseq` hd appl_54+                                                               !appl_56 <- appl_55 `pseq` tl appl_55+                                                               !appl_57 <- appl_56 `pseq` hd appl_56+                                                               !appl_58 <- kl_V1402 `pseq` hd kl_V1402+                                                               !appl_59 <- appl_58 `pseq` tl appl_58+                                                               !appl_60 <- appl_59 `pseq` hd appl_59+                                                               !appl_61 <- appl_60 `pseq` tl appl_60+                                                               !appl_62 <- appl_61 `pseq` tl appl_61+                                                               !appl_63 <- appl_62 `pseq` hd appl_62+                                                               !appl_64 <- kl_V1402 `pseq` tl kl_V1402+                                                               !appl_65 <- appl_64 `pseq` hd appl_64+                                                               !appl_66 <- kl_V1402 `pseq` hd kl_V1402+                                                               !appl_67 <- appl_66 `pseq` tl appl_66+                                                               !appl_68 <- appl_67 `pseq` hd appl_67+                                                               !appl_69 <- kl_V1402 `pseq` hd kl_V1402+                                                               !appl_70 <- appl_69 `pseq` tl appl_69+                                                               !appl_71 <- appl_70 `pseq` tl appl_70+                                                               !appl_72 <- appl_71 `pseq` hd appl_71+                                                               !appl_73 <- appl_65 `pseq` (appl_68 `pseq` (appl_72 `pseq` kl_shen_ebr appl_65 appl_68 appl_72))+                                                               let !appl_74 = Atom Nil+                                                               !appl_75 <- appl_73 `pseq` (appl_74 `pseq` klCons appl_73 appl_74)+                                                               !appl_76 <- appl_63 `pseq` (appl_75 `pseq` klCons appl_63 appl_75)+                                                               !appl_77 <- appl_76 `pseq` klCons (Core.Types.Atom (Core.Types.UnboundSym "/.")) appl_76+                                                               let !appl_78 = Atom Nil+                                                               !appl_79 <- appl_77 `pseq` (appl_78 `pseq` klCons appl_77 appl_78)+                                                               !appl_80 <- appl_57 `pseq` (appl_79 `pseq` klCons appl_57 appl_79)+                                                               !appl_81 <- appl_80 `pseq` klCons (Core.Types.Atom (Core.Types.UnboundSym "/.")) appl_80+                                                               !appl_82 <- appl_81 `pseq` applyWrapper appl_41 [appl_81]+                                                               let !aw_83 = Core.Types.Atom (Core.Types.UnboundSym "do")+                                                               appl_40 `pseq` (appl_82 `pseq` applyWrapper aw_83 [appl_40,+                                                                                                                  appl_82])+                                         Atom (B (False)) -> do !kl_if_84 <- let pat_cond_85 kl_V1402 kl_V1402h kl_V1402t = do !kl_if_86 <- let pat_cond_87 kl_V1402h kl_V1402hh kl_V1402ht = do !kl_if_88 <- let pat_cond_89 = do !kl_if_90 <- let pat_cond_91 kl_V1402ht kl_V1402hth kl_V1402htt = do !kl_if_92 <- let pat_cond_93 kl_V1402hth kl_V1402hthh kl_V1402htht = do !kl_if_94 <- let pat_cond_95 = do !kl_if_96 <- let pat_cond_97 kl_V1402htht kl_V1402hthth kl_V1402hthtt = do !kl_if_98 <- let pat_cond_99 kl_V1402hthtt kl_V1402hthtth kl_V1402hthttt = do let !appl_100 = Atom Nil+                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                           !kl_if_101 <- appl_100 `pseq` (kl_V1402hthttt `pseq` eq appl_100 kl_V1402hthttt)+                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                           !kl_if_102 <- case kl_if_101 of+                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                             Atom (B (True)) -> do !kl_if_103 <- let pat_cond_104 kl_V1402htt kl_V1402htth kl_V1402httt = do let !appl_105 = Atom Nil+                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                             !kl_if_106 <- appl_105 `pseq` (kl_V1402httt `pseq` eq appl_105 kl_V1402httt)+                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                             !kl_if_107 <- case kl_if_106 of+                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                               Atom (B (True)) -> do !kl_if_108 <- let pat_cond_109 kl_V1402t kl_V1402th kl_V1402tt = do let !appl_110 = Atom Nil+                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                         !kl_if_111 <- appl_110 `pseq` (kl_V1402tt `pseq` eq appl_110 kl_V1402tt)+                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                         case kl_if_111 of+                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                             Atom (B (True)) -> do return (Atom (B True))+                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                             Atom (B (False)) -> do do return (Atom (B False))+                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                             _ -> throwError "if: expected boolean"+                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                       pat_cond_112 = do do return (Atom (B False))+                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                    in case kl_V1402t of+                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                           !(kl_V1402t@(Cons (!kl_V1402th)+                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                             (!kl_V1402tt))) -> pat_cond_109 kl_V1402t kl_V1402th kl_V1402tt+                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                           _ -> pat_cond_112+                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                     case kl_if_108 of+                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                         Atom (B (True)) -> do return (Atom (B True))+                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                         Atom (B (False)) -> do do return (Atom (B False))+                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                         _ -> throwError "if: expected boolean"+                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                               Atom (B (False)) -> do do return (Atom (B False))+                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                               _ -> throwError "if: expected boolean"+                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                             case kl_if_107 of+                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                 Atom (B (True)) -> do return (Atom (B True))+                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                 Atom (B (False)) -> do do return (Atom (B False))+                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                 _ -> throwError "if: expected boolean"+                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                     pat_cond_113 = do do return (Atom (B False))+                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                  in case kl_V1402htt of+                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                         !(kl_V1402htt@(Cons (!kl_V1402htth)+                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                             (!kl_V1402httt))) -> pat_cond_104 kl_V1402htt kl_V1402htth kl_V1402httt+                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                         _ -> pat_cond_113+                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                   case kl_if_103 of+                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                       Atom (B (True)) -> do return (Atom (B True))+                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                       Atom (B (False)) -> do do return (Atom (B False))+                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                       _ -> throwError "if: expected boolean"+                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                             Atom (B (False)) -> do do return (Atom (B False))+                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                             _ -> throwError "if: expected boolean"+                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                           case kl_if_102 of+                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                               Atom (B (True)) -> do return (Atom (B True))+                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                               Atom (B (False)) -> do do return (Atom (B False))+                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                               _ -> throwError "if: expected boolean"+                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                              pat_cond_114 = do do return (Atom (B False))+                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                           in case kl_V1402hthtt of+                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                  !(kl_V1402hthtt@(Cons (!kl_V1402hthtth)+                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                        (!kl_V1402hthttt))) -> pat_cond_99 kl_V1402hthtt kl_V1402hthtth kl_V1402hthttt+                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                  _ -> pat_cond_114+                                                                                                                                                                                                                                                                                                                                                                                                                                                                                             case kl_if_98 of+                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                 Atom (B (True)) -> do return (Atom (B True))+                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                 Atom (B (False)) -> do do return (Atom (B False))+                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                 _ -> throwError "if: expected boolean"+                                                                                                                                                                                                                                                                                                                                                                                                                                   pat_cond_115 = do do return (Atom (B False))+                                                                                                                                                                                                                                                                                                                                                                                                                                in case kl_V1402htht of+                                                                                                                                                                                                                                                                                                                                                                                                                                       !(kl_V1402htht@(Cons (!kl_V1402hthth)+                                                                                                                                                                                                                                                                                                                                                                                                                                                            (!kl_V1402hthtt))) -> pat_cond_97 kl_V1402htht kl_V1402hthth kl_V1402hthtt+                                                                                                                                                                                                                                                                                                                                                                                                                                       _ -> pat_cond_115+                                                                                                                                                                                                                                                                                                                                                                                                                  case kl_if_96 of+                                                                                                                                                                                                                                                                                                                                                                                                                      Atom (B (True)) -> do return (Atom (B True))+                                                                                                                                                                                                                                                                                                                                                                                                                      Atom (B (False)) -> do do return (Atom (B False))+                                                                                                                                                                                                                                                                                                                                                                                                                      _ -> throwError "if: expected boolean"+                                                                                                                                                                                                                                                                                                                                                                                                 pat_cond_116 = do do return (Atom (B False))+                                                                                                                                                                                                                                                                                                                                                                                              in case kl_V1402hthh of+                                                                                                                                                                                                                                                                                                                                                                                                     kl_V1402hthh@(Atom (UnboundSym "@p")) -> pat_cond_95+                                                                                                                                                                                                                                                                                                                                                                                                     kl_V1402hthh@(ApplC (PL "@p"+                                                                                                                                                                                                                                                                                                                                                                                                                             _)) -> pat_cond_95+                                                                                                                                                                                                                                                                                                                                                                                                     kl_V1402hthh@(ApplC (Func "@p"+                                                                                                                                                                                                                                                                                                                                                                                                                               _)) -> pat_cond_95+                                                                                                                                                                                                                                                                                                                                                                                                     _ -> pat_cond_116+                                                                                                                                                                                                                                                                                                                                                                                case kl_if_94 of+                                                                                                                                                                                                                                                                                                                                                                                    Atom (B (True)) -> do return (Atom (B True))+                                                                                                                                                                                                                                                                                                                                                                                    Atom (B (False)) -> do do return (Atom (B False))+                                                                                                                                                                                                                                                                                                                                                                                    _ -> throwError "if: expected boolean"+                                                                                                                                                                                                                                                                                                                         pat_cond_117 = do do return (Atom (B False))+                                                                                                                                                                                                                                                                                                                      in case kl_V1402hth of+                                                                                                                                                                                                                                                                                                                             !(kl_V1402hth@(Cons (!kl_V1402hthh)+                                                                                                                                                                                                                                                                                                                                                 (!kl_V1402htht))) -> pat_cond_93 kl_V1402hth kl_V1402hthh kl_V1402htht+                                                                                                                                                                                                                                                                                                                             _ -> pat_cond_117+                                                                                                                                                                                                                                                                                                        case kl_if_92 of+                                                                                                                                                                                                                                                                                                            Atom (B (True)) -> do return (Atom (B True))+                                                                                                                                                                                                                                                                                                            Atom (B (False)) -> do do return (Atom (B False))+                                                                                                                                                                                                                                                                                                            _ -> throwError "if: expected boolean"+                                                                                                                                                                                                                                                    pat_cond_118 = do do return (Atom (B False))+                                                                                                                                                                                                                                                 in case kl_V1402ht of+                                                                                                                                                                                                                                                        !(kl_V1402ht@(Cons (!kl_V1402hth)+                                                                                                                                                                                                                                                                           (!kl_V1402htt))) -> pat_cond_91 kl_V1402ht kl_V1402hth kl_V1402htt+                                                                                                                                                                                                                                                        _ -> pat_cond_118+                                                                                                                                                                                                                                   case kl_if_90 of+                                                                                                                                                                                                                                       Atom (B (True)) -> do return (Atom (B True))+                                                                                                                                                                                                                                       Atom (B (False)) -> do do return (Atom (B False))+                                                                                                                                                                                                                                       _ -> throwError "if: expected boolean"+                                                                                                                                                                                                                  pat_cond_119 = do do return (Atom (B False))+                                                                                                                                                                                                               in case kl_V1402hh of+                                                                                                                                                                                                                      kl_V1402hh@(Atom (UnboundSym "/.")) -> pat_cond_89+                                                                                                                                                                                                                      kl_V1402hh@(ApplC (PL "/."+                                                                                                                                                                                                                                            _)) -> pat_cond_89+                                                                                                                                                                                                                      kl_V1402hh@(ApplC (Func "/."+                                                                                                                                                                                                                                              _)) -> pat_cond_89+                                                                                                                                                                                                                      _ -> pat_cond_119+                                                                                                                                                                                                 case kl_if_88 of+                                                                                                                                                                                                     Atom (B (True)) -> do return (Atom (B True))+                                                                                                                                                                                                     Atom (B (False)) -> do do return (Atom (B False))+                                                                                                                                                                                                     _ -> throwError "if: expected boolean"+                                                                                                                                                pat_cond_120 = do do return (Atom (B False))+                                                                                                                                             in case kl_V1402h of+                                                                                                                                                    !(kl_V1402h@(Cons (!kl_V1402hh)+                                                                                                                                                                      (!kl_V1402ht))) -> pat_cond_87 kl_V1402h kl_V1402hh kl_V1402ht+                                                                                                                                                    _ -> pat_cond_120+                                                                                                                               case kl_if_86 of+                                                                                                                                   Atom (B (True)) -> do return (Atom (B True))+                                                                                                                                   Atom (B (False)) -> do do return (Atom (B False))+                                                                                                                                   _ -> throwError "if: expected boolean"+                                                                                 pat_cond_121 = do do return (Atom (B False))+                                                                              in case kl_V1402 of+                                                                                     !(kl_V1402@(Cons (!kl_V1402h)+                                                                                                      (!kl_V1402t))) -> pat_cond_85 kl_V1402 kl_V1402h kl_V1402t+                                                                                     _ -> pat_cond_121+                                                                case kl_if_84 of+                                                                    Atom (B (True)) -> do !appl_122 <- kl_V1402 `pseq` tl kl_V1402+                                                                                          !appl_123 <- appl_122 `pseq` klCons (Core.Types.Atom (Core.Types.UnboundSym "tuple?")) appl_122+                                                                                          !appl_124 <- appl_123 `pseq` kl_shen_add_test appl_123+                                                                                          let !appl_125 = ApplC (Func "lambda" (Context (\(!kl_Abstraction) -> do let !appl_126 = ApplC (Func "lambda" (Context (\(!kl_Application) -> do kl_Application `pseq` kl_shen_reduce_help kl_Application)))+                                                                                                                                                                  !appl_127 <- kl_V1402 `pseq` tl kl_V1402+                                                                                                                                                                  !appl_128 <- appl_127 `pseq` klCons (Core.Types.Atom (Core.Types.UnboundSym "fst")) appl_127+                                                                                                                                                                  let !appl_129 = Atom Nil+                                                                                                                                                                  !appl_130 <- appl_128 `pseq` (appl_129 `pseq` klCons appl_128 appl_129)+                                                                                                                                                                  !appl_131 <- kl_Abstraction `pseq` (appl_130 `pseq` klCons kl_Abstraction appl_130)+                                                                                                                                                                  !appl_132 <- kl_V1402 `pseq` tl kl_V1402+                                                                                                                                                                  !appl_133 <- appl_132 `pseq` klCons (Core.Types.Atom (Core.Types.UnboundSym "snd")) appl_132+                                                                                                                                                                  let !appl_134 = Atom Nil+                                                                                                                                                                  !appl_135 <- appl_133 `pseq` (appl_134 `pseq` klCons appl_133 appl_134)+                                                                                                                                                                  !appl_136 <- appl_131 `pseq` (appl_135 `pseq` klCons appl_131 appl_135)+                                                                                                                                                                  appl_136 `pseq` applyWrapper appl_126 [appl_136])))+                                                                                          !appl_137 <- kl_V1402 `pseq` hd kl_V1402+                                                                                          !appl_138 <- appl_137 `pseq` tl appl_137+                                                                                          !appl_139 <- appl_138 `pseq` hd appl_138+                                                                                          !appl_140 <- appl_139 `pseq` tl appl_139+                                                                                          !appl_141 <- appl_140 `pseq` hd appl_140+                                                                                          !appl_142 <- kl_V1402 `pseq` hd kl_V1402+                                                                                          !appl_143 <- appl_142 `pseq` tl appl_142+                                                                                          !appl_144 <- appl_143 `pseq` hd appl_143+                                                                                          !appl_145 <- appl_144 `pseq` tl appl_144+                                                                                          !appl_146 <- appl_145 `pseq` tl appl_145+                                                                                          !appl_147 <- appl_146 `pseq` hd appl_146+                                                                                          !appl_148 <- kl_V1402 `pseq` tl kl_V1402+                                                                                          !appl_149 <- appl_148 `pseq` hd appl_148+                                                                                          !appl_150 <- kl_V1402 `pseq` hd kl_V1402+                                                                                          !appl_151 <- appl_150 `pseq` tl appl_150+                                                                                          !appl_152 <- appl_151 `pseq` hd appl_151+                                                                                          !appl_153 <- kl_V1402 `pseq` hd kl_V1402+                                                                                          !appl_154 <- appl_153 `pseq` tl appl_153+                                                                                          !appl_155 <- appl_154 `pseq` tl appl_154+                                                                                          !appl_156 <- appl_155 `pseq` hd appl_155+                                                                                          !appl_157 <- appl_149 `pseq` (appl_152 `pseq` (appl_156 `pseq` kl_shen_ebr appl_149 appl_152 appl_156))+                                                                                          let !appl_158 = Atom Nil+                                                                                          !appl_159 <- appl_157 `pseq` (appl_158 `pseq` klCons appl_157 appl_158)+                                                                                          !appl_160 <- appl_147 `pseq` (appl_159 `pseq` klCons appl_147 appl_159)+                                                                                          !appl_161 <- appl_160 `pseq` klCons (Core.Types.Atom (Core.Types.UnboundSym "/.")) appl_160+                                                                                          let !appl_162 = Atom Nil+                                                                                          !appl_163 <- appl_161 `pseq` (appl_162 `pseq` klCons appl_161 appl_162)+                                                                                          !appl_164 <- appl_141 `pseq` (appl_163 `pseq` klCons appl_141 appl_163)+                                                                                          !appl_165 <- appl_164 `pseq` klCons (Core.Types.Atom (Core.Types.UnboundSym "/.")) appl_164+                                                                                          !appl_166 <- appl_165 `pseq` applyWrapper appl_125 [appl_165]+                                                                                          let !aw_167 = Core.Types.Atom (Core.Types.UnboundSym "do")+                                                                                          appl_124 `pseq` (appl_166 `pseq` applyWrapper aw_167 [appl_124,+                                                                                                                                                appl_166])+                                                                    Atom (B (False)) -> do !kl_if_168 <- let pat_cond_169 kl_V1402 kl_V1402h kl_V1402t = do !kl_if_170 <- let pat_cond_171 kl_V1402h kl_V1402hh kl_V1402ht = do !kl_if_172 <- let pat_cond_173 = do !kl_if_174 <- let pat_cond_175 kl_V1402ht kl_V1402hth kl_V1402htt = do !kl_if_176 <- let pat_cond_177 kl_V1402hth kl_V1402hthh kl_V1402htht = do !kl_if_178 <- let pat_cond_179 = do !kl_if_180 <- let pat_cond_181 kl_V1402htht kl_V1402hthth kl_V1402hthtt = do !kl_if_182 <- let pat_cond_183 kl_V1402hthtt kl_V1402hthtth kl_V1402hthttt = do let !appl_184 = Atom Nil+                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                      !kl_if_185 <- appl_184 `pseq` (kl_V1402hthttt `pseq` eq appl_184 kl_V1402hthttt)+                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                      !kl_if_186 <- case kl_if_185 of+                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                        Atom (B (True)) -> do !kl_if_187 <- let pat_cond_188 kl_V1402htt kl_V1402htth kl_V1402httt = do let !appl_189 = Atom Nil+                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                        !kl_if_190 <- appl_189 `pseq` (kl_V1402httt `pseq` eq appl_189 kl_V1402httt)+                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                        !kl_if_191 <- case kl_if_190 of+                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                          Atom (B (True)) -> do !kl_if_192 <- let pat_cond_193 kl_V1402t kl_V1402th kl_V1402tt = do let !appl_194 = Atom Nil+                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                    !kl_if_195 <- appl_194 `pseq` (kl_V1402tt `pseq` eq appl_194 kl_V1402tt)+                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                    case kl_if_195 of+                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                        Atom (B (True)) -> do return (Atom (B True))+                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                        Atom (B (False)) -> do do return (Atom (B False))+                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                        _ -> throwError "if: expected boolean"+                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                  pat_cond_196 = do do return (Atom (B False))+                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                               in case kl_V1402t of+                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                      !(kl_V1402t@(Cons (!kl_V1402th)+                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                        (!kl_V1402tt))) -> pat_cond_193 kl_V1402t kl_V1402th kl_V1402tt+                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                      _ -> pat_cond_196+                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                case kl_if_192 of+                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                    Atom (B (True)) -> do return (Atom (B True))+                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                    Atom (B (False)) -> do do return (Atom (B False))+                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                    _ -> throwError "if: expected boolean"+                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                          Atom (B (False)) -> do do return (Atom (B False))+                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                          _ -> throwError "if: expected boolean"+                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                        case kl_if_191 of+                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                            Atom (B (True)) -> do return (Atom (B True))+                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                            Atom (B (False)) -> do do return (Atom (B False))+                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                            _ -> throwError "if: expected boolean"+                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                pat_cond_197 = do do return (Atom (B False))+                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                             in case kl_V1402htt of+                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                    !(kl_V1402htt@(Cons (!kl_V1402htth)+                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                        (!kl_V1402httt))) -> pat_cond_188 kl_V1402htt kl_V1402htth kl_V1402httt+                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                    _ -> pat_cond_197+                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                              case kl_if_187 of+                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                  Atom (B (True)) -> do return (Atom (B True))+                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                  Atom (B (False)) -> do do return (Atom (B False))+                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                  _ -> throwError "if: expected boolean"+                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                        Atom (B (False)) -> do do return (Atom (B False))+                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                        _ -> throwError "if: expected boolean"+                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                      case kl_if_186 of+                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                          Atom (B (True)) -> do return (Atom (B True))+                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                          Atom (B (False)) -> do do return (Atom (B False))+                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                          _ -> throwError "if: expected boolean"+                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                        pat_cond_198 = do do return (Atom (B False))+                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                     in case kl_V1402hthtt of+                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                            !(kl_V1402hthtt@(Cons (!kl_V1402hthtth)+                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                  (!kl_V1402hthttt))) -> pat_cond_183 kl_V1402hthtt kl_V1402hthtth kl_V1402hthttt+                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                            _ -> pat_cond_198+                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                      case kl_if_182 of+                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                          Atom (B (True)) -> do return (Atom (B True))+                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                          Atom (B (False)) -> do do return (Atom (B False))+                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                          _ -> throwError "if: expected boolean"+                                                                                                                                                                                                                                                                                                                                                                                                                                                                           pat_cond_199 = do do return (Atom (B False))+                                                                                                                                                                                                                                                                                                                                                                                                                                                                        in case kl_V1402htht of+                                                                                                                                                                                                                                                                                                                                                                                                                                                                               !(kl_V1402htht@(Cons (!kl_V1402hthth)+                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                    (!kl_V1402hthtt))) -> pat_cond_181 kl_V1402htht kl_V1402hthth kl_V1402hthtt+                                                                                                                                                                                                                                                                                                                                                                                                                                                                               _ -> pat_cond_199+                                                                                                                                                                                                                                                                                                                                                                                                                                                         case kl_if_180 of+                                                                                                                                                                                                                                                                                                                                                                                                                                                             Atom (B (True)) -> do return (Atom (B True))+                                                                                                                                                                                                                                                                                                                                                                                                                                                             Atom (B (False)) -> do do return (Atom (B False))+                                                                                                                                                                                                                                                                                                                                                                                                                                                             _ -> throwError "if: expected boolean"+                                                                                                                                                                                                                                                                                                                                                                                                                                       pat_cond_200 = do do return (Atom (B False))+                                                                                                                                                                                                                                                                                                                                                                                                                                    in case kl_V1402hthh of+                                                                                                                                                                                                                                                                                                                                                                                                                                           kl_V1402hthh@(Atom (UnboundSym "@v")) -> pat_cond_179+                                                                                                                                                                                                                                                                                                                                                                                                                                           kl_V1402hthh@(ApplC (PL "@v"+                                                                                                                                                                                                                                                                                                                                                                                                                                                                   _)) -> pat_cond_179+                                                                                                                                                                                                                                                                                                                                                                                                                                           kl_V1402hthh@(ApplC (Func "@v"+                                                                                                                                                                                                                                                                                                                                                                                                                                                                     _)) -> pat_cond_179+                                                                                                                                                                                                                                                                                                                                                                                                                                           _ -> pat_cond_200+                                                                                                                                                                                                                                                                                                                                                                                                                     case kl_if_178 of+                                                                                                                                                                                                                                                                                                                                                                                                                         Atom (B (True)) -> do return (Atom (B True))+                                                                                                                                                                                                                                                                                                                                                                                                                         Atom (B (False)) -> do do return (Atom (B False))+                                                                                                                                                                                                                                                                                                                                                                                                                         _ -> throwError "if: expected boolean"+                                                                                                                                                                                                                                                                                                                                                             pat_cond_201 = do do return (Atom (B False))+                                                                                                                                                                                                                                                                                                                                                          in case kl_V1402hth of+                                                                                                                                                                                                                                                                                                                                                                 !(kl_V1402hth@(Cons (!kl_V1402hthh)+                                                                                                                                                                                                                                                                                                                                                                                     (!kl_V1402htht))) -> pat_cond_177 kl_V1402hth kl_V1402hthh kl_V1402htht+                                                                                                                                                                                                                                                                                                                                                                 _ -> pat_cond_201+                                                                                                                                                                                                                                                                                                                                           case kl_if_176 of+                                                                                                                                                                                                                                                                                                                                               Atom (B (True)) -> do return (Atom (B True))+                                                                                                                                                                                                                                                                                                                                               Atom (B (False)) -> do do return (Atom (B False))+                                                                                                                                                                                                                                                                                                                                               _ -> throwError "if: expected boolean"+                                                                                                                                                                                                                                                                                      pat_cond_202 = do do return (Atom (B False))+                                                                                                                                                                                                                                                                                   in case kl_V1402ht of+                                                                                                                                                                                                                                                                                          !(kl_V1402ht@(Cons (!kl_V1402hth)+                                                                                                                                                                                                                                                                                                             (!kl_V1402htt))) -> pat_cond_175 kl_V1402ht kl_V1402hth kl_V1402htt+                                                                                                                                                                                                                                                                                          _ -> pat_cond_202+                                                                                                                                                                                                                                                                    case kl_if_174 of+                                                                                                                                                                                                                                                                        Atom (B (True)) -> do return (Atom (B True))+                                                                                                                                                                                                                                                                        Atom (B (False)) -> do do return (Atom (B False))+                                                                                                                                                                                                                                                                        _ -> throwError "if: expected boolean"+                                                                                                                                                                                                                                                  pat_cond_203 = do do return (Atom (B False))+                                                                                                                                                                                                                                               in case kl_V1402hh of+                                                                                                                                                                                                                                                      kl_V1402hh@(Atom (UnboundSym "/.")) -> pat_cond_173+                                                                                                                                                                                                                                                      kl_V1402hh@(ApplC (PL "/."+                                                                                                                                                                                                                                                                            _)) -> pat_cond_173+                                                                                                                                                                                                                                                      kl_V1402hh@(ApplC (Func "/."+                                                                                                                                                                                                                                                                              _)) -> pat_cond_173+                                                                                                                                                                                                                                                      _ -> pat_cond_203+                                                                                                                                                                                                                                case kl_if_172 of+                                                                                                                                                                                                                                    Atom (B (True)) -> do return (Atom (B True))+                                                                                                                                                                                                                                    Atom (B (False)) -> do do return (Atom (B False))+                                                                                                                                                                                                                                    _ -> throwError "if: expected boolean"+                                                                                                                                                                              pat_cond_204 = do do return (Atom (B False))+                                                                                                                                                                           in case kl_V1402h of+                                                                                                                                                                                  !(kl_V1402h@(Cons (!kl_V1402hh)+                                                                                                                                                                                                    (!kl_V1402ht))) -> pat_cond_171 kl_V1402h kl_V1402hh kl_V1402ht+                                                                                                                                                                                  _ -> pat_cond_204+                                                                                                                                                            case kl_if_170 of+                                                                                                                                                                Atom (B (True)) -> do return (Atom (B True))+                                                                                                                                                                Atom (B (False)) -> do do return (Atom (B False))+                                                                                                                                                                _ -> throwError "if: expected boolean"+                                                                                                             pat_cond_205 = do do return (Atom (B False))+                                                                                                          in case kl_V1402 of+                                                                                                                 !(kl_V1402@(Cons (!kl_V1402h)+                                                                                                                                  (!kl_V1402t))) -> pat_cond_169 kl_V1402 kl_V1402h kl_V1402t+                                                                                                                 _ -> pat_cond_205+                                                                                           case kl_if_168 of+                                                                                               Atom (B (True)) -> do !appl_206 <- kl_V1402 `pseq` tl kl_V1402+                                                                                                                     !appl_207 <- appl_206 `pseq` klCons (ApplC (wrapNamed "shen.+vector?" kl_shen_PlusvectorP)) appl_206+                                                                                                                     !appl_208 <- appl_207 `pseq` kl_shen_add_test appl_207+                                                                                                                     let !appl_209 = ApplC (Func "lambda" (Context (\(!kl_Abstraction) -> do let !appl_210 = ApplC (Func "lambda" (Context (\(!kl_Application) -> do kl_Application `pseq` kl_shen_reduce_help kl_Application)))+                                                                                                                                                                                             !appl_211 <- kl_V1402 `pseq` tl kl_V1402+                                                                                                                                                                                             !appl_212 <- appl_211 `pseq` klCons (Core.Types.Atom (Core.Types.UnboundSym "hdv")) appl_211+                                                                                                                                                                                             let !appl_213 = Atom Nil+                                                                                                                                                                                             !appl_214 <- appl_212 `pseq` (appl_213 `pseq` klCons appl_212 appl_213)+                                                                                                                                                                                             !appl_215 <- kl_Abstraction `pseq` (appl_214 `pseq` klCons kl_Abstraction appl_214)+                                                                                                                                                                                             !appl_216 <- kl_V1402 `pseq` tl kl_V1402+                                                                                                                                                                                             !appl_217 <- appl_216 `pseq` klCons (Core.Types.Atom (Core.Types.UnboundSym "tlv")) appl_216+                                                                                                                                                                                             let !appl_218 = Atom Nil+                                                                                                                                                                                             !appl_219 <- appl_217 `pseq` (appl_218 `pseq` klCons appl_217 appl_218)+                                                                                                                                                                                             !appl_220 <- appl_215 `pseq` (appl_219 `pseq` klCons appl_215 appl_219)+                                                                                                                                                                                             appl_220 `pseq` applyWrapper appl_210 [appl_220])))+                                                                                                                     !appl_221 <- kl_V1402 `pseq` hd kl_V1402+                                                                                                                     !appl_222 <- appl_221 `pseq` tl appl_221+                                                                                                                     !appl_223 <- appl_222 `pseq` hd appl_222+                                                                                                                     !appl_224 <- appl_223 `pseq` tl appl_223+                                                                                                                     !appl_225 <- appl_224 `pseq` hd appl_224+                                                                                                                     !appl_226 <- kl_V1402 `pseq` hd kl_V1402+                                                                                                                     !appl_227 <- appl_226 `pseq` tl appl_226+                                                                                                                     !appl_228 <- appl_227 `pseq` hd appl_227+                                                                                                                     !appl_229 <- appl_228 `pseq` tl appl_228+                                                                                                                     !appl_230 <- appl_229 `pseq` tl appl_229+                                                                                                                     !appl_231 <- appl_230 `pseq` hd appl_230+                                                                                                                     !appl_232 <- kl_V1402 `pseq` tl kl_V1402+                                                                                                                     !appl_233 <- appl_232 `pseq` hd appl_232+                                                                                                                     !appl_234 <- kl_V1402 `pseq` hd kl_V1402+                                                                                                                     !appl_235 <- appl_234 `pseq` tl appl_234+                                                                                                                     !appl_236 <- appl_235 `pseq` hd appl_235+                                                                                                                     !appl_237 <- kl_V1402 `pseq` hd kl_V1402+                                                                                                                     !appl_238 <- appl_237 `pseq` tl appl_237+                                                                                                                     !appl_239 <- appl_238 `pseq` tl appl_238+                                                                                                                     !appl_240 <- appl_239 `pseq` hd appl_239+                                                                                                                     !appl_241 <- appl_233 `pseq` (appl_236 `pseq` (appl_240 `pseq` kl_shen_ebr appl_233 appl_236 appl_240))+                                                                                                                     let !appl_242 = Atom Nil+                                                                                                                     !appl_243 <- appl_241 `pseq` (appl_242 `pseq` klCons appl_241 appl_242)+                                                                                                                     !appl_244 <- appl_231 `pseq` (appl_243 `pseq` klCons appl_231 appl_243)+                                                                                                                     !appl_245 <- appl_244 `pseq` klCons (Core.Types.Atom (Core.Types.UnboundSym "/.")) appl_244+                                                                                                                     let !appl_246 = Atom Nil+                                                                                                                     !appl_247 <- appl_245 `pseq` (appl_246 `pseq` klCons appl_245 appl_246)+                                                                                                                     !appl_248 <- appl_225 `pseq` (appl_247 `pseq` klCons appl_225 appl_247)+                                                                                                                     !appl_249 <- appl_248 `pseq` klCons (Core.Types.Atom (Core.Types.UnboundSym "/.")) appl_248+                                                                                                                     !appl_250 <- appl_249 `pseq` applyWrapper appl_209 [appl_249]+                                                                                                                     let !aw_251 = Core.Types.Atom (Core.Types.UnboundSym "do")+                                                                                                                     appl_208 `pseq` (appl_250 `pseq` applyWrapper aw_251 [appl_208,+                                                                                                                                                                           appl_250])+                                                                                               Atom (B (False)) -> do !kl_if_252 <- let pat_cond_253 kl_V1402 kl_V1402h kl_V1402t = do !kl_if_254 <- let pat_cond_255 kl_V1402h kl_V1402hh kl_V1402ht = do !kl_if_256 <- let pat_cond_257 = do !kl_if_258 <- let pat_cond_259 kl_V1402ht kl_V1402hth kl_V1402htt = do !kl_if_260 <- let pat_cond_261 kl_V1402hth kl_V1402hthh kl_V1402htht = do !kl_if_262 <- let pat_cond_263 = do !kl_if_264 <- let pat_cond_265 kl_V1402htht kl_V1402hthth kl_V1402hthtt = do !kl_if_266 <- let pat_cond_267 kl_V1402hthtt kl_V1402hthtth kl_V1402hthttt = do let !appl_268 = Atom Nil+                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                 !kl_if_269 <- appl_268 `pseq` (kl_V1402hthttt `pseq` eq appl_268 kl_V1402hthttt)+                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                 !kl_if_270 <- case kl_if_269 of+                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                   Atom (B (True)) -> do !kl_if_271 <- let pat_cond_272 kl_V1402htt kl_V1402htth kl_V1402httt = do let !appl_273 = Atom Nil+                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                   !kl_if_274 <- appl_273 `pseq` (kl_V1402httt `pseq` eq appl_273 kl_V1402httt)+                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                   !kl_if_275 <- case kl_if_274 of+                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                     Atom (B (True)) -> do !kl_if_276 <- let pat_cond_277 kl_V1402t kl_V1402th kl_V1402tt = do let !appl_278 = Atom Nil+                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                               !kl_if_279 <- appl_278 `pseq` (kl_V1402tt `pseq` eq appl_278 kl_V1402tt)+                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                               case kl_if_279 of+                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                   Atom (B (True)) -> do return (Atom (B True))+                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                   Atom (B (False)) -> do do return (Atom (B False))+                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                   _ -> throwError "if: expected boolean"+                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                             pat_cond_280 = do do return (Atom (B False))+                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                          in case kl_V1402t of+                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                 !(kl_V1402t@(Cons (!kl_V1402th)+                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                   (!kl_V1402tt))) -> pat_cond_277 kl_V1402t kl_V1402th kl_V1402tt+                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                 _ -> pat_cond_280+                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                           case kl_if_276 of+                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                               Atom (B (True)) -> do return (Atom (B True))+                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                               Atom (B (False)) -> do do return (Atom (B False))+                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                               _ -> throwError "if: expected boolean"+                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                     Atom (B (False)) -> do do return (Atom (B False))+                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                     _ -> throwError "if: expected boolean"+                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                   case kl_if_275 of+                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                       Atom (B (True)) -> do return (Atom (B True))+                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                       Atom (B (False)) -> do do return (Atom (B False))+                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                       _ -> throwError "if: expected boolean"+                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                           pat_cond_281 = do do return (Atom (B False))+                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                        in case kl_V1402htt of+                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                               !(kl_V1402htt@(Cons (!kl_V1402htth)+                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                   (!kl_V1402httt))) -> pat_cond_272 kl_V1402htt kl_V1402htth kl_V1402httt+                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                               _ -> pat_cond_281+                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                         case kl_if_271 of+                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                             Atom (B (True)) -> do return (Atom (B True))+                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                             Atom (B (False)) -> do do return (Atom (B False))+                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                             _ -> throwError "if: expected boolean"+                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                   Atom (B (False)) -> do do return (Atom (B False))+                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                   _ -> throwError "if: expected boolean"+                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                 case kl_if_270 of+                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                     Atom (B (True)) -> do return (Atom (B True))+                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                     Atom (B (False)) -> do do return (Atom (B False))+                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                     _ -> throwError "if: expected boolean"+                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                   pat_cond_282 = do do return (Atom (B False))+                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                in case kl_V1402hthtt of+                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                       !(kl_V1402hthtt@(Cons (!kl_V1402hthtth)+                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                             (!kl_V1402hthttt))) -> pat_cond_267 kl_V1402hthtt kl_V1402hthtth kl_V1402hthttt+                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                       _ -> pat_cond_282+                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                 case kl_if_266 of+                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                     Atom (B (True)) -> do return (Atom (B True))+                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                     Atom (B (False)) -> do do return (Atom (B False))+                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                     _ -> throwError "if: expected boolean"+                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                      pat_cond_283 = do do return (Atom (B False))+                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                   in case kl_V1402htht of+                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                          !(kl_V1402htht@(Cons (!kl_V1402hthth)+                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                               (!kl_V1402hthtt))) -> pat_cond_265 kl_V1402htht kl_V1402hthth kl_V1402hthtt+                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                          _ -> pat_cond_283+                                                                                                                                                                                                                                                                                                                                                                                                                                                                                    case kl_if_264 of+                                                                                                                                                                                                                                                                                                                                                                                                                                                                                        Atom (B (True)) -> do return (Atom (B True))+                                                                                                                                                                                                                                                                                                                                                                                                                                                                                        Atom (B (False)) -> do do return (Atom (B False))+                                                                                                                                                                                                                                                                                                                                                                                                                                                                                        _ -> throwError "if: expected boolean"+                                                                                                                                                                                                                                                                                                                                                                                                                                                                  pat_cond_284 = do do return (Atom (B False))+                                                                                                                                                                                                                                                                                                                                                                                                                                                               in case kl_V1402hthh of+                                                                                                                                                                                                                                                                                                                                                                                                                                                                      kl_V1402hthh@(Atom (UnboundSym "@s")) -> pat_cond_263+                                                                                                                                                                                                                                                                                                                                                                                                                                                                      kl_V1402hthh@(ApplC (PL "@s"+                                                                                                                                                                                                                                                                                                                                                                                                                                                                                              _)) -> pat_cond_263+                                                                                                                                                                                                                                                                                                                                                                                                                                                                      kl_V1402hthh@(ApplC (Func "@s"+                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                _)) -> pat_cond_263+                                                                                                                                                                                                                                                                                                                                                                                                                                                                      _ -> pat_cond_284+                                                                                                                                                                                                                                                                                                                                                                                                                                                case kl_if_262 of+                                                                                                                                                                                                                                                                                                                                                                                                                                                    Atom (B (True)) -> do return (Atom (B True))+                                                                                                                                                                                                                                                                                                                                                                                                                                                    Atom (B (False)) -> do do return (Atom (B False))+                                                                                                                                                                                                                                                                                                                                                                                                                                                    _ -> throwError "if: expected boolean"+                                                                                                                                                                                                                                                                                                                                                                                        pat_cond_285 = do do return (Atom (B False))+                                                                                                                                                                                                                                                                                                                                                                                     in case kl_V1402hth of+                                                                                                                                                                                                                                                                                                                                                                                            !(kl_V1402hth@(Cons (!kl_V1402hthh)+                                                                                                                                                                                                                                                                                                                                                                                                                (!kl_V1402htht))) -> pat_cond_261 kl_V1402hth kl_V1402hthh kl_V1402htht+                                                                                                                                                                                                                                                                                                                                                                                            _ -> pat_cond_285+                                                                                                                                                                                                                                                                                                                                                                      case kl_if_260 of+                                                                                                                                                                                                                                                                                                                                                                          Atom (B (True)) -> do return (Atom (B True))+                                                                                                                                                                                                                                                                                                                                                                          Atom (B (False)) -> do do return (Atom (B False))+                                                                                                                                                                                                                                                                                                                                                                          _ -> throwError "if: expected boolean"+                                                                                                                                                                                                                                                                                                                 pat_cond_286 = do do return (Atom (B False))+                                                                                                                                                                                                                                                                                                              in case kl_V1402ht of+                                                                                                                                                                                                                                                                                                                     !(kl_V1402ht@(Cons (!kl_V1402hth)+                                                                                                                                                                                                                                                                                                                                        (!kl_V1402htt))) -> pat_cond_259 kl_V1402ht kl_V1402hth kl_V1402htt+                                                                                                                                                                                                                                                                                                                     _ -> pat_cond_286+                                                                                                                                                                                                                                                                                               case kl_if_258 of+                                                                                                                                                                                                                                                                                                   Atom (B (True)) -> do return (Atom (B True))+                                                                                                                                                                                                                                                                                                   Atom (B (False)) -> do do return (Atom (B False))+                                                                                                                                                                                                                                                                                                   _ -> throwError "if: expected boolean"+                                                                                                                                                                                                                                                                             pat_cond_287 = do do return (Atom (B False))+                                                                                                                                                                                                                                                                          in case kl_V1402hh of+                                                                                                                                                                                                                                                                                 kl_V1402hh@(Atom (UnboundSym "/.")) -> pat_cond_257+                                                                                                                                                                                                                                                                                 kl_V1402hh@(ApplC (PL "/."+                                                                                                                                                                                                                                                                                                       _)) -> pat_cond_257+                                                                                                                                                                                                                                                                                 kl_V1402hh@(ApplC (Func "/."+                                                                                                                                                                                                                                                                                                         _)) -> pat_cond_257+                                                                                                                                                                                                                                                                                 _ -> pat_cond_287+                                                                                                                                                                                                                                                           case kl_if_256 of+                                                                                                                                                                                                                                                               Atom (B (True)) -> do return (Atom (B True))+                                                                                                                                                                                                                                                               Atom (B (False)) -> do do return (Atom (B False))+                                                                                                                                                                                                                                                               _ -> throwError "if: expected boolean"+                                                                                                                                                                                                         pat_cond_288 = do do return (Atom (B False))+                                                                                                                                                                                                      in case kl_V1402h of+                                                                                                                                                                                                             !(kl_V1402h@(Cons (!kl_V1402hh)+                                                                                                                                                                                                                               (!kl_V1402ht))) -> pat_cond_255 kl_V1402h kl_V1402hh kl_V1402ht+                                                                                                                                                                                                             _ -> pat_cond_288+                                                                                                                                                                                       case kl_if_254 of+                                                                                                                                                                                           Atom (B (True)) -> do return (Atom (B True))+                                                                                                                                                                                           Atom (B (False)) -> do do return (Atom (B False))+                                                                                                                                                                                           _ -> throwError "if: expected boolean"+                                                                                                                                        pat_cond_289 = do do return (Atom (B False))+                                                                                                                                     in case kl_V1402 of+                                                                                                                                            !(kl_V1402@(Cons (!kl_V1402h)+                                                                                                                                                             (!kl_V1402t))) -> pat_cond_253 kl_V1402 kl_V1402h kl_V1402t+                                                                                                                                            _ -> pat_cond_289+                                                                                                                      case kl_if_252 of+                                                                                                                          Atom (B (True)) -> do !appl_290 <- kl_V1402 `pseq` tl kl_V1402+                                                                                                                                                !appl_291 <- appl_290 `pseq` klCons (ApplC (wrapNamed "shen.+string?" kl_shen_PlusstringP)) appl_290+                                                                                                                                                !appl_292 <- appl_291 `pseq` kl_shen_add_test appl_291+                                                                                                                                                let !appl_293 = ApplC (Func "lambda" (Context (\(!kl_Abstraction) -> do let !appl_294 = ApplC (Func "lambda" (Context (\(!kl_Application) -> do kl_Application `pseq` kl_shen_reduce_help kl_Application)))+                                                                                                                                                                                                                        !appl_295 <- kl_V1402 `pseq` tl kl_V1402+                                                                                                                                                                                                                        !appl_296 <- appl_295 `pseq` hd appl_295+                                                                                                                                                                                                                        let !appl_297 = Atom Nil+                                                                                                                                                                                                                        !appl_298 <- appl_297 `pseq` klCons (Core.Types.Atom (Core.Types.N (Core.Types.KI 0))) appl_297+                                                                                                                                                                                                                        !appl_299 <- appl_296 `pseq` (appl_298 `pseq` klCons appl_296 appl_298)+                                                                                                                                                                                                                        !appl_300 <- appl_299 `pseq` klCons (ApplC (wrapNamed "pos" pos)) appl_299+                                                                                                                                                                                                                        let !appl_301 = Atom Nil+                                                                                                                                                                                                                        !appl_302 <- appl_300 `pseq` (appl_301 `pseq` klCons appl_300 appl_301)+                                                                                                                                                                                                                        !appl_303 <- kl_Abstraction `pseq` (appl_302 `pseq` klCons kl_Abstraction appl_302)+                                                                                                                                                                                                                        !appl_304 <- kl_V1402 `pseq` tl kl_V1402+                                                                                                                                                                                                                        !appl_305 <- appl_304 `pseq` klCons (ApplC (wrapNamed "tlstr" tlstr)) appl_304+                                                                                                                                                                                                                        let !appl_306 = Atom Nil+                                                                                                                                                                                                                        !appl_307 <- appl_305 `pseq` (appl_306 `pseq` klCons appl_305 appl_306)+                                                                                                                                                                                                                        !appl_308 <- appl_303 `pseq` (appl_307 `pseq` klCons appl_303 appl_307)+                                                                                                                                                                                                                        appl_308 `pseq` applyWrapper appl_294 [appl_308])))+                                                                                                                                                !appl_309 <- kl_V1402 `pseq` hd kl_V1402+                                                                                                                                                !appl_310 <- appl_309 `pseq` tl appl_309+                                                                                                                                                !appl_311 <- appl_310 `pseq` hd appl_310+                                                                                                                                                !appl_312 <- appl_311 `pseq` tl appl_311+                                                                                                                                                !appl_313 <- appl_312 `pseq` hd appl_312+                                                                                                                                                !appl_314 <- kl_V1402 `pseq` hd kl_V1402+                                                                                                                                                !appl_315 <- appl_314 `pseq` tl appl_314+                                                                                                                                                !appl_316 <- appl_315 `pseq` hd appl_315+                                                                                                                                                !appl_317 <- appl_316 `pseq` tl appl_316+                                                                                                                                                !appl_318 <- appl_317 `pseq` tl appl_317+                                                                                                                                                !appl_319 <- appl_318 `pseq` hd appl_318+                                                                                                                                                !appl_320 <- kl_V1402 `pseq` tl kl_V1402+                                                                                                                                                !appl_321 <- appl_320 `pseq` hd appl_320+                                                                                                                                                !appl_322 <- kl_V1402 `pseq` hd kl_V1402+                                                                                                                                                !appl_323 <- appl_322 `pseq` tl appl_322+                                                                                                                                                !appl_324 <- appl_323 `pseq` hd appl_323+                                                                                                                                                !appl_325 <- kl_V1402 `pseq` hd kl_V1402+                                                                                                                                                !appl_326 <- appl_325 `pseq` tl appl_325+                                                                                                                                                !appl_327 <- appl_326 `pseq` tl appl_326+                                                                                                                                                !appl_328 <- appl_327 `pseq` hd appl_327+                                                                                                                                                !appl_329 <- appl_321 `pseq` (appl_324 `pseq` (appl_328 `pseq` kl_shen_ebr appl_321 appl_324 appl_328))+                                                                                                                                                let !appl_330 = Atom Nil+                                                                                                                                                !appl_331 <- appl_329 `pseq` (appl_330 `pseq` klCons appl_329 appl_330)+                                                                                                                                                !appl_332 <- appl_319 `pseq` (appl_331 `pseq` klCons appl_319 appl_331)+                                                                                                                                                !appl_333 <- appl_332 `pseq` klCons (Core.Types.Atom (Core.Types.UnboundSym "/.")) appl_332+                                                                                                                                                let !appl_334 = Atom Nil+                                                                                                                                                !appl_335 <- appl_333 `pseq` (appl_334 `pseq` klCons appl_333 appl_334)+                                                                                                                                                !appl_336 <- appl_313 `pseq` (appl_335 `pseq` klCons appl_313 appl_335)+                                                                                                                                                !appl_337 <- appl_336 `pseq` klCons (Core.Types.Atom (Core.Types.UnboundSym "/.")) appl_336+                                                                                                                                                !appl_338 <- appl_337 `pseq` applyWrapper appl_293 [appl_337]+                                                                                                                                                let !aw_339 = Core.Types.Atom (Core.Types.UnboundSym "do")+                                                                                                                                                appl_292 `pseq` (appl_338 `pseq` applyWrapper aw_339 [appl_292,+                                                                                                                                                                                                      appl_338])+                                                                                                                          Atom (B (False)) -> do !kl_if_340 <- let pat_cond_341 kl_V1402 kl_V1402h kl_V1402t = do !kl_if_342 <- let pat_cond_343 kl_V1402h kl_V1402hh kl_V1402ht = do !kl_if_344 <- let pat_cond_345 = do !kl_if_346 <- let pat_cond_347 kl_V1402ht kl_V1402hth kl_V1402htt = do !kl_if_348 <- let pat_cond_349 kl_V1402htt kl_V1402htth kl_V1402httt = do let !appl_350 = Atom Nil+                                                                                                                                                                                                                                                                                                                                                                                                                                                                           !kl_if_351 <- appl_350 `pseq` (kl_V1402httt `pseq` eq appl_350 kl_V1402httt)+                                                                                                                                                                                                                                                                                                                                                                                                                                                                           !kl_if_352 <- case kl_if_351 of+                                                                                                                                                                                                                                                                                                                                                                                                                                                                                             Atom (B (True)) -> do !kl_if_353 <- let pat_cond_354 kl_V1402t kl_V1402th kl_V1402tt = do let !appl_355 = Atom Nil+                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                       !kl_if_356 <- appl_355 `pseq` (kl_V1402tt `pseq` eq appl_355 kl_V1402tt)+                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                       !kl_if_357 <- case kl_if_356 of+                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                         Atom (B (True)) -> do let !aw_358 = Core.Types.Atom (Core.Types.UnboundSym "variable?")+                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                               !appl_359 <- kl_V1402hth `pseq` applyWrapper aw_358 [kl_V1402hth]+                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                               let !aw_360 = Core.Types.Atom (Core.Types.UnboundSym "not")+                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                               !kl_if_361 <- appl_359 `pseq` applyWrapper aw_360 [appl_359]+                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                               case kl_if_361 of+                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                   Atom (B (True)) -> do return (Atom (B True))+                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                   Atom (B (False)) -> do do return (Atom (B False))+                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                   _ -> throwError "if: expected boolean"+                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                         Atom (B (False)) -> do do return (Atom (B False))+                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                         _ -> throwError "if: expected boolean"+                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                       case kl_if_357 of+                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                           Atom (B (True)) -> do return (Atom (B True))+                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                           Atom (B (False)) -> do do return (Atom (B False))+                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                           _ -> throwError "if: expected boolean"+                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                     pat_cond_362 = do do return (Atom (B False))+                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                  in case kl_V1402t of+                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                         !(kl_V1402t@(Cons (!kl_V1402th)+                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                           (!kl_V1402tt))) -> pat_cond_354 kl_V1402t kl_V1402th kl_V1402tt+                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                         _ -> pat_cond_362+                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                   case kl_if_353 of+                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                       Atom (B (True)) -> do return (Atom (B True))+                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                       Atom (B (False)) -> do do return (Atom (B False))+                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                       _ -> throwError "if: expected boolean"+                                                                                                                                                                                                                                                                                                                                                                                                                                                                                             Atom (B (False)) -> do do return (Atom (B False))+                                                                                                                                                                                                                                                                                                                                                                                                                                                                                             _ -> throwError "if: expected boolean"+                                                                                                                                                                                                                                                                                                                                                                                                                                                                           case kl_if_352 of+                                                                                                                                                                                                                                                                                                                                                                                                                                                                               Atom (B (True)) -> do return (Atom (B True))+                                                                                                                                                                                                                                                                                                                                                                                                                                                                               Atom (B (False)) -> do do return (Atom (B False))+                                                                                                                                                                                                                                                                                                                                                                                                                                                                               _ -> throwError "if: expected boolean"+                                                                                                                                                                                                                                                                                                                                                                                                                   pat_cond_363 = do do return (Atom (B False))+                                                                                                                                                                                                                                                                                                                                                                                                                in case kl_V1402htt of+                                                                                                                                                                                                                                                                                                                                                                                                                       !(kl_V1402htt@(Cons (!kl_V1402htth)+                                                                                                                                                                                                                                                                                                                                                                                                                                           (!kl_V1402httt))) -> pat_cond_349 kl_V1402htt kl_V1402htth kl_V1402httt+                                                                                                                                                                                                                                                                                                                                                                                                                       _ -> pat_cond_363+                                                                                                                                                                                                                                                                                                                                                                                                 case kl_if_348 of+                                                                                                                                                                                                                                                                                                                                                                                                     Atom (B (True)) -> do return (Atom (B True))+                                                                                                                                                                                                                                                                                                                                                                                                     Atom (B (False)) -> do do return (Atom (B False))+                                                                                                                                                                                                                                                                                                                                                                                                     _ -> throwError "if: expected boolean"+                                                                                                                                                                                                                                                                                                                                            pat_cond_364 = do do return (Atom (B False))+                                                                                                                                                                                                                                                                                                                                         in case kl_V1402ht of+                                                                                                                                                                                                                                                                                                                                                !(kl_V1402ht@(Cons (!kl_V1402hth)+                                                                                                                                                                                                                                                                                                                                                                   (!kl_V1402htt))) -> pat_cond_347 kl_V1402ht kl_V1402hth kl_V1402htt+                                                                                                                                                                                                                                                                                                                                                _ -> pat_cond_364+                                                                                                                                                                                                                                                                                                                          case kl_if_346 of+                                                                                                                                                                                                                                                                                                                              Atom (B (True)) -> do return (Atom (B True))+                                                                                                                                                                                                                                                                                                                              Atom (B (False)) -> do do return (Atom (B False))+                                                                                                                                                                                                                                                                                                                              _ -> throwError "if: expected boolean"+                                                                                                                                                                                                                                                                                                        pat_cond_365 = do do return (Atom (B False))+                                                                                                                                                                                                                                                                                                     in case kl_V1402hh of+                                                                                                                                                                                                                                                                                                            kl_V1402hh@(Atom (UnboundSym "/.")) -> pat_cond_345+                                                                                                                                                                                                                                                                                                            kl_V1402hh@(ApplC (PL "/."+                                                                                                                                                                                                                                                                                                                                  _)) -> pat_cond_345+                                                                                                                                                                                                                                                                                                            kl_V1402hh@(ApplC (Func "/."+                                                                                                                                                                                                                                                                                                                                    _)) -> pat_cond_345+                                                                                                                                                                                                                                                                                                            _ -> pat_cond_365+                                                                                                                                                                                                                                                                                      case kl_if_344 of+                                                                                                                                                                                                                                                                                          Atom (B (True)) -> do return (Atom (B True))+                                                                                                                                                                                                                                                                                          Atom (B (False)) -> do do return (Atom (B False))+                                                                                                                                                                                                                                                                                          _ -> throwError "if: expected boolean"+                                                                                                                                                                                                                                    pat_cond_366 = do do return (Atom (B False))+                                                                                                                                                                                                                                 in case kl_V1402h of+                                                                                                                                                                                                                                        !(kl_V1402h@(Cons (!kl_V1402hh)+                                                                                                                                                                                                                                                          (!kl_V1402ht))) -> pat_cond_343 kl_V1402h kl_V1402hh kl_V1402ht+                                                                                                                                                                                                                                        _ -> pat_cond_366+                                                                                                                                                                                                                  case kl_if_342 of+                                                                                                                                                                                                                      Atom (B (True)) -> do return (Atom (B True))+                                                                                                                                                                                                                      Atom (B (False)) -> do do return (Atom (B False))+                                                                                                                                                                                                                      _ -> throwError "if: expected boolean"+                                                                                                                                                                   pat_cond_367 = do do return (Atom (B False))+                                                                                                                                                                in case kl_V1402 of+                                                                                                                                                                       !(kl_V1402@(Cons (!kl_V1402h)+                                                                                                                                                                                        (!kl_V1402t))) -> pat_cond_341 kl_V1402 kl_V1402h kl_V1402t+                                                                                                                                                                       _ -> pat_cond_367+                                                                                                                                                 case kl_if_340 of+                                                                                                                                                     Atom (B (True)) -> do !appl_368 <- kl_V1402 `pseq` hd kl_V1402+                                                                                                                                                                           !appl_369 <- appl_368 `pseq` tl appl_368+                                                                                                                                                                           !appl_370 <- appl_369 `pseq` hd appl_369+                                                                                                                                                                           !appl_371 <- kl_V1402 `pseq` tl kl_V1402+                                                                                                                                                                           !appl_372 <- appl_370 `pseq` (appl_371 `pseq` klCons appl_370 appl_371)+                                                                                                                                                                           !appl_373 <- appl_372 `pseq` klCons (ApplC (wrapNamed "=" eq)) appl_372+                                                                                                                                                                           !appl_374 <- appl_373 `pseq` kl_shen_add_test appl_373+                                                                                                                                                                           !appl_375 <- kl_V1402 `pseq` hd kl_V1402+                                                                                                                                                                           !appl_376 <- appl_375 `pseq` tl appl_375+                                                                                                                                                                           !appl_377 <- appl_376 `pseq` tl appl_376+                                                                                                                                                                           !appl_378 <- appl_377 `pseq` hd appl_377+                                                                                                                                                                           !appl_379 <- appl_378 `pseq` kl_shen_reduce_help appl_378+                                                                                                                                                                           let !aw_380 = Core.Types.Atom (Core.Types.UnboundSym "do")+                                                                                                                                                                           appl_374 `pseq` (appl_379 `pseq` applyWrapper aw_380 [appl_374,+                                                                                                                                                                                                                                 appl_379])+                                                                                                                                                     Atom (B (False)) -> do !kl_if_381 <- let pat_cond_382 kl_V1402 kl_V1402h kl_V1402t = do !kl_if_383 <- let pat_cond_384 kl_V1402h kl_V1402hh kl_V1402ht = do !kl_if_385 <- let pat_cond_386 = do !kl_if_387 <- let pat_cond_388 kl_V1402ht kl_V1402hth kl_V1402htt = do !kl_if_389 <- let pat_cond_390 kl_V1402htt kl_V1402htth kl_V1402httt = do let !appl_391 = Atom Nil+                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                      !kl_if_392 <- appl_391 `pseq` (kl_V1402httt `pseq` eq appl_391 kl_V1402httt)+                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                      !kl_if_393 <- case kl_if_392 of+                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                        Atom (B (True)) -> do !kl_if_394 <- let pat_cond_395 kl_V1402t kl_V1402th kl_V1402tt = do let !appl_396 = Atom Nil+                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                  !kl_if_397 <- appl_396 `pseq` (kl_V1402tt `pseq` eq appl_396 kl_V1402tt)+                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                  case kl_if_397 of+                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                      Atom (B (True)) -> do return (Atom (B True))+                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                      Atom (B (False)) -> do do return (Atom (B False))+                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                      _ -> throwError "if: expected boolean"+                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                pat_cond_398 = do do return (Atom (B False))+                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                             in case kl_V1402t of+                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                    !(kl_V1402t@(Cons (!kl_V1402th)+                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                      (!kl_V1402tt))) -> pat_cond_395 kl_V1402t kl_V1402th kl_V1402tt+                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                    _ -> pat_cond_398+                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                              case kl_if_394 of+                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                  Atom (B (True)) -> do return (Atom (B True))+                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                  Atom (B (False)) -> do do return (Atom (B False))+                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                  _ -> throwError "if: expected boolean"+                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                        Atom (B (False)) -> do do return (Atom (B False))+                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                        _ -> throwError "if: expected boolean"+                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                      case kl_if_393 of+                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                          Atom (B (True)) -> do return (Atom (B True))+                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                          Atom (B (False)) -> do do return (Atom (B False))+                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                          _ -> throwError "if: expected boolean"+                                                                                                                                                                                                                                                                                                                                                                                                                                              pat_cond_399 = do do return (Atom (B False))+                                                                                                                                                                                                                                                                                                                                                                                                                                           in case kl_V1402htt of+                                                                                                                                                                                                                                                                                                                                                                                                                                                  !(kl_V1402htt@(Cons (!kl_V1402htth)+                                                                                                                                                                                                                                                                                                                                                                                                                                                                      (!kl_V1402httt))) -> pat_cond_390 kl_V1402htt kl_V1402htth kl_V1402httt+                                                                                                                                                                                                                                                                                                                                                                                                                                                  _ -> pat_cond_399+                                                                                                                                                                                                                                                                                                                                                                                                                            case kl_if_389 of+                                                                                                                                                                                                                                                                                                                                                                                                                                Atom (B (True)) -> do return (Atom (B True))+                                                                                                                                                                                                                                                                                                                                                                                                                                Atom (B (False)) -> do do return (Atom (B False))+                                                                                                                                                                                                                                                                                                                                                                                                                                _ -> throwError "if: expected boolean"+                                                                                                                                                                                                                                                                                                                                                                       pat_cond_400 = do do return (Atom (B False))+                                                                                                                                                                                                                                                                                                                                                                    in case kl_V1402ht of+                                                                                                                                                                                                                                                                                                                                                                           !(kl_V1402ht@(Cons (!kl_V1402hth)+                                                                                                                                                                                                                                                                                                                                                                                              (!kl_V1402htt))) -> pat_cond_388 kl_V1402ht kl_V1402hth kl_V1402htt+                                                                                                                                                                                                                                                                                                                                                                           _ -> pat_cond_400+                                                                                                                                                                                                                                                                                                                                                     case kl_if_387 of+                                                                                                                                                                                                                                                                                                                                                         Atom (B (True)) -> do return (Atom (B True))+                                                                                                                                                                                                                                                                                                                                                         Atom (B (False)) -> do do return (Atom (B False))+                                                                                                                                                                                                                                                                                                                                                         _ -> throwError "if: expected boolean"+                                                                                                                                                                                                                                                                                                                                   pat_cond_401 = do do return (Atom (B False))+                                                                                                                                                                                                                                                                                                                                in case kl_V1402hh of+                                                                                                                                                                                                                                                                                                                                       kl_V1402hh@(Atom (UnboundSym "/.")) -> pat_cond_386+                                                                                                                                                                                                                                                                                                                                       kl_V1402hh@(ApplC (PL "/."+                                                                                                                                                                                                                                                                                                                                                             _)) -> pat_cond_386+                                                                                                                                                                                                                                                                                                                                       kl_V1402hh@(ApplC (Func "/."+                                                                                                                                                                                                                                                                                                                                                               _)) -> pat_cond_386+                                                                                                                                                                                                                                                                                                                                       _ -> pat_cond_401+                                                                                                                                                                                                                                                                                                                 case kl_if_385 of+                                                                                                                                                                                                                                                                                                                     Atom (B (True)) -> do return (Atom (B True))+                                                                                                                                                                                                                                                                                                                     Atom (B (False)) -> do do return (Atom (B False))+                                                                                                                                                                                                                                                                                                                     _ -> throwError "if: expected boolean"+                                                                                                                                                                                                                                                               pat_cond_402 = do do return (Atom (B False))+                                                                                                                                                                                                                                                            in case kl_V1402h of+                                                                                                                                                                                                                                                                   !(kl_V1402h@(Cons (!kl_V1402hh)+                                                                                                                                                                                                                                                                                     (!kl_V1402ht))) -> pat_cond_384 kl_V1402h kl_V1402hh kl_V1402ht+                                                                                                                                                                                                                                                                   _ -> pat_cond_402+                                                                                                                                                                                                                                             case kl_if_383 of+                                                                                                                                                                                                                                                 Atom (B (True)) -> do return (Atom (B True))+                                                                                                                                                                                                                                                 Atom (B (False)) -> do do return (Atom (B False))+                                                                                                                                                                                                                                                 _ -> throwError "if: expected boolean"+                                                                                                                                                                                              pat_cond_403 = do do return (Atom (B False))+                                                                                                                                                                                           in case kl_V1402 of+                                                                                                                                                                                                  !(kl_V1402@(Cons (!kl_V1402h)+                                                                                                                                                                                                                   (!kl_V1402t))) -> pat_cond_382 kl_V1402 kl_V1402h kl_V1402t+                                                                                                                                                                                                  _ -> pat_cond_403+                                                                                                                                                                            case kl_if_381 of+                                                                                                                                                                                Atom (B (True)) -> do !appl_404 <- kl_V1402 `pseq` tl kl_V1402+                                                                                                                                                                                                      !appl_405 <- appl_404 `pseq` hd appl_404+                                                                                                                                                                                                      !appl_406 <- kl_V1402 `pseq` hd kl_V1402+                                                                                                                                                                                                      !appl_407 <- appl_406 `pseq` tl appl_406+                                                                                                                                                                                                      !appl_408 <- appl_407 `pseq` hd appl_407+                                                                                                                                                                                                      !appl_409 <- kl_V1402 `pseq` hd kl_V1402+                                                                                                                                                                                                      !appl_410 <- appl_409 `pseq` tl appl_409+                                                                                                                                                                                                      !appl_411 <- appl_410 `pseq` tl appl_410+                                                                                                                                                                                                      !appl_412 <- appl_411 `pseq` hd appl_411+                                                                                                                                                                                                      !appl_413 <- appl_405 `pseq` (appl_408 `pseq` (appl_412 `pseq` kl_shen_ebr appl_405 appl_408 appl_412))+                                                                                                                                                                                                      appl_413 `pseq` kl_shen_reduce_help appl_413+                                                                                                                                                                                Atom (B (False)) -> do !kl_if_414 <- let pat_cond_415 kl_V1402 kl_V1402h kl_V1402t = do !kl_if_416 <- let pat_cond_417 = do !kl_if_418 <- let pat_cond_419 kl_V1402t kl_V1402th kl_V1402tt = do !kl_if_420 <- let pat_cond_421 kl_V1402tt kl_V1402tth kl_V1402ttt = do let !appl_422 = Atom Nil+                                                                                                                                                                                                                                                                                                                                                                                                                                                       !kl_if_423 <- appl_422 `pseq` (kl_V1402ttt `pseq` eq appl_422 kl_V1402ttt)+                                                                                                                                                                                                                                                                                                                                                                                                                                                       case kl_if_423 of+                                                                                                                                                                                                                                                                                                                                                                                                                                                           Atom (B (True)) -> do return (Atom (B True))+                                                                                                                                                                                                                                                                                                                                                                                                                                                           Atom (B (False)) -> do do return (Atom (B False))+                                                                                                                                                                                                                                                                                                                                                                                                                                                           _ -> throwError "if: expected boolean"+                                                                                                                                                                                                                                                                                                                                                                                                  pat_cond_424 = do do return (Atom (B False))+                                                                                                                                                                                                                                                                                                                                                                                               in case kl_V1402tt of+                                                                                                                                                                                                                                                                                                                                                                                                      !(kl_V1402tt@(Cons (!kl_V1402tth)+                                                                                                                                                                                                                                                                                                                                                                                                                         (!kl_V1402ttt))) -> pat_cond_421 kl_V1402tt kl_V1402tth kl_V1402ttt+                                                                                                                                                                                                                                                                                                                                                                                                      _ -> pat_cond_424+                                                                                                                                                                                                                                                                                                                                                                                case kl_if_420 of+                                                                                                                                                                                                                                                                                                                                                                                    Atom (B (True)) -> do return (Atom (B True))+                                                                                                                                                                                                                                                                                                                                                                                    Atom (B (False)) -> do do return (Atom (B False))+                                                                                                                                                                                                                                                                                                                                                                                    _ -> throwError "if: expected boolean"+                                                                                                                                                                                                                                                                                                                              pat_cond_425 = do do return (Atom (B False))+                                                                                                                                                                                                                                                                                                                           in case kl_V1402t of+                                                                                                                                                                                                                                                                                                                                  !(kl_V1402t@(Cons (!kl_V1402th)+                                                                                                                                                                                                                                                                                                                                                    (!kl_V1402tt))) -> pat_cond_419 kl_V1402t kl_V1402th kl_V1402tt+                                                                                                                                                                                                                                                                                                                                  _ -> pat_cond_425+                                                                                                                                                                                                                                                                                                            case kl_if_418 of+                                                                                                                                                                                                                                                                                                                Atom (B (True)) -> do return (Atom (B True))+                                                                                                                                                                                                                                                                                                                Atom (B (False)) -> do do return (Atom (B False))+                                                                                                                                                                                                                                                                                                                _ -> throwError "if: expected boolean"+                                                                                                                                                                                                                                                                                          pat_cond_426 = do do return (Atom (B False))+                                                                                                                                                                                                                                                                                       in case kl_V1402h of+                                                                                                                                                                                                                                                                                              kl_V1402h@(Atom (UnboundSym "where")) -> pat_cond_417+                                                                                                                                                                                                                                                                                              kl_V1402h@(ApplC (PL "where"+                                                                                                                                                                                                                                                                                                                   _)) -> pat_cond_417+                                                                                                                                                                                                                                                                                              kl_V1402h@(ApplC (Func "where"+                                                                                                                                                                                                                                                                                                                     _)) -> pat_cond_417+                                                                                                                                                                                                                                                                                              _ -> pat_cond_426+                                                                                                                                                                                                                                                                        case kl_if_416 of+                                                                                                                                                                                                                                                                            Atom (B (True)) -> do return (Atom (B True))+                                                                                                                                                                                                                                                                            Atom (B (False)) -> do do return (Atom (B False))+                                                                                                                                                                                                                                                                            _ -> throwError "if: expected boolean"+                                                                                                                                                                                                                         pat_cond_427 = do do return (Atom (B False))+                                                                                                                                                                                                                      in case kl_V1402 of+                                                                                                                                                                                                                             !(kl_V1402@(Cons (!kl_V1402h)+                                                                                                                                                                                                                                              (!kl_V1402t))) -> pat_cond_415 kl_V1402 kl_V1402h kl_V1402t+                                                                                                                                                                                                                             _ -> pat_cond_427+                                                                                                                                                                                                       case kl_if_414 of+                                                                                                                                                                                                           Atom (B (True)) -> do !appl_428 <- kl_V1402 `pseq` tl kl_V1402+                                                                                                                                                                                                                                 !appl_429 <- appl_428 `pseq` hd appl_428+                                                                                                                                                                                                                                 !appl_430 <- appl_429 `pseq` kl_shen_add_test appl_429+                                                                                                                                                                                                                                 !appl_431 <- kl_V1402 `pseq` tl kl_V1402+                                                                                                                                                                                                                                 !appl_432 <- appl_431 `pseq` tl appl_431+                                                                                                                                                                                                                                 !appl_433 <- appl_432 `pseq` hd appl_432+                                                                                                                                                                                                                                 !appl_434 <- appl_433 `pseq` kl_shen_reduce_help appl_433+                                                                                                                                                                                                                                 let !aw_435 = Core.Types.Atom (Core.Types.UnboundSym "do")+                                                                                                                                                                                                                                 appl_430 `pseq` (appl_434 `pseq` applyWrapper aw_435 [appl_430,+                                                                                                                                                                                                                                                                                       appl_434])+                                                                                                                                                                                                           Atom (B (False)) -> do !kl_if_436 <- let pat_cond_437 kl_V1402 kl_V1402h kl_V1402t = do !kl_if_438 <- let pat_cond_439 kl_V1402t kl_V1402th kl_V1402tt = do let !appl_440 = Atom Nil+                                                                                                                                                                                                                                                                                                                                                                       !kl_if_441 <- appl_440 `pseq` (kl_V1402tt `pseq` eq appl_440 kl_V1402tt)+                                                                                                                                                                                                                                                                                                                                                                       case kl_if_441 of+                                                                                                                                                                                                                                                                                                                                                                           Atom (B (True)) -> do return (Atom (B True))+                                                                                                                                                                                                                                                                                                                                                                           Atom (B (False)) -> do do return (Atom (B False))+                                                                                                                                                                                                                                                                                                                                                                           _ -> throwError "if: expected boolean"+                                                                                                                                                                                                                                                                                                                     pat_cond_442 = do do return (Atom (B False))+                                                                                                                                                                                                                                                                                                                  in case kl_V1402t of+                                                                                                                                                                                                                                                                                                                         !(kl_V1402t@(Cons (!kl_V1402th)+                                                                                                                                                                                                                                                                                                                                           (!kl_V1402tt))) -> pat_cond_439 kl_V1402t kl_V1402th kl_V1402tt+                                                                                                                                                                                                                                                                                                                         _ -> pat_cond_442+                                                                                                                                                                                                                                                                                                   case kl_if_438 of+                                                                                                                                                                                                                                                                                                       Atom (B (True)) -> do return (Atom (B True))+                                                                                                                                                                                                                                                                                                       Atom (B (False)) -> do do return (Atom (B False))+                                                                                                                                                                                                                                                                                                       _ -> throwError "if: expected boolean"+                                                                                                                                                                                                                                                    pat_cond_443 = do do return (Atom (B False))+                                                                                                                                                                                                                                                 in case kl_V1402 of+                                                                                                                                                                                                                                                        !(kl_V1402@(Cons (!kl_V1402h)+                                                                                                                                                                                                                                                                         (!kl_V1402t))) -> pat_cond_437 kl_V1402 kl_V1402h kl_V1402t+                                                                                                                                                                                                                                                        _ -> pat_cond_443+                                                                                                                                                                                                                                  case kl_if_436 of+                                                                                                                                                                                                                                      Atom (B (True)) -> do let !appl_444 = ApplC (Func "lambda" (Context (\(!kl_Z) -> do !appl_445 <- kl_V1402 `pseq` hd kl_V1402+                                                                                                                                                                                                                                                                                                                          !kl_if_446 <- appl_445 `pseq` (kl_Z `pseq` eq appl_445 kl_Z)+                                                                                                                                                                                                                                                                                                                          case kl_if_446 of+                                                                                                                                                                                                                                                                                                                              Atom (B (True)) -> do return kl_V1402+                                                                                                                                                                                                                                                                                                                              Atom (B (False)) -> do do !appl_447 <- kl_V1402 `pseq` tl kl_V1402+                                                                                                                                                                                                                                                                                                                                                        !appl_448 <- kl_Z `pseq` (appl_447 `pseq` klCons kl_Z appl_447)+                                                                                                                                                                                                                                                                                                                                                        appl_448 `pseq` kl_shen_reduce_help appl_448+                                                                                                                                                                                                                                                                                                                              _ -> throwError "if: expected boolean")))+                                                                                                                                                                                                                                                            !appl_449 <- kl_V1402 `pseq` hd kl_V1402+                                                                                                                                                                                                                                                            !appl_450 <- appl_449 `pseq` kl_shen_reduce_help appl_449+                                                                                                                                                                                                                                                            appl_450 `pseq` applyWrapper appl_444 [appl_450]+                                                                                                                                                                                                                                      Atom (B (False)) -> do do return kl_V1402+                                                                                                                                                                                                                                      _ -> throwError "if: expected boolean"+                                                                                                                                                                                                           _ -> throwError "if: expected boolean"+                                                                                                                                                                                _ -> throwError "if: expected boolean"+                                                                                                                                                     _ -> throwError "if: expected boolean"+                                                                                                                          _ -> throwError "if: expected boolean"+                                                                                               _ -> throwError "if: expected boolean"+                                                                    _ -> throwError "if: expected boolean"+                                         _ -> throwError "if: expected boolean"++kl_shen_PlusstringP :: Core.Types.KLValue ->+                       Core.Types.KLContext Core.Types.Env Core.Types.KLValue+kl_shen_PlusstringP (!kl_V1404) = do let pat_cond_0 = do return (Atom (B False))+                                         pat_cond_1 = do do kl_V1404 `pseq` stringP kl_V1404+                                      in case kl_V1404 of+                                             kl_V1404@(Atom (Str "")) -> pat_cond_0+                                             _ -> pat_cond_1++kl_shen_PlusvectorP :: Core.Types.KLValue ->+                       Core.Types.KLContext Core.Types.Env Core.Types.KLValue+kl_shen_PlusvectorP (!kl_V1406) = do !kl_if_0 <- kl_V1406 `pseq` absvectorP kl_V1406+                                     case kl_if_0 of+                                         Atom (B (True)) -> do !appl_1 <- kl_V1406 `pseq` addressFrom kl_V1406 (Core.Types.Atom (Core.Types.N (Core.Types.KI 0)))+                                                               !kl_if_2 <- appl_1 `pseq` greaterThan appl_1 (Core.Types.Atom (Core.Types.N (Core.Types.KI 0)))+                                                               case kl_if_2 of+                                                                   Atom (B (True)) -> do return (Atom (B True))+                                                                   Atom (B (False)) -> do do return (Atom (B False))+                                                                   _ -> throwError "if: expected boolean"+                                         Atom (B (False)) -> do do return (Atom (B False))+                                         _ -> throwError "if: expected boolean"++kl_shen_ebr :: Core.Types.KLValue ->+               Core.Types.KLValue ->+               Core.Types.KLValue ->+               Core.Types.KLContext Core.Types.Env Core.Types.KLValue+kl_shen_ebr (!kl_V1420) (!kl_V1421) (!kl_V1422) = do !kl_if_0 <- kl_V1422 `pseq` (kl_V1421 `pseq` eq kl_V1422 kl_V1421)+                                                     case kl_if_0 of+                                                         Atom (B (True)) -> do return kl_V1420+                                                         Atom (B (False)) -> do !kl_if_1 <- let pat_cond_2 kl_V1422 kl_V1422h kl_V1422t = do !kl_if_3 <- let pat_cond_4 = do !kl_if_5 <- let pat_cond_6 kl_V1422t kl_V1422th kl_V1422tt = do !kl_if_7 <- let pat_cond_8 kl_V1422tt kl_V1422tth kl_V1422ttt = do let !appl_9 = Atom Nil+                                                                                                                                                                                                                                                                                                                !kl_if_10 <- appl_9 `pseq` (kl_V1422ttt `pseq` eq appl_9 kl_V1422ttt)+                                                                                                                                                                                                                                                                                                                !kl_if_11 <- case kl_if_10 of+                                                                                                                                                                                                                                                                                                                                 Atom (B (True)) -> do let !aw_12 = Core.Types.Atom (Core.Types.UnboundSym "occurrences")+                                                                                                                                                                                                                                                                                                                                                       !appl_13 <- kl_V1421 `pseq` (kl_V1422th `pseq` applyWrapper aw_12 [kl_V1421,+                                                                                                                                                                                                                                                                                                                                                                                                                          kl_V1422th])+                                                                                                                                                                                                                                                                                                                                                       !kl_if_14 <- appl_13 `pseq` greaterThan appl_13 (Core.Types.Atom (Core.Types.N (Core.Types.KI 0)))+                                                                                                                                                                                                                                                                                                                                                       case kl_if_14 of+                                                                                                                                                                                                                                                                                                                                                           Atom (B (True)) -> do return (Atom (B True))+                                                                                                                                                                                                                                                                                                                                                           Atom (B (False)) -> do do return (Atom (B False))+                                                                                                                                                                                                                                                                                                                                                           _ -> throwError "if: expected boolean"+                                                                                                                                                                                                                                                                                                                                 Atom (B (False)) -> do do return (Atom (B False))+                                                                                                                                                                                                                                                                                                                                 _ -> throwError "if: expected boolean"+                                                                                                                                                                                                                                                                                                                case kl_if_11 of+                                                                                                                                                                                                                                                                                                                    Atom (B (True)) -> do return (Atom (B True))+                                                                                                                                                                                                                                                                                                                    Atom (B (False)) -> do do return (Atom (B False))+                                                                                                                                                                                                                                                                                                                    _ -> throwError "if: expected boolean"+                                                                                                                                                                                                                                                             pat_cond_15 = do do return (Atom (B False))+                                                                                                                                                                                                                                                          in case kl_V1422tt of+                                                                                                                                                                                                                                                                 !(kl_V1422tt@(Cons (!kl_V1422tth)+                                                                                                                                                                                                                                                                                    (!kl_V1422ttt))) -> pat_cond_8 kl_V1422tt kl_V1422tth kl_V1422ttt+                                                                                                                                                                                                                                                                 _ -> pat_cond_15+                                                                                                                                                                                                                                             case kl_if_7 of+                                                                                                                                                                                                                                                 Atom (B (True)) -> do return (Atom (B True))+                                                                                                                                                                                                                                                 Atom (B (False)) -> do do return (Atom (B False))+                                                                                                                                                                                                                                                 _ -> throwError "if: expected boolean"+                                                                                                                                                                                             pat_cond_16 = do do return (Atom (B False))+                                                                                                                                                                                          in case kl_V1422t of+                                                                                                                                                                                                 !(kl_V1422t@(Cons (!kl_V1422th)+                                                                                                                                                                                                                   (!kl_V1422tt))) -> pat_cond_6 kl_V1422t kl_V1422th kl_V1422tt+                                                                                                                                                                                                 _ -> pat_cond_16+                                                                                                                                                                             case kl_if_5 of+                                                                                                                                                                                 Atom (B (True)) -> do return (Atom (B True))+                                                                                                                                                                                 Atom (B (False)) -> do do return (Atom (B False))+                                                                                                                                                                                 _ -> throwError "if: expected boolean"+                                                                                                                                                             pat_cond_17 = do do return (Atom (B False))+                                                                                                                                                          in case kl_V1422h of+                                                                                                                                                                 kl_V1422h@(Atom (UnboundSym "/.")) -> pat_cond_4+                                                                                                                                                                 kl_V1422h@(ApplC (PL "/."+                                                                                                                                                                                      _)) -> pat_cond_4+                                                                                                                                                                 kl_V1422h@(ApplC (Func "/."+                                                                                                                                                                                        _)) -> pat_cond_4+                                                                                                                                                                 _ -> pat_cond_17+                                                                                                                                             case kl_if_3 of+                                                                                                                                                 Atom (B (True)) -> do return (Atom (B True))+                                                                                                                                                 Atom (B (False)) -> do do return (Atom (B False))+                                                                                                                                                 _ -> throwError "if: expected boolean"+                                                                                                pat_cond_18 = do do return (Atom (B False))+                                                                                             in case kl_V1422 of+                                                                                                    !(kl_V1422@(Cons (!kl_V1422h)+                                                                                                                     (!kl_V1422t))) -> pat_cond_2 kl_V1422 kl_V1422h kl_V1422t+                                                                                                    _ -> pat_cond_18+                                                                                case kl_if_1 of+                                                                                    Atom (B (True)) -> do return kl_V1422+                                                                                    Atom (B (False)) -> do !kl_if_19 <- let pat_cond_20 kl_V1422 kl_V1422h kl_V1422t = do !kl_if_21 <- let pat_cond_22 = do !kl_if_23 <- let pat_cond_24 kl_V1422t kl_V1422th kl_V1422tt = do !kl_if_25 <- let pat_cond_26 kl_V1422tt kl_V1422tth kl_V1422ttt = do let !appl_27 = Atom Nil+                                                                                                                                                                                                                                                                                                                                                   !kl_if_28 <- appl_27 `pseq` (kl_V1422ttt `pseq` eq appl_27 kl_V1422ttt)+                                                                                                                                                                                                                                                                                                                                                   !kl_if_29 <- case kl_if_28 of+                                                                                                                                                                                                                                                                                                                                                                    Atom (B (True)) -> do let !aw_30 = Core.Types.Atom (Core.Types.UnboundSym "occurrences")+                                                                                                                                                                                                                                                                                                                                                                                          !appl_31 <- kl_V1421 `pseq` (kl_V1422th `pseq` applyWrapper aw_30 [kl_V1421,+                                                                                                                                                                                                                                                                                                                                                                                                                                                             kl_V1422th])+                                                                                                                                                                                                                                                                                                                                                                                          !kl_if_32 <- appl_31 `pseq` greaterThan appl_31 (Core.Types.Atom (Core.Types.N (Core.Types.KI 0)))+                                                                                                                                                                                                                                                                                                                                                                                          case kl_if_32 of+                                                                                                                                                                                                                                                                                                                                                                                              Atom (B (True)) -> do return (Atom (B True))+                                                                                                                                                                                                                                                                                                                                                                                              Atom (B (False)) -> do do return (Atom (B False))+                                                                                                                                                                                                                                                                                                                                                                                              _ -> throwError "if: expected boolean"+                                                                                                                                                                                                                                                                                                                                                                    Atom (B (False)) -> do do return (Atom (B False))+                                                                                                                                                                                                                                                                                                                                                                    _ -> throwError "if: expected boolean"+                                                                                                                                                                                                                                                                                                                                                   case kl_if_29 of+                                                                                                                                                                                                                                                                                                                                                       Atom (B (True)) -> do return (Atom (B True))+                                                                                                                                                                                                                                                                                                                                                       Atom (B (False)) -> do do return (Atom (B False))+                                                                                                                                                                                                                                                                                                                                                       _ -> throwError "if: expected boolean"+                                                                                                                                                                                                                                                                                               pat_cond_33 = do do return (Atom (B False))+                                                                                                                                                                                                                                                                                            in case kl_V1422tt of+                                                                                                                                                                                                                                                                                                   !(kl_V1422tt@(Cons (!kl_V1422tth)+                                                                                                                                                                                                                                                                                                                      (!kl_V1422ttt))) -> pat_cond_26 kl_V1422tt kl_V1422tth kl_V1422ttt+                                                                                                                                                                                                                                                                                                   _ -> pat_cond_33+                                                                                                                                                                                                                                                                              case kl_if_25 of+                                                                                                                                                                                                                                                                                  Atom (B (True)) -> do return (Atom (B True))+                                                                                                                                                                                                                                                                                  Atom (B (False)) -> do do return (Atom (B False))+                                                                                                                                                                                                                                                                                  _ -> throwError "if: expected boolean"+                                                                                                                                                                                                                             pat_cond_34 = do do return (Atom (B False))+                                                                                                                                                                                                                          in case kl_V1422t of+                                                                                                                                                                                                                                 !(kl_V1422t@(Cons (!kl_V1422th)+                                                                                                                                                                                                                                                   (!kl_V1422tt))) -> pat_cond_24 kl_V1422t kl_V1422th kl_V1422tt+                                                                                                                                                                                                                                 _ -> pat_cond_34+                                                                                                                                                                                                            case kl_if_23 of+                                                                                                                                                                                                                Atom (B (True)) -> do return (Atom (B True))+                                                                                                                                                                                                                Atom (B (False)) -> do do return (Atom (B False))+                                                                                                                                                                                                                _ -> throwError "if: expected boolean"+                                                                                                                                                                                           pat_cond_35 = do do return (Atom (B False))+                                                                                                                                                                                        in case kl_V1422h of+                                                                                                                                                                                               kl_V1422h@(Atom (UnboundSym "lambda")) -> pat_cond_22+                                                                                                                                                                                               kl_V1422h@(ApplC (PL "lambda"+                                                                                                                                                                                                                    _)) -> pat_cond_22+                                                                                                                                                                                               kl_V1422h@(ApplC (Func "lambda"+                                                                                                                                                                                                                      _)) -> pat_cond_22+                                                                                                                                                                                               _ -> pat_cond_35+                                                                                                                                                                          case kl_if_21 of+                                                                                                                                                                              Atom (B (True)) -> do return (Atom (B True))+                                                                                                                                                                              Atom (B (False)) -> do do return (Atom (B False))+                                                                                                                                                                              _ -> throwError "if: expected boolean"+                                                                                                                            pat_cond_36 = do do return (Atom (B False))+                                                                                                                         in case kl_V1422 of+                                                                                                                                !(kl_V1422@(Cons (!kl_V1422h)+                                                                                                                                                 (!kl_V1422t))) -> pat_cond_20 kl_V1422 kl_V1422h kl_V1422t+                                                                                                                                _ -> pat_cond_36+                                                                                                           case kl_if_19 of+                                                                                                               Atom (B (True)) -> do return kl_V1422+                                                                                                               Atom (B (False)) -> do !kl_if_37 <- let pat_cond_38 kl_V1422 kl_V1422h kl_V1422t = do !kl_if_39 <- let pat_cond_40 = do !kl_if_41 <- let pat_cond_42 kl_V1422t kl_V1422th kl_V1422tt = do !kl_if_43 <- let pat_cond_44 kl_V1422tt kl_V1422tth kl_V1422ttt = do !kl_if_45 <- let pat_cond_46 kl_V1422ttt kl_V1422ttth kl_V1422tttt = do let !appl_47 = Atom Nil+                                                                                                                                                                                                                                                                                                                                                                                                                                                      !kl_if_48 <- appl_47 `pseq` (kl_V1422tttt `pseq` eq appl_47 kl_V1422tttt)+                                                                                                                                                                                                                                                                                                                                                                                                                                                      !kl_if_49 <- case kl_if_48 of+                                                                                                                                                                                                                                                                                                                                                                                                                                                                       Atom (B (True)) -> do !kl_if_50 <- kl_V1422th `pseq` (kl_V1421 `pseq` eq kl_V1422th kl_V1421)+                                                                                                                                                                                                                                                                                                                                                                                                                                                                                             case kl_if_50 of+                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                 Atom (B (True)) -> do return (Atom (B True))+                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                 Atom (B (False)) -> do do return (Atom (B False))+                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                 _ -> throwError "if: expected boolean"+                                                                                                                                                                                                                                                                                                                                                                                                                                                                       Atom (B (False)) -> do do return (Atom (B False))+                                                                                                                                                                                                                                                                                                                                                                                                                                                                       _ -> throwError "if: expected boolean"+                                                                                                                                                                                                                                                                                                                                                                                                                                                      case kl_if_49 of+                                                                                                                                                                                                                                                                                                                                                                                                                                                          Atom (B (True)) -> do return (Atom (B True))+                                                                                                                                                                                                                                                                                                                                                                                                                                                          Atom (B (False)) -> do do return (Atom (B False))+                                                                                                                                                                                                                                                                                                                                                                                                                                                          _ -> throwError "if: expected boolean"+                                                                                                                                                                                                                                                                                                                                                                                               pat_cond_51 = do do return (Atom (B False))+                                                                                                                                                                                                                                                                                                                                                                                            in case kl_V1422ttt of+                                                                                                                                                                                                                                                                                                                                                                                                   !(kl_V1422ttt@(Cons (!kl_V1422ttth)+                                                                                                                                                                                                                                                                                                                                                                                                                       (!kl_V1422tttt))) -> pat_cond_46 kl_V1422ttt kl_V1422ttth kl_V1422tttt+                                                                                                                                                                                                                                                                                                                                                                                                   _ -> pat_cond_51+                                                                                                                                                                                                                                                                                                                                                                              case kl_if_45 of+                                                                                                                                                                                                                                                                                                                                                                                  Atom (B (True)) -> do return (Atom (B True))+                                                                                                                                                                                                                                                                                                                                                                                  Atom (B (False)) -> do do return (Atom (B False))+                                                                                                                                                                                                                                                                                                                                                                                  _ -> throwError "if: expected boolean"+                                                                                                                                                                                                                                                                                                                          pat_cond_52 = do do return (Atom (B False))+                                                                                                                                                                                                                                                                                                                       in case kl_V1422tt of+                                                                                                                                                                                                                                                                                                                              !(kl_V1422tt@(Cons (!kl_V1422tth)+                                                                                                                                                                                                                                                                                                                                                 (!kl_V1422ttt))) -> pat_cond_44 kl_V1422tt kl_V1422tth kl_V1422ttt+                                                                                                                                                                                                                                                                                                                              _ -> pat_cond_52+                                                                                                                                                                                                                                                                                                         case kl_if_43 of+                                                                                                                                                                                                                                                                                                             Atom (B (True)) -> do return (Atom (B True))+                                                                                                                                                                                                                                                                                                             Atom (B (False)) -> do do return (Atom (B False))+                                                                                                                                                                                                                                                                                                             _ -> throwError "if: expected boolean"+                                                                                                                                                                                                                                                        pat_cond_53 = do do return (Atom (B False))+                                                                                                                                                                                                                                                     in case kl_V1422t of+                                                                                                                                                                                                                                                            !(kl_V1422t@(Cons (!kl_V1422th)+                                                                                                                                                                                                                                                                              (!kl_V1422tt))) -> pat_cond_42 kl_V1422t kl_V1422th kl_V1422tt+                                                                                                                                                                                                                                                            _ -> pat_cond_53+                                                                                                                                                                                                                                       case kl_if_41 of+                                                                                                                                                                                                                                           Atom (B (True)) -> do return (Atom (B True))+                                                                                                                                                                                                                                           Atom (B (False)) -> do do return (Atom (B False))+                                                                                                                                                                                                                                           _ -> throwError "if: expected boolean"+                                                                                                                                                                                                                      pat_cond_54 = do do return (Atom (B False))+                                                                                                                                                                                                                   in case kl_V1422h of+                                                                                                                                                                                                                          kl_V1422h@(Atom (UnboundSym "let")) -> pat_cond_40+                                                                                                                                                                                                                          kl_V1422h@(ApplC (PL "let"+                                                                                                                                                                                                                                               _)) -> pat_cond_40+                                                                                                                                                                                                                          kl_V1422h@(ApplC (Func "let"+                                                                                                                                                                                                                                                 _)) -> pat_cond_40+                                                                                                                                                                                                                          _ -> pat_cond_54+                                                                                                                                                                                                     case kl_if_39 of+                                                                                                                                                                                                         Atom (B (True)) -> do return (Atom (B True))+                                                                                                                                                                                                         Atom (B (False)) -> do do return (Atom (B False))+                                                                                                                                                                                                         _ -> throwError "if: expected boolean"+                                                                                                                                                       pat_cond_55 = do do return (Atom (B False))+                                                                                                                                                    in case kl_V1422 of+                                                                                                                                                           !(kl_V1422@(Cons (!kl_V1422h)+                                                                                                                                                                            (!kl_V1422t))) -> pat_cond_38 kl_V1422 kl_V1422h kl_V1422t+                                                                                                                                                           _ -> pat_cond_55+                                                                                                                                      case kl_if_37 of+                                                                                                                                          Atom (B (True)) -> do !appl_56 <- kl_V1422 `pseq` tl kl_V1422+                                                                                                                                                                !appl_57 <- appl_56 `pseq` hd appl_56+                                                                                                                                                                !appl_58 <- kl_V1422 `pseq` tl kl_V1422+                                                                                                                                                                !appl_59 <- appl_58 `pseq` hd appl_58+                                                                                                                                                                !appl_60 <- kl_V1422 `pseq` tl kl_V1422+                                                                                                                                                                !appl_61 <- appl_60 `pseq` tl appl_60+                                                                                                                                                                !appl_62 <- appl_61 `pseq` hd appl_61+                                                                                                                                                                !appl_63 <- kl_V1420 `pseq` (appl_59 `pseq` (appl_62 `pseq` kl_shen_ebr kl_V1420 appl_59 appl_62))+                                                                                                                                                                !appl_64 <- kl_V1422 `pseq` tl kl_V1422+                                                                                                                                                                !appl_65 <- appl_64 `pseq` tl appl_64+                                                                                                                                                                !appl_66 <- appl_65 `pseq` tl appl_65+                                                                                                                                                                !appl_67 <- appl_63 `pseq` (appl_66 `pseq` klCons appl_63 appl_66)+                                                                                                                                                                !appl_68 <- appl_57 `pseq` (appl_67 `pseq` klCons appl_57 appl_67)+                                                                                                                                                                appl_68 `pseq` klCons (Core.Types.Atom (Core.Types.UnboundSym "let")) appl_68+                                                                                                                                          Atom (B (False)) -> do let pat_cond_69 kl_V1422 kl_V1422h kl_V1422t = do !appl_70 <- kl_V1420 `pseq` (kl_V1421 `pseq` (kl_V1422h `pseq` kl_shen_ebr kl_V1420 kl_V1421 kl_V1422h))+                                                                                                                                                                                                                   !appl_71 <- kl_V1420 `pseq` (kl_V1421 `pseq` (kl_V1422t `pseq` kl_shen_ebr kl_V1420 kl_V1421 kl_V1422t))+                                                                                                                                                                                                                   appl_70 `pseq` (appl_71 `pseq` klCons appl_70 appl_71)+                                                                                                                                                                     pat_cond_72 = do do return kl_V1422+                                                                                                                                                                  in case kl_V1422 of+                                                                                                                                                                         !(kl_V1422@(Cons (!kl_V1422h)+                                                                                                                                                                                          (!kl_V1422t))) -> pat_cond_69 kl_V1422 kl_V1422h kl_V1422t+                                                                                                                                                                         _ -> pat_cond_72+                                                                                                                                          _ -> throwError "if: expected boolean"+                                                                                                               _ -> throwError "if: expected boolean"+                                                                                    _ -> throwError "if: expected boolean"+                                                         _ -> throwError "if: expected boolean"++kl_shen_add_test :: Core.Types.KLValue ->+                    Core.Types.KLContext Core.Types.Env Core.Types.KLValue+kl_shen_add_test (!kl_V1424) = do !appl_0 <- value (Core.Types.Atom (Core.Types.UnboundSym "shen.*teststack*"))+                                  !appl_1 <- kl_V1424 `pseq` (appl_0 `pseq` klCons kl_V1424 appl_0)+                                  appl_1 `pseq` klSet (Core.Types.Atom (Core.Types.UnboundSym "shen.*teststack*")) appl_1++kl_shen_cond_expression :: Core.Types.KLValue ->+                           Core.Types.KLValue ->+                           Core.Types.KLValue ->+                           Core.Types.KLContext Core.Types.Env Core.Types.KLValue+kl_shen_cond_expression (!kl_V1428) (!kl_V1429) (!kl_V1430) = do let !appl_0 = ApplC (Func "lambda" (Context (\(!kl_Err) -> do let !appl_1 = ApplC (Func "lambda" (Context (\(!kl_Cases) -> do let !appl_2 = ApplC (Func "lambda" (Context (\(!kl_EncodeChoices) -> do kl_EncodeChoices `pseq` kl_shen_cond_form kl_EncodeChoices)))+                                                                                                                                                                                               !appl_3 <- kl_Cases `pseq` (kl_V1428 `pseq` kl_shen_encode_choices kl_Cases kl_V1428)+                                                                                                                                                                                               appl_3 `pseq` applyWrapper appl_2 [appl_3])))+                                                                                                                               !appl_4 <- kl_V1430 `pseq` (kl_Err `pseq` kl_shen_case_form kl_V1430 kl_Err)+                                                                                                                               appl_4 `pseq` applyWrapper appl_1 [appl_4])))+                                                                 !appl_5 <- kl_V1428 `pseq` kl_shen_err_condition kl_V1428+                                                                 appl_5 `pseq` applyWrapper appl_0 [appl_5]++kl_shen_cond_form :: Core.Types.KLValue ->+                     Core.Types.KLContext Core.Types.Env Core.Types.KLValue+kl_shen_cond_form (!kl_V1434) = do !kl_if_0 <- let pat_cond_1 kl_V1434 kl_V1434h kl_V1434t = do !kl_if_2 <- let pat_cond_3 kl_V1434h kl_V1434hh kl_V1434ht = do !kl_if_4 <- let pat_cond_5 = do !kl_if_6 <- let pat_cond_7 kl_V1434ht kl_V1434hth kl_V1434htt = do let !appl_8 = Atom Nil+                                                                                                                                                                                                                                                                   !kl_if_9 <- appl_8 `pseq` (kl_V1434htt `pseq` eq appl_8 kl_V1434htt)+                                                                                                                                                                                                                                                                   case kl_if_9 of+                                                                                                                                                                                                                                                                       Atom (B (True)) -> do return (Atom (B True))+                                                                                                                                                                                                                                                                       Atom (B (False)) -> do do return (Atom (B False))+                                                                                                                                                                                                                                                                       _ -> throwError "if: expected boolean"+                                                                                                                                                                                                                pat_cond_10 = do do return (Atom (B False))+                                                                                                                                                                                                             in case kl_V1434ht of+                                                                                                                                                                                                                    !(kl_V1434ht@(Cons (!kl_V1434hth)+                                                                                                                                                                                                                                       (!kl_V1434htt))) -> pat_cond_7 kl_V1434ht kl_V1434hth kl_V1434htt+                                                                                                                                                                                                                    _ -> pat_cond_10+                                                                                                                                                                                                case kl_if_6 of+                                                                                                                                                                                                    Atom (B (True)) -> do return (Atom (B True))+                                                                                                                                                                                                    Atom (B (False)) -> do do return (Atom (B False))+                                                                                                                                                                                                    _ -> throwError "if: expected boolean"+                                                                                                                                                                                pat_cond_11 = do do return (Atom (B False))+                                                                                                                                                                             in case kl_V1434hh of+                                                                                                                                                                                    kl_V1434hh@(Atom (UnboundSym "true")) -> pat_cond_5+                                                                                                                                                                                    kl_V1434hh@(Atom (B (True))) -> pat_cond_5+                                                                                                                                                                                    _ -> pat_cond_11+                                                                                                                                                                case kl_if_4 of+                                                                                                                                                                    Atom (B (True)) -> do return (Atom (B True))+                                                                                                                                                                    Atom (B (False)) -> do do return (Atom (B False))+                                                                                                                                                                    _ -> throwError "if: expected boolean"+                                                                                                                pat_cond_12 = do do return (Atom (B False))+                                                                                                             in case kl_V1434h of+                                                                                                                    !(kl_V1434h@(Cons (!kl_V1434hh)+                                                                                                                                      (!kl_V1434ht))) -> pat_cond_3 kl_V1434h kl_V1434hh kl_V1434ht+                                                                                                                    _ -> pat_cond_12+                                                                                                case kl_if_2 of+                                                                                                    Atom (B (True)) -> do return (Atom (B True))+                                                                                                    Atom (B (False)) -> do do return (Atom (B False))+                                                                                                    _ -> throwError "if: expected boolean"+                                                   pat_cond_13 = do do return (Atom (B False))+                                                in case kl_V1434 of+                                                       !(kl_V1434@(Cons (!kl_V1434h)+                                                                        (!kl_V1434t))) -> pat_cond_1 kl_V1434 kl_V1434h kl_V1434t+                                                       _ -> pat_cond_13+                                   case kl_if_0 of+                                       Atom (B (True)) -> do !appl_14 <- kl_V1434 `pseq` hd kl_V1434+                                                             !appl_15 <- appl_14 `pseq` tl appl_14+                                                             appl_15 `pseq` hd appl_15+                                       Atom (B (False)) -> do do kl_V1434 `pseq` klCons (Core.Types.Atom (Core.Types.UnboundSym "cond")) kl_V1434+                                       _ -> throwError "if: expected boolean"++kl_shen_encode_choices :: Core.Types.KLValue ->+                          Core.Types.KLValue ->+                          Core.Types.KLContext Core.Types.Env Core.Types.KLValue+kl_shen_encode_choices (!kl_V1439) (!kl_V1440) = do let !appl_0 = Atom Nil+                                                    !kl_if_1 <- appl_0 `pseq` (kl_V1439 `pseq` eq appl_0 kl_V1439)+                                                    case kl_if_1 of+                                                        Atom (B (True)) -> do return (Atom Nil)+                                                        Atom (B (False)) -> do !kl_if_2 <- let pat_cond_3 kl_V1439 kl_V1439h kl_V1439t = do !kl_if_4 <- let pat_cond_5 kl_V1439h kl_V1439hh kl_V1439ht = do !kl_if_6 <- let pat_cond_7 = do !kl_if_8 <- let pat_cond_9 kl_V1439ht kl_V1439hth kl_V1439htt = do !kl_if_10 <- let pat_cond_11 kl_V1439hth kl_V1439hthh kl_V1439htht = do !kl_if_12 <- let pat_cond_13 = do !kl_if_14 <- let pat_cond_15 kl_V1439htht kl_V1439hthth kl_V1439hthtt = do let !appl_16 = Atom Nil+                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                    !kl_if_17 <- appl_16 `pseq` (kl_V1439hthtt `pseq` eq appl_16 kl_V1439hthtt)+                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                    !kl_if_18 <- case kl_if_17 of+                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                     Atom (B (True)) -> do let !appl_19 = Atom Nil+                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                           !kl_if_20 <- appl_19 `pseq` (kl_V1439htt `pseq` eq appl_19 kl_V1439htt)+                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                           !kl_if_21 <- case kl_if_20 of+                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                            Atom (B (True)) -> do let !appl_22 = Atom Nil+                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                  !kl_if_23 <- appl_22 `pseq` (kl_V1439t `pseq` eq appl_22 kl_V1439t)+                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                  case kl_if_23 of+                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                      Atom (B (True)) -> do return (Atom (B True))+                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                      Atom (B (False)) -> do do return (Atom (B False))+                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                      _ -> throwError "if: expected boolean"+                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                            Atom (B (False)) -> do do return (Atom (B False))+                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                            _ -> throwError "if: expected boolean"+                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                           case kl_if_21 of+                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                               Atom (B (True)) -> do return (Atom (B True))+                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                               Atom (B (False)) -> do do return (Atom (B False))+                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                               _ -> throwError "if: expected boolean"+                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                     Atom (B (False)) -> do do return (Atom (B False))+                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                     _ -> throwError "if: expected boolean"+                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                    case kl_if_18 of+                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                        Atom (B (True)) -> do return (Atom (B True))+                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                        Atom (B (False)) -> do do return (Atom (B False))+                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                        _ -> throwError "if: expected boolean"+                                                                                                                                                                                                                                                                                                                                                                                                                                          pat_cond_24 = do do return (Atom (B False))+                                                                                                                                                                                                                                                                                                                                                                                                                                       in case kl_V1439htht of+                                                                                                                                                                                                                                                                                                                                                                                                                                              !(kl_V1439htht@(Cons (!kl_V1439hthth)+                                                                                                                                                                                                                                                                                                                                                                                                                                                                   (!kl_V1439hthtt))) -> pat_cond_15 kl_V1439htht kl_V1439hthth kl_V1439hthtt+                                                                                                                                                                                                                                                                                                                                                                                                                                              _ -> pat_cond_24+                                                                                                                                                                                                                                                                                                                                                                                                                         case kl_if_14 of+                                                                                                                                                                                                                                                                                                                                                                                                                             Atom (B (True)) -> do return (Atom (B True))+                                                                                                                                                                                                                                                                                                                                                                                                                             Atom (B (False)) -> do do return (Atom (B False))+                                                                                                                                                                                                                                                                                                                                                                                                                             _ -> throwError "if: expected boolean"+                                                                                                                                                                                                                                                                                                                                                                                                        pat_cond_25 = do do return (Atom (B False))+                                                                                                                                                                                                                                                                                                                                                                                                     in case kl_V1439hthh of+                                                                                                                                                                                                                                                                                                                                                                                                            kl_V1439hthh@(Atom (UnboundSym "shen.choicepoint!")) -> pat_cond_13+                                                                                                                                                                                                                                                                                                                                                                                                            kl_V1439hthh@(ApplC (PL "shen.choicepoint!"+                                                                                                                                                                                                                                                                                                                                                                                                                                    _)) -> pat_cond_13+                                                                                                                                                                                                                                                                                                                                                                                                            kl_V1439hthh@(ApplC (Func "shen.choicepoint!"+                                                                                                                                                                                                                                                                                                                                                                                                                                      _)) -> pat_cond_13+                                                                                                                                                                                                                                                                                                                                                                                                            _ -> pat_cond_25+                                                                                                                                                                                                                                                                                                                                                                                       case kl_if_12 of+                                                                                                                                                                                                                                                                                                                                                                                           Atom (B (True)) -> do return (Atom (B True))+                                                                                                                                                                                                                                                                                                                                                                                           Atom (B (False)) -> do do return (Atom (B False))+                                                                                                                                                                                                                                                                                                                                                                                           _ -> throwError "if: expected boolean"+                                                                                                                                                                                                                                                                                                                                pat_cond_26 = do do return (Atom (B False))+                                                                                                                                                                                                                                                                                                                             in case kl_V1439hth of+                                                                                                                                                                                                                                                                                                                                    !(kl_V1439hth@(Cons (!kl_V1439hthh)+                                                                                                                                                                                                                                                                                                                                                        (!kl_V1439htht))) -> pat_cond_11 kl_V1439hth kl_V1439hthh kl_V1439htht+                                                                                                                                                                                                                                                                                                                                    _ -> pat_cond_26+                                                                                                                                                                                                                                                                                                               case kl_if_10 of+                                                                                                                                                                                                                                                                                                                   Atom (B (True)) -> do return (Atom (B True))+                                                                                                                                                                                                                                                                                                                   Atom (B (False)) -> do do return (Atom (B False))+                                                                                                                                                                                                                                                                                                                   _ -> throwError "if: expected boolean"+                                                                                                                                                                                                                                                            pat_cond_27 = do do return (Atom (B False))+                                                                                                                                                                                                                                                         in case kl_V1439ht of+                                                                                                                                                                                                                                                                !(kl_V1439ht@(Cons (!kl_V1439hth)+                                                                                                                                                                                                                                                                                   (!kl_V1439htt))) -> pat_cond_9 kl_V1439ht kl_V1439hth kl_V1439htt+                                                                                                                                                                                                                                                                _ -> pat_cond_27+                                                                                                                                                                                                                                            case kl_if_8 of+                                                                                                                                                                                                                                                Atom (B (True)) -> do return (Atom (B True))+                                                                                                                                                                                                                                                Atom (B (False)) -> do do return (Atom (B False))+                                                                                                                                                                                                                                                _ -> throwError "if: expected boolean"+                                                                                                                                                                                                                            pat_cond_28 = do do return (Atom (B False))+                                                                                                                                                                                                                         in case kl_V1439hh of+                                                                                                                                                                                                                                kl_V1439hh@(Atom (UnboundSym "true")) -> pat_cond_7+                                                                                                                                                                                                                                kl_V1439hh@(Atom (B (True))) -> pat_cond_7+                                                                                                                                                                                                                                _ -> pat_cond_28+                                                                                                                                                                                                            case kl_if_6 of+                                                                                                                                                                                                                Atom (B (True)) -> do return (Atom (B True))+                                                                                                                                                                                                                Atom (B (False)) -> do do return (Atom (B False))+                                                                                                                                                                                                                _ -> throwError "if: expected boolean"+                                                                                                                                                            pat_cond_29 = do do return (Atom (B False))+                                                                                                                                                         in case kl_V1439h of+                                                                                                                                                                !(kl_V1439h@(Cons (!kl_V1439hh)+                                                                                                                                                                                  (!kl_V1439ht))) -> pat_cond_5 kl_V1439h kl_V1439hh kl_V1439ht+                                                                                                                                                                _ -> pat_cond_29+                                                                                                                                            case kl_if_4 of+                                                                                                                                                Atom (B (True)) -> do return (Atom (B True))+                                                                                                                                                Atom (B (False)) -> do do return (Atom (B False))+                                                                                                                                                _ -> throwError "if: expected boolean"+                                                                                               pat_cond_30 = do do return (Atom (B False))+                                                                                            in case kl_V1439 of+                                                                                                   !(kl_V1439@(Cons (!kl_V1439h)+                                                                                                                    (!kl_V1439t))) -> pat_cond_3 kl_V1439 kl_V1439h kl_V1439t+                                                                                                   _ -> pat_cond_30+                                                                               case kl_if_2 of+                                                                                   Atom (B (True)) -> do !appl_31 <- kl_V1439 `pseq` hd kl_V1439+                                                                                                         !appl_32 <- appl_31 `pseq` tl appl_31+                                                                                                         !appl_33 <- appl_32 `pseq` hd appl_32+                                                                                                         !appl_34 <- appl_33 `pseq` tl appl_33+                                                                                                         !appl_35 <- appl_34 `pseq` hd appl_34+                                                                                                         let !appl_36 = Atom Nil+                                                                                                         !appl_37 <- appl_36 `pseq` klCons (Core.Types.Atom (Core.Types.UnboundSym "fail")) appl_36+                                                                                                         let !appl_38 = Atom Nil+                                                                                                         !appl_39 <- appl_37 `pseq` (appl_38 `pseq` klCons appl_37 appl_38)+                                                                                                         !appl_40 <- appl_39 `pseq` klCons (Core.Types.Atom (Core.Types.UnboundSym "Result")) appl_39+                                                                                                         !appl_41 <- appl_40 `pseq` klCons (ApplC (wrapNamed "=" eq)) appl_40+                                                                                                         !kl_if_42 <- value (Core.Types.Atom (Core.Types.UnboundSym "shen.*installing-kl*"))+                                                                                                         !appl_43 <- case kl_if_42 of+                                                                                                                         Atom (B (True)) -> do let !appl_44 = Atom Nil+                                                                                                                                               !appl_45 <- kl_V1440 `pseq` (appl_44 `pseq` klCons kl_V1440 appl_44)+                                                                                                                                               appl_45 `pseq` klCons (ApplC (wrapNamed "shen.sys-error" kl_shen_sys_error)) appl_45+                                                                                                                         Atom (B (False)) -> do do let !appl_46 = Atom Nil+                                                                                                                                                   !appl_47 <- kl_V1440 `pseq` (appl_46 `pseq` klCons kl_V1440 appl_46)+                                                                                                                                                   appl_47 `pseq` klCons (Core.Types.Atom (Core.Types.UnboundSym "shen.f_error")) appl_47+                                                                                                                         _ -> throwError "if: expected boolean"+                                                                                                         let !appl_48 = Atom Nil+                                                                                                         !appl_49 <- appl_48 `pseq` klCons (Core.Types.Atom (Core.Types.UnboundSym "Result")) appl_48+                                                                                                         !appl_50 <- appl_43 `pseq` (appl_49 `pseq` klCons appl_43 appl_49)+                                                                                                         !appl_51 <- appl_41 `pseq` (appl_50 `pseq` klCons appl_41 appl_50)+                                                                                                         !appl_52 <- appl_51 `pseq` klCons (Core.Types.Atom (Core.Types.UnboundSym "if")) appl_51+                                                                                                         let !appl_53 = Atom Nil+                                                                                                         !appl_54 <- appl_52 `pseq` (appl_53 `pseq` klCons appl_52 appl_53)+                                                                                                         !appl_55 <- appl_35 `pseq` (appl_54 `pseq` klCons appl_35 appl_54)+                                                                                                         !appl_56 <- appl_55 `pseq` klCons (Core.Types.Atom (Core.Types.UnboundSym "Result")) appl_55+                                                                                                         !appl_57 <- appl_56 `pseq` klCons (Core.Types.Atom (Core.Types.UnboundSym "let")) appl_56+                                                                                                         let !appl_58 = Atom Nil+                                                                                                         !appl_59 <- appl_57 `pseq` (appl_58 `pseq` klCons appl_57 appl_58)+                                                                                                         !appl_60 <- appl_59 `pseq` klCons (Atom (B True)) appl_59+                                                                                                         let !appl_61 = Atom Nil+                                                                                                         appl_60 `pseq` (appl_61 `pseq` klCons appl_60 appl_61)+                                                                                   Atom (B (False)) -> do !kl_if_62 <- let pat_cond_63 kl_V1439 kl_V1439h kl_V1439t = do !kl_if_64 <- let pat_cond_65 kl_V1439h kl_V1439hh kl_V1439ht = do !kl_if_66 <- let pat_cond_67 = do !kl_if_68 <- let pat_cond_69 kl_V1439ht kl_V1439hth kl_V1439htt = do !kl_if_70 <- let pat_cond_71 kl_V1439hth kl_V1439hthh kl_V1439htht = do !kl_if_72 <- let pat_cond_73 = do !kl_if_74 <- let pat_cond_75 kl_V1439htht kl_V1439hthth kl_V1439hthtt = do let !appl_76 = Atom Nil+                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                       !kl_if_77 <- appl_76 `pseq` (kl_V1439hthtt `pseq` eq appl_76 kl_V1439hthtt)+                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                       !kl_if_78 <- case kl_if_77 of+                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                        Atom (B (True)) -> do let !appl_79 = Atom Nil+                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                              !kl_if_80 <- appl_79 `pseq` (kl_V1439htt `pseq` eq appl_79 kl_V1439htt)+                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                              case kl_if_80 of+                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                  Atom (B (True)) -> do return (Atom (B True))+                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                  Atom (B (False)) -> do do return (Atom (B False))+                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                  _ -> throwError "if: expected boolean"+                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                        Atom (B (False)) -> do do return (Atom (B False))+                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                        _ -> throwError "if: expected boolean"+                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                       case kl_if_78 of+                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                           Atom (B (True)) -> do return (Atom (B True))+                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                           Atom (B (False)) -> do do return (Atom (B False))+                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                           _ -> throwError "if: expected boolean"+                                                                                                                                                                                                                                                                                                                                                                                                                                                                             pat_cond_81 = do do return (Atom (B False))+                                                                                                                                                                                                                                                                                                                                                                                                                                                                          in case kl_V1439htht of+                                                                                                                                                                                                                                                                                                                                                                                                                                                                                 !(kl_V1439htht@(Cons (!kl_V1439hthth)+                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                      (!kl_V1439hthtt))) -> pat_cond_75 kl_V1439htht kl_V1439hthth kl_V1439hthtt+                                                                                                                                                                                                                                                                                                                                                                                                                                                                                 _ -> pat_cond_81+                                                                                                                                                                                                                                                                                                                                                                                                                                                            case kl_if_74 of+                                                                                                                                                                                                                                                                                                                                                                                                                                                                Atom (B (True)) -> do return (Atom (B True))+                                                                                                                                                                                                                                                                                                                                                                                                                                                                Atom (B (False)) -> do do return (Atom (B False))+                                                                                                                                                                                                                                                                                                                                                                                                                                                                _ -> throwError "if: expected boolean"+                                                                                                                                                                                                                                                                                                                                                                                                                                           pat_cond_82 = do do return (Atom (B False))+                                                                                                                                                                                                                                                                                                                                                                                                                                        in case kl_V1439hthh of+                                                                                                                                                                                                                                                                                                                                                                                                                                               kl_V1439hthh@(Atom (UnboundSym "shen.choicepoint!")) -> pat_cond_73+                                                                                                                                                                                                                                                                                                                                                                                                                                               kl_V1439hthh@(ApplC (PL "shen.choicepoint!"+                                                                                                                                                                                                                                                                                                                                                                                                                                                                       _)) -> pat_cond_73+                                                                                                                                                                                                                                                                                                                                                                                                                                               kl_V1439hthh@(ApplC (Func "shen.choicepoint!"+                                                                                                                                                                                                                                                                                                                                                                                                                                                                         _)) -> pat_cond_73+                                                                                                                                                                                                                                                                                                                                                                                                                                               _ -> pat_cond_82+                                                                                                                                                                                                                                                                                                                                                                                                                          case kl_if_72 of+                                                                                                                                                                                                                                                                                                                                                                                                                              Atom (B (True)) -> do return (Atom (B True))+                                                                                                                                                                                                                                                                                                                                                                                                                              Atom (B (False)) -> do do return (Atom (B False))+                                                                                                                                                                                                                                                                                                                                                                                                                              _ -> throwError "if: expected boolean"+                                                                                                                                                                                                                                                                                                                                                                   pat_cond_83 = do do return (Atom (B False))+                                                                                                                                                                                                                                                                                                                                                                in case kl_V1439hth of+                                                                                                                                                                                                                                                                                                                                                                       !(kl_V1439hth@(Cons (!kl_V1439hthh)+                                                                                                                                                                                                                                                                                                                                                                                           (!kl_V1439htht))) -> pat_cond_71 kl_V1439hth kl_V1439hthh kl_V1439htht+                                                                                                                                                                                                                                                                                                                                                                       _ -> pat_cond_83+                                                                                                                                                                                                                                                                                                                                                  case kl_if_70 of+                                                                                                                                                                                                                                                                                                                                                      Atom (B (True)) -> do return (Atom (B True))+                                                                                                                                                                                                                                                                                                                                                      Atom (B (False)) -> do do return (Atom (B False))+                                                                                                                                                                                                                                                                                                                                                      _ -> throwError "if: expected boolean"+                                                                                                                                                                                                                                                                                              pat_cond_84 = do do return (Atom (B False))+                                                                                                                                                                                                                                                                                           in case kl_V1439ht of+                                                                                                                                                                                                                                                                                                  !(kl_V1439ht@(Cons (!kl_V1439hth)+                                                                                                                                                                                                                                                                                                                     (!kl_V1439htt))) -> pat_cond_69 kl_V1439ht kl_V1439hth kl_V1439htt+                                                                                                                                                                                                                                                                                                  _ -> pat_cond_84+                                                                                                                                                                                                                                                                             case kl_if_68 of+                                                                                                                                                                                                                                                                                 Atom (B (True)) -> do return (Atom (B True))+                                                                                                                                                                                                                                                                                 Atom (B (False)) -> do do return (Atom (B False))+                                                                                                                                                                                                                                                                                 _ -> throwError "if: expected boolean"+                                                                                                                                                                                                                                                            pat_cond_85 = do do return (Atom (B False))+                                                                                                                                                                                                                                                         in case kl_V1439hh of+                                                                                                                                                                                                                                                                kl_V1439hh@(Atom (UnboundSym "true")) -> pat_cond_67+                                                                                                                                                                                                                                                                kl_V1439hh@(Atom (B (True))) -> pat_cond_67+                                                                                                                                                                                                                                                                _ -> pat_cond_85+                                                                                                                                                                                                                                           case kl_if_66 of+                                                                                                                                                                                                                                               Atom (B (True)) -> do return (Atom (B True))+                                                                                                                                                                                                                                               Atom (B (False)) -> do do return (Atom (B False))+                                                                                                                                                                                                                                               _ -> throwError "if: expected boolean"+                                                                                                                                                                                          pat_cond_86 = do do return (Atom (B False))+                                                                                                                                                                                       in case kl_V1439h of+                                                                                                                                                                                              !(kl_V1439h@(Cons (!kl_V1439hh)+                                                                                                                                                                                                                (!kl_V1439ht))) -> pat_cond_65 kl_V1439h kl_V1439hh kl_V1439ht+                                                                                                                                                                                              _ -> pat_cond_86+                                                                                                                                                                         case kl_if_64 of+                                                                                                                                                                             Atom (B (True)) -> do return (Atom (B True))+                                                                                                                                                                             Atom (B (False)) -> do do return (Atom (B False))+                                                                                                                                                                             _ -> throwError "if: expected boolean"+                                                                                                                           pat_cond_87 = do do return (Atom (B False))+                                                                                                                        in case kl_V1439 of+                                                                                                                               !(kl_V1439@(Cons (!kl_V1439h)+                                                                                                                                                (!kl_V1439t))) -> pat_cond_63 kl_V1439 kl_V1439h kl_V1439t+                                                                                                                               _ -> pat_cond_87+                                                                                                          case kl_if_62 of+                                                                                                              Atom (B (True)) -> do !appl_88 <- kl_V1439 `pseq` hd kl_V1439+                                                                                                                                    !appl_89 <- appl_88 `pseq` tl appl_88+                                                                                                                                    !appl_90 <- appl_89 `pseq` hd appl_89+                                                                                                                                    !appl_91 <- appl_90 `pseq` tl appl_90+                                                                                                                                    !appl_92 <- appl_91 `pseq` hd appl_91+                                                                                                                                    let !appl_93 = Atom Nil+                                                                                                                                    !appl_94 <- appl_93 `pseq` klCons (Core.Types.Atom (Core.Types.UnboundSym "fail")) appl_93+                                                                                                                                    let !appl_95 = Atom Nil+                                                                                                                                    !appl_96 <- appl_94 `pseq` (appl_95 `pseq` klCons appl_94 appl_95)+                                                                                                                                    !appl_97 <- appl_96 `pseq` klCons (Core.Types.Atom (Core.Types.UnboundSym "Result")) appl_96+                                                                                                                                    !appl_98 <- appl_97 `pseq` klCons (ApplC (wrapNamed "=" eq)) appl_97+                                                                                                                                    !appl_99 <- kl_V1439 `pseq` tl kl_V1439+                                                                                                                                    !appl_100 <- appl_99 `pseq` (kl_V1440 `pseq` kl_shen_encode_choices appl_99 kl_V1440)+                                                                                                                                    !appl_101 <- appl_100 `pseq` kl_shen_cond_form appl_100+                                                                                                                                    let !appl_102 = Atom Nil+                                                                                                                                    !appl_103 <- appl_102 `pseq` klCons (Core.Types.Atom (Core.Types.UnboundSym "Result")) appl_102+                                                                                                                                    !appl_104 <- appl_101 `pseq` (appl_103 `pseq` klCons appl_101 appl_103)+                                                                                                                                    !appl_105 <- appl_98 `pseq` (appl_104 `pseq` klCons appl_98 appl_104)+                                                                                                                                    !appl_106 <- appl_105 `pseq` klCons (Core.Types.Atom (Core.Types.UnboundSym "if")) appl_105+                                                                                                                                    let !appl_107 = Atom Nil+                                                                                                                                    !appl_108 <- appl_106 `pseq` (appl_107 `pseq` klCons appl_106 appl_107)+                                                                                                                                    !appl_109 <- appl_92 `pseq` (appl_108 `pseq` klCons appl_92 appl_108)+                                                                                                                                    !appl_110 <- appl_109 `pseq` klCons (Core.Types.Atom (Core.Types.UnboundSym "Result")) appl_109+                                                                                                                                    !appl_111 <- appl_110 `pseq` klCons (Core.Types.Atom (Core.Types.UnboundSym "let")) appl_110+                                                                                                                                    let !appl_112 = Atom Nil+                                                                                                                                    !appl_113 <- appl_111 `pseq` (appl_112 `pseq` klCons appl_111 appl_112)+                                                                                                                                    !appl_114 <- appl_113 `pseq` klCons (Atom (B True)) appl_113+                                                                                                                                    let !appl_115 = Atom Nil+                                                                                                                                    appl_114 `pseq` (appl_115 `pseq` klCons appl_114 appl_115)+                                                                                                              Atom (B (False)) -> do !kl_if_116 <- let pat_cond_117 kl_V1439 kl_V1439h kl_V1439t = do !kl_if_118 <- let pat_cond_119 kl_V1439h kl_V1439hh kl_V1439ht = do !kl_if_120 <- let pat_cond_121 kl_V1439ht kl_V1439hth kl_V1439htt = do !kl_if_122 <- let pat_cond_123 kl_V1439hth kl_V1439hthh kl_V1439htht = do !kl_if_124 <- let pat_cond_125 = do !kl_if_126 <- let pat_cond_127 kl_V1439htht kl_V1439hthth kl_V1439hthtt = do let !appl_128 = Atom Nil+                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                            !kl_if_129 <- appl_128 `pseq` (kl_V1439hthtt `pseq` eq appl_128 kl_V1439hthtt)+                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                            !kl_if_130 <- case kl_if_129 of+                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                              Atom (B (True)) -> do let !appl_131 = Atom Nil+                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                    !kl_if_132 <- appl_131 `pseq` (kl_V1439htt `pseq` eq appl_131 kl_V1439htt)+                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                    case kl_if_132 of+                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                        Atom (B (True)) -> do return (Atom (B True))+                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                        Atom (B (False)) -> do do return (Atom (B False))+                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                        _ -> throwError "if: expected boolean"+                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                              Atom (B (False)) -> do do return (Atom (B False))+                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                              _ -> throwError "if: expected boolean"+                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                            case kl_if_130 of+                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                Atom (B (True)) -> do return (Atom (B True))+                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                Atom (B (False)) -> do do return (Atom (B False))+                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                _ -> throwError "if: expected boolean"+                                                                                                                                                                                                                                                                                                                                                                                                                                                                                 pat_cond_133 = do do return (Atom (B False))+                                                                                                                                                                                                                                                                                                                                                                                                                                                                              in case kl_V1439htht of+                                                                                                                                                                                                                                                                                                                                                                                                                                                                                     !(kl_V1439htht@(Cons (!kl_V1439hthth)+                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                          (!kl_V1439hthtt))) -> pat_cond_127 kl_V1439htht kl_V1439hthth kl_V1439hthtt+                                                                                                                                                                                                                                                                                                                                                                                                                                                                                     _ -> pat_cond_133+                                                                                                                                                                                                                                                                                                                                                                                                                                                               case kl_if_126 of+                                                                                                                                                                                                                                                                                                                                                                                                                                                                   Atom (B (True)) -> do return (Atom (B True))+                                                                                                                                                                                                                                                                                                                                                                                                                                                                   Atom (B (False)) -> do do return (Atom (B False))+                                                                                                                                                                                                                                                                                                                                                                                                                                                                   _ -> throwError "if: expected boolean"+                                                                                                                                                                                                                                                                                                                                                                                                                                             pat_cond_134 = do do return (Atom (B False))+                                                                                                                                                                                                                                                                                                                                                                                                                                          in case kl_V1439hthh of+                                                                                                                                                                                                                                                                                                                                                                                                                                                 kl_V1439hthh@(Atom (UnboundSym "shen.choicepoint!")) -> pat_cond_125+                                                                                                                                                                                                                                                                                                                                                                                                                                                 kl_V1439hthh@(ApplC (PL "shen.choicepoint!"+                                                                                                                                                                                                                                                                                                                                                                                                                                                                         _)) -> pat_cond_125+                                                                                                                                                                                                                                                                                                                                                                                                                                                 kl_V1439hthh@(ApplC (Func "shen.choicepoint!"+                                                                                                                                                                                                                                                                                                                                                                                                                                                                           _)) -> pat_cond_125+                                                                                                                                                                                                                                                                                                                                                                                                                                                 _ -> pat_cond_134+                                                                                                                                                                                                                                                                                                                                                                                                                           case kl_if_124 of+                                                                                                                                                                                                                                                                                                                                                                                                                               Atom (B (True)) -> do return (Atom (B True))+                                                                                                                                                                                                                                                                                                                                                                                                                               Atom (B (False)) -> do do return (Atom (B False))+                                                                                                                                                                                                                                                                                                                                                                                                                               _ -> throwError "if: expected boolean"+                                                                                                                                                                                                                                                                                                                                                                   pat_cond_135 = do do return (Atom (B False))+                                                                                                                                                                                                                                                                                                                                                                in case kl_V1439hth of+                                                                                                                                                                                                                                                                                                                                                                       !(kl_V1439hth@(Cons (!kl_V1439hthh)+                                                                                                                                                                                                                                                                                                                                                                                           (!kl_V1439htht))) -> pat_cond_123 kl_V1439hth kl_V1439hthh kl_V1439htht+                                                                                                                                                                                                                                                                                                                                                                       _ -> pat_cond_135+                                                                                                                                                                                                                                                                                                                                                 case kl_if_122 of+                                                                                                                                                                                                                                                                                                                                                     Atom (B (True)) -> do return (Atom (B True))+                                                                                                                                                                                                                                                                                                                                                     Atom (B (False)) -> do do return (Atom (B False))+                                                                                                                                                                                                                                                                                                                                                     _ -> throwError "if: expected boolean"+                                                                                                                                                                                                                                                                                            pat_cond_136 = do do return (Atom (B False))+                                                                                                                                                                                                                                                                                         in case kl_V1439ht of+                                                                                                                                                                                                                                                                                                !(kl_V1439ht@(Cons (!kl_V1439hth)+                                                                                                                                                                                                                                                                                                                   (!kl_V1439htt))) -> pat_cond_121 kl_V1439ht kl_V1439hth kl_V1439htt+                                                                                                                                                                                                                                                                                                _ -> pat_cond_136+                                                                                                                                                                                                                                                                          case kl_if_120 of+                                                                                                                                                                                                                                                                              Atom (B (True)) -> do return (Atom (B True))+                                                                                                                                                                                                                                                                              Atom (B (False)) -> do do return (Atom (B False))+                                                                                                                                                                                                                                                                              _ -> throwError "if: expected boolean"+                                                                                                                                                                                                                        pat_cond_137 = do do return (Atom (B False))+                                                                                                                                                                                                                     in case kl_V1439h of+                                                                                                                                                                                                                            !(kl_V1439h@(Cons (!kl_V1439hh)+                                                                                                                                                                                                                                              (!kl_V1439ht))) -> pat_cond_119 kl_V1439h kl_V1439hh kl_V1439ht+                                                                                                                                                                                                                            _ -> pat_cond_137+                                                                                                                                                                                                      case kl_if_118 of+                                                                                                                                                                                                          Atom (B (True)) -> do return (Atom (B True))+                                                                                                                                                                                                          Atom (B (False)) -> do do return (Atom (B False))+                                                                                                                                                                                                          _ -> throwError "if: expected boolean"+                                                                                                                                                       pat_cond_138 = do do return (Atom (B False))+                                                                                                                                                    in case kl_V1439 of+                                                                                                                                                           !(kl_V1439@(Cons (!kl_V1439h)+                                                                                                                                                                            (!kl_V1439t))) -> pat_cond_117 kl_V1439 kl_V1439h kl_V1439t+                                                                                                                                                           _ -> pat_cond_138+                                                                                                                                     case kl_if_116 of+                                                                                                                                         Atom (B (True)) -> do !appl_139 <- kl_V1439 `pseq` tl kl_V1439+                                                                                                                                                               !appl_140 <- appl_139 `pseq` (kl_V1440 `pseq` kl_shen_encode_choices appl_139 kl_V1440)+                                                                                                                                                               !appl_141 <- appl_140 `pseq` kl_shen_cond_form appl_140+                                                                                                                                                               let !appl_142 = Atom Nil+                                                                                                                                                               !appl_143 <- appl_141 `pseq` (appl_142 `pseq` klCons appl_141 appl_142)+                                                                                                                                                               !appl_144 <- appl_143 `pseq` klCons (Core.Types.Atom (Core.Types.UnboundSym "freeze")) appl_143+                                                                                                                                                               !appl_145 <- kl_V1439 `pseq` hd kl_V1439+                                                                                                                                                               !appl_146 <- appl_145 `pseq` hd appl_145+                                                                                                                                                               !appl_147 <- kl_V1439 `pseq` hd kl_V1439+                                                                                                                                                               !appl_148 <- appl_147 `pseq` tl appl_147+                                                                                                                                                               !appl_149 <- appl_148 `pseq` hd appl_148+                                                                                                                                                               !appl_150 <- appl_149 `pseq` tl appl_149+                                                                                                                                                               !appl_151 <- appl_150 `pseq` hd appl_150+                                                                                                                                                               let !appl_152 = Atom Nil+                                                                                                                                                               !appl_153 <- appl_152 `pseq` klCons (Core.Types.Atom (Core.Types.UnboundSym "fail")) appl_152+                                                                                                                                                               let !appl_154 = Atom Nil+                                                                                                                                                               !appl_155 <- appl_153 `pseq` (appl_154 `pseq` klCons appl_153 appl_154)+                                                                                                                                                               !appl_156 <- appl_155 `pseq` klCons (Core.Types.Atom (Core.Types.UnboundSym "Result")) appl_155+                                                                                                                                                               !appl_157 <- appl_156 `pseq` klCons (ApplC (wrapNamed "=" eq)) appl_156+                                                                                                                                                               let !appl_158 = Atom Nil+                                                                                                                                                               !appl_159 <- appl_158 `pseq` klCons (Core.Types.Atom (Core.Types.UnboundSym "Freeze")) appl_158+                                                                                                                                                               !appl_160 <- appl_159 `pseq` klCons (Core.Types.Atom (Core.Types.UnboundSym "thaw")) appl_159+                                                                                                                                                               let !appl_161 = Atom Nil+                                                                                                                                                               !appl_162 <- appl_161 `pseq` klCons (Core.Types.Atom (Core.Types.UnboundSym "Result")) appl_161+                                                                                                                                                               !appl_163 <- appl_160 `pseq` (appl_162 `pseq` klCons appl_160 appl_162)+                                                                                                                                                               !appl_164 <- appl_157 `pseq` (appl_163 `pseq` klCons appl_157 appl_163)+                                                                                                                                                               !appl_165 <- appl_164 `pseq` klCons (Core.Types.Atom (Core.Types.UnboundSym "if")) appl_164+                                                                                                                                                               let !appl_166 = Atom Nil+                                                                                                                                                               !appl_167 <- appl_165 `pseq` (appl_166 `pseq` klCons appl_165 appl_166)+                                                                                                                                                               !appl_168 <- appl_151 `pseq` (appl_167 `pseq` klCons appl_151 appl_167)+                                                                                                                                                               !appl_169 <- appl_168 `pseq` klCons (Core.Types.Atom (Core.Types.UnboundSym "Result")) appl_168+                                                                                                                                                               !appl_170 <- appl_169 `pseq` klCons (Core.Types.Atom (Core.Types.UnboundSym "let")) appl_169+                                                                                                                                                               let !appl_171 = Atom Nil+                                                                                                                                                               !appl_172 <- appl_171 `pseq` klCons (Core.Types.Atom (Core.Types.UnboundSym "Freeze")) appl_171+                                                                                                                                                               !appl_173 <- appl_172 `pseq` klCons (Core.Types.Atom (Core.Types.UnboundSym "thaw")) appl_172+                                                                                                                                                               let !appl_174 = Atom Nil+                                                                                                                                                               !appl_175 <- appl_173 `pseq` (appl_174 `pseq` klCons appl_173 appl_174)+                                                                                                                                                               !appl_176 <- appl_170 `pseq` (appl_175 `pseq` klCons appl_170 appl_175)+                                                                                                                                                               !appl_177 <- appl_146 `pseq` (appl_176 `pseq` klCons appl_146 appl_176)+                                                                                                                                                               !appl_178 <- appl_177 `pseq` klCons (Core.Types.Atom (Core.Types.UnboundSym "if")) appl_177+                                                                                                                                                               let !appl_179 = Atom Nil+                                                                                                                                                               !appl_180 <- appl_178 `pseq` (appl_179 `pseq` klCons appl_178 appl_179)+                                                                                                                                                               !appl_181 <- appl_144 `pseq` (appl_180 `pseq` klCons appl_144 appl_180)+                                                                                                                                                               !appl_182 <- appl_181 `pseq` klCons (Core.Types.Atom (Core.Types.UnboundSym "Freeze")) appl_181+                                                                                                                                                               !appl_183 <- appl_182 `pseq` klCons (Core.Types.Atom (Core.Types.UnboundSym "let")) appl_182+                                                                                                                                                               let !appl_184 = Atom Nil+                                                                                                                                                               !appl_185 <- appl_183 `pseq` (appl_184 `pseq` klCons appl_183 appl_184)+                                                                                                                                                               !appl_186 <- appl_185 `pseq` klCons (Atom (B True)) appl_185+                                                                                                                                                               let !appl_187 = Atom Nil+                                                                                                                                                               appl_186 `pseq` (appl_187 `pseq` klCons appl_186 appl_187)+                                                                                                                                         Atom (B (False)) -> do !kl_if_188 <- let pat_cond_189 kl_V1439 kl_V1439h kl_V1439t = do !kl_if_190 <- let pat_cond_191 kl_V1439h kl_V1439hh kl_V1439ht = do !kl_if_192 <- let pat_cond_193 kl_V1439ht kl_V1439hth kl_V1439htt = do let !appl_194 = Atom Nil+                                                                                                                                                                                                                                                                                                                                                                            !kl_if_195 <- appl_194 `pseq` (kl_V1439htt `pseq` eq appl_194 kl_V1439htt)+                                                                                                                                                                                                                                                                                                                                                                            case kl_if_195 of+                                                                                                                                                                                                                                                                                                                                                                                Atom (B (True)) -> do return (Atom (B True))+                                                                                                                                                                                                                                                                                                                                                                                Atom (B (False)) -> do do return (Atom (B False))+                                                                                                                                                                                                                                                                                                                                                                                _ -> throwError "if: expected boolean"+                                                                                                                                                                                                                                                                                                                       pat_cond_196 = do do return (Atom (B False))+                                                                                                                                                                                                                                                                                                                    in case kl_V1439ht of+                                                                                                                                                                                                                                                                                                                           !(kl_V1439ht@(Cons (!kl_V1439hth)+                                                                                                                                                                                                                                                                                                                                              (!kl_V1439htt))) -> pat_cond_193 kl_V1439ht kl_V1439hth kl_V1439htt+                                                                                                                                                                                                                                                                                                                           _ -> pat_cond_196+                                                                                                                                                                                                                                                                                                     case kl_if_192 of+                                                                                                                                                                                                                                                                                                         Atom (B (True)) -> do return (Atom (B True))+                                                                                                                                                                                                                                                                                                         Atom (B (False)) -> do do return (Atom (B False))+                                                                                                                                                                                                                                                                                                         _ -> throwError "if: expected boolean"+                                                                                                                                                                                                                                                   pat_cond_197 = do do return (Atom (B False))+                                                                                                                                                                                                                                                in case kl_V1439h of+                                                                                                                                                                                                                                                       !(kl_V1439h@(Cons (!kl_V1439hh)+                                                                                                                                                                                                                                                                         (!kl_V1439ht))) -> pat_cond_191 kl_V1439h kl_V1439hh kl_V1439ht+                                                                                                                                                                                                                                                       _ -> pat_cond_197+                                                                                                                                                                                                                                 case kl_if_190 of+                                                                                                                                                                                                                                     Atom (B (True)) -> do return (Atom (B True))+                                                                                                                                                                                                                                     Atom (B (False)) -> do do return (Atom (B False))+                                                                                                                                                                                                                                     _ -> throwError "if: expected boolean"+                                                                                                                                                                                  pat_cond_198 = do do return (Atom (B False))+                                                                                                                                                                               in case kl_V1439 of+                                                                                                                                                                                      !(kl_V1439@(Cons (!kl_V1439h)+                                                                                                                                                                                                       (!kl_V1439t))) -> pat_cond_189 kl_V1439 kl_V1439h kl_V1439t+                                                                                                                                                                                      _ -> pat_cond_198+                                                                                                                                                                case kl_if_188 of+                                                                                                                                                                    Atom (B (True)) -> do !appl_199 <- kl_V1439 `pseq` hd kl_V1439+                                                                                                                                                                                          !appl_200 <- kl_V1439 `pseq` tl kl_V1439+                                                                                                                                                                                          !appl_201 <- appl_200 `pseq` (kl_V1440 `pseq` kl_shen_encode_choices appl_200 kl_V1440)+                                                                                                                                                                                          appl_199 `pseq` (appl_201 `pseq` klCons appl_199 appl_201)+                                                                                                                                                                    Atom (B (False)) -> do do let !aw_202 = Core.Types.Atom (Core.Types.UnboundSym "shen.f_error")+                                                                                                                                                                                              applyWrapper aw_202 [ApplC (wrapNamed "shen.encode-choices" kl_shen_encode_choices)]+                                                                                                                                                                    _ -> throwError "if: expected boolean"+                                                                                                                                         _ -> throwError "if: expected boolean"+                                                                                                              _ -> throwError "if: expected boolean"+                                                                                   _ -> throwError "if: expected boolean"+                                                        _ -> throwError "if: expected boolean"++kl_shen_case_form :: Core.Types.KLValue ->+                     Core.Types.KLValue ->+                     Core.Types.KLContext Core.Types.Env Core.Types.KLValue+kl_shen_case_form (!kl_V1447) (!kl_V1448) = do let !appl_0 = Atom Nil+                                               !kl_if_1 <- appl_0 `pseq` (kl_V1447 `pseq` eq appl_0 kl_V1447)+                                               case kl_if_1 of+                                                   Atom (B (True)) -> do let !appl_2 = Atom Nil+                                                                         kl_V1448 `pseq` (appl_2 `pseq` klCons kl_V1448 appl_2)+                                                   Atom (B (False)) -> do !kl_if_3 <- let pat_cond_4 kl_V1447 kl_V1447h kl_V1447t = do !kl_if_5 <- let pat_cond_6 kl_V1447h kl_V1447hh kl_V1447ht = do !kl_if_7 <- let pat_cond_8 kl_V1447hh kl_V1447hhh kl_V1447hht = do !kl_if_9 <- let pat_cond_10 = do !kl_if_11 <- let pat_cond_12 kl_V1447hht kl_V1447hhth kl_V1447hhtt = do !kl_if_13 <- let pat_cond_14 = do let !appl_15 = Atom Nil+                                                                                                                                                                                                                                                                                                                                                                                                                     !kl_if_16 <- appl_15 `pseq` (kl_V1447hhtt `pseq` eq appl_15 kl_V1447hhtt)+                                                                                                                                                                                                                                                                                                                                                                                                                     !kl_if_17 <- case kl_if_16 of+                                                                                                                                                                                                                                                                                                                                                                                                                                      Atom (B (True)) -> do !kl_if_18 <- let pat_cond_19 kl_V1447ht kl_V1447hth kl_V1447htt = do !kl_if_20 <- let pat_cond_21 kl_V1447hth kl_V1447hthh kl_V1447htht = do !kl_if_22 <- let pat_cond_23 = do !kl_if_24 <- let pat_cond_25 kl_V1447htht kl_V1447hthth kl_V1447hthtt = do let !appl_26 = Atom Nil+                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                      !kl_if_27 <- appl_26 `pseq` (kl_V1447hthtt `pseq` eq appl_26 kl_V1447hthtt)+                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                      !kl_if_28 <- case kl_if_27 of+                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                       Atom (B (True)) -> do let !appl_29 = Atom Nil+                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                             !kl_if_30 <- appl_29 `pseq` (kl_V1447htt `pseq` eq appl_29 kl_V1447htt)+                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                             case kl_if_30 of+                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                 Atom (B (True)) -> do return (Atom (B True))+                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                 Atom (B (False)) -> do do return (Atom (B False))+                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                 _ -> throwError "if: expected boolean"+                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                       Atom (B (False)) -> do do return (Atom (B False))+                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                       _ -> throwError "if: expected boolean"+                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                      case kl_if_28 of+                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                          Atom (B (True)) -> do return (Atom (B True))+                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                          Atom (B (False)) -> do do return (Atom (B False))+                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                          _ -> throwError "if: expected boolean"+                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                            pat_cond_31 = do do return (Atom (B False))+                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                         in case kl_V1447htht of+                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                !(kl_V1447htht@(Cons (!kl_V1447hthth)+                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                     (!kl_V1447hthtt))) -> pat_cond_25 kl_V1447htht kl_V1447hthth kl_V1447hthtt+                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                _ -> pat_cond_31+                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                           case kl_if_24 of+                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                               Atom (B (True)) -> do return (Atom (B True))+                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                               Atom (B (False)) -> do do return (Atom (B False))+                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                               _ -> throwError "if: expected boolean"+                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                          pat_cond_32 = do do return (Atom (B False))+                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                       in case kl_V1447hthh of+                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                              kl_V1447hthh@(Atom (UnboundSym "shen.choicepoint!")) -> pat_cond_23+                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                              kl_V1447hthh@(ApplC (PL "shen.choicepoint!"+                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                      _)) -> pat_cond_23+                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                              kl_V1447hthh@(ApplC (Func "shen.choicepoint!"+                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                        _)) -> pat_cond_23+                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                              _ -> pat_cond_32+                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                         case kl_if_22 of+                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                             Atom (B (True)) -> do return (Atom (B True))+                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                             Atom (B (False)) -> do do return (Atom (B False))+                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                             _ -> throwError "if: expected boolean"+                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                  pat_cond_33 = do do return (Atom (B False))+                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                               in case kl_V1447hth of+                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                      !(kl_V1447hth@(Cons (!kl_V1447hthh)+                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                          (!kl_V1447htht))) -> pat_cond_21 kl_V1447hth kl_V1447hthh kl_V1447htht+                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                      _ -> pat_cond_33+                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                 case kl_if_20 of+                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                     Atom (B (True)) -> do return (Atom (B True))+                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                     Atom (B (False)) -> do do return (Atom (B False))+                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                     _ -> throwError "if: expected boolean"+                                                                                                                                                                                                                                                                                                                                                                                                                                                                             pat_cond_34 = do do return (Atom (B False))+                                                                                                                                                                                                                                                                                                                                                                                                                                                                          in case kl_V1447ht of+                                                                                                                                                                                                                                                                                                                                                                                                                                                                                 !(kl_V1447ht@(Cons (!kl_V1447hth)+                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                    (!kl_V1447htt))) -> pat_cond_19 kl_V1447ht kl_V1447hth kl_V1447htt+                                                                                                                                                                                                                                                                                                                                                                                                                                                                                 _ -> pat_cond_34+                                                                                                                                                                                                                                                                                                                                                                                                                                                            case kl_if_18 of+                                                                                                                                                                                                                                                                                                                                                                                                                                                                Atom (B (True)) -> do return (Atom (B True))+                                                                                                                                                                                                                                                                                                                                                                                                                                                                Atom (B (False)) -> do do return (Atom (B False))+                                                                                                                                                                                                                                                                                                                                                                                                                                                                _ -> throwError "if: expected boolean"+                                                                                                                                                                                                                                                                                                                                                                                                                                      Atom (B (False)) -> do do return (Atom (B False))+                                                                                                                                                                                                                                                                                                                                                                                                                                      _ -> throwError "if: expected boolean"+                                                                                                                                                                                                                                                                                                                                                                                                                     case kl_if_17 of+                                                                                                                                                                                                                                                                                                                                                                                                                         Atom (B (True)) -> do return (Atom (B True))+                                                                                                                                                                                                                                                                                                                                                                                                                         Atom (B (False)) -> do do return (Atom (B False))+                                                                                                                                                                                                                                                                                                                                                                                                                         _ -> throwError "if: expected boolean"+                                                                                                                                                                                                                                                                                                                                                                                                    pat_cond_35 = do do return (Atom (B False))+                                                                                                                                                                                                                                                                                                                                                                                                 in case kl_V1447hhth of+                                                                                                                                                                                                                                                                                                                                                                                                        kl_V1447hhth@(Atom (UnboundSym "shen.tests")) -> pat_cond_14+                                                                                                                                                                                                                                                                                                                                                                                                        kl_V1447hhth@(ApplC (PL "shen.tests"+                                                                                                                                                                                                                                                                                                                                                                                                                                _)) -> pat_cond_14+                                                                                                                                                                                                                                                                                                                                                                                                        kl_V1447hhth@(ApplC (Func "shen.tests"+                                                                                                                                                                                                                                                                                                                                                                                                                                  _)) -> pat_cond_14+                                                                                                                                                                                                                                                                                                                                                                                                        _ -> pat_cond_35+                                                                                                                                                                                                                                                                                                                                                                                   case kl_if_13 of+                                                                                                                                                                                                                                                                                                                                                                                       Atom (B (True)) -> do return (Atom (B True))+                                                                                                                                                                                                                                                                                                                                                                                       Atom (B (False)) -> do do return (Atom (B False))+                                                                                                                                                                                                                                                                                                                                                                                       _ -> throwError "if: expected boolean"+                                                                                                                                                                                                                                                                                                                            pat_cond_36 = do do return (Atom (B False))+                                                                                                                                                                                                                                                                                                                         in case kl_V1447hht of+                                                                                                                                                                                                                                                                                                                                !(kl_V1447hht@(Cons (!kl_V1447hhth)+                                                                                                                                                                                                                                                                                                                                                    (!kl_V1447hhtt))) -> pat_cond_12 kl_V1447hht kl_V1447hhth kl_V1447hhtt+                                                                                                                                                                                                                                                                                                                                _ -> pat_cond_36+                                                                                                                                                                                                                                                                                                           case kl_if_11 of+                                                                                                                                                                                                                                                                                                               Atom (B (True)) -> do return (Atom (B True))+                                                                                                                                                                                                                                                                                                               Atom (B (False)) -> do do return (Atom (B False))+                                                                                                                                                                                                                                                                                                               _ -> throwError "if: expected boolean"+                                                                                                                                                                                                                                                                                          pat_cond_37 = do do return (Atom (B False))+                                                                                                                                                                                                                                                                                       in case kl_V1447hhh of+                                                                                                                                                                                                                                                                                              kl_V1447hhh@(Atom (UnboundSym ":")) -> pat_cond_10+                                                                                                                                                                                                                                                                                              kl_V1447hhh@(ApplC (PL ":"+                                                                                                                                                                                                                                                                                                                     _)) -> pat_cond_10+                                                                                                                                                                                                                                                                                              kl_V1447hhh@(ApplC (Func ":"+                                                                                                                                                                                                                                                                                                                       _)) -> pat_cond_10+                                                                                                                                                                                                                                                                                              _ -> pat_cond_37+                                                                                                                                                                                                                                                                          case kl_if_9 of+                                                                                                                                                                                                                                                                              Atom (B (True)) -> do return (Atom (B True))+                                                                                                                                                                                                                                                                              Atom (B (False)) -> do do return (Atom (B False))+                                                                                                                                                                                                                                                                              _ -> throwError "if: expected boolean"+                                                                                                                                                                                                                       pat_cond_38 = do do return (Atom (B False))+                                                                                                                                                                                                                    in case kl_V1447hh of+                                                                                                                                                                                                                           !(kl_V1447hh@(Cons (!kl_V1447hhh)+                                                                                                                                                                                                                                              (!kl_V1447hht))) -> pat_cond_8 kl_V1447hh kl_V1447hhh kl_V1447hht+                                                                                                                                                                                                                           _ -> pat_cond_38+                                                                                                                                                                                                       case kl_if_7 of+                                                                                                                                                                                                           Atom (B (True)) -> do return (Atom (B True))+                                                                                                                                                                                                           Atom (B (False)) -> do do return (Atom (B False))+                                                                                                                                                                                                           _ -> throwError "if: expected boolean"+                                                                                                                                                       pat_cond_39 = do do return (Atom (B False))+                                                                                                                                                    in case kl_V1447h of+                                                                                                                                                           !(kl_V1447h@(Cons (!kl_V1447hh)+                                                                                                                                                                             (!kl_V1447ht))) -> pat_cond_6 kl_V1447h kl_V1447hh kl_V1447ht+                                                                                                                                                           _ -> pat_cond_39+                                                                                                                                       case kl_if_5 of+                                                                                                                                           Atom (B (True)) -> do return (Atom (B True))+                                                                                                                                           Atom (B (False)) -> do do return (Atom (B False))+                                                                                                                                           _ -> throwError "if: expected boolean"+                                                                                          pat_cond_40 = do do return (Atom (B False))+                                                                                       in case kl_V1447 of+                                                                                              !(kl_V1447@(Cons (!kl_V1447h)+                                                                                                               (!kl_V1447t))) -> pat_cond_4 kl_V1447 kl_V1447h kl_V1447t+                                                                                              _ -> pat_cond_40+                                                                          case kl_if_3 of+                                                                              Atom (B (True)) -> do !appl_41 <- kl_V1447 `pseq` hd kl_V1447+                                                                                                    !appl_42 <- appl_41 `pseq` tl appl_41+                                                                                                    !appl_43 <- appl_42 `pseq` klCons (Atom (B True)) appl_42+                                                                                                    !appl_44 <- kl_V1447 `pseq` tl kl_V1447+                                                                                                    !appl_45 <- appl_44 `pseq` (kl_V1448 `pseq` kl_shen_case_form appl_44 kl_V1448)+                                                                                                    appl_43 `pseq` (appl_45 `pseq` klCons appl_43 appl_45)+                                                                              Atom (B (False)) -> do !kl_if_46 <- let pat_cond_47 kl_V1447 kl_V1447h kl_V1447t = do !kl_if_48 <- let pat_cond_49 kl_V1447h kl_V1447hh kl_V1447ht = do !kl_if_50 <- let pat_cond_51 kl_V1447hh kl_V1447hhh kl_V1447hht = do !kl_if_52 <- let pat_cond_53 = do !kl_if_54 <- let pat_cond_55 kl_V1447hht kl_V1447hhth kl_V1447hhtt = do !kl_if_56 <- let pat_cond_57 = do let !appl_58 = Atom Nil+                                                                                                                                                                                                                                                                                                                                                                                                                                                       !kl_if_59 <- appl_58 `pseq` (kl_V1447hhtt `pseq` eq appl_58 kl_V1447hhtt)+                                                                                                                                                                                                                                                                                                                                                                                                                                                       !kl_if_60 <- case kl_if_59 of+                                                                                                                                                                                                                                                                                                                                                                                                                                                                        Atom (B (True)) -> do !kl_if_61 <- let pat_cond_62 kl_V1447ht kl_V1447hth kl_V1447htt = do let !appl_63 = Atom Nil+                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                   !kl_if_64 <- appl_63 `pseq` (kl_V1447htt `pseq` eq appl_63 kl_V1447htt)+                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                   case kl_if_64 of+                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                       Atom (B (True)) -> do return (Atom (B True))+                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                       Atom (B (False)) -> do do return (Atom (B False))+                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                       _ -> throwError "if: expected boolean"+                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                               pat_cond_65 = do do return (Atom (B False))+                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                            in case kl_V1447ht of+                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                   !(kl_V1447ht@(Cons (!kl_V1447hth)+                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                      (!kl_V1447htt))) -> pat_cond_62 kl_V1447ht kl_V1447hth kl_V1447htt+                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                   _ -> pat_cond_65+                                                                                                                                                                                                                                                                                                                                                                                                                                                                                              case kl_if_61 of+                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                  Atom (B (True)) -> do return (Atom (B True))+                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                  Atom (B (False)) -> do do return (Atom (B False))+                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                  _ -> throwError "if: expected boolean"+                                                                                                                                                                                                                                                                                                                                                                                                                                                                        Atom (B (False)) -> do do return (Atom (B False))+                                                                                                                                                                                                                                                                                                                                                                                                                                                                        _ -> throwError "if: expected boolean"+                                                                                                                                                                                                                                                                                                                                                                                                                                                       case kl_if_60 of+                                                                                                                                                                                                                                                                                                                                                                                                                                                           Atom (B (True)) -> do return (Atom (B True))+                                                                                                                                                                                                                                                                                                                                                                                                                                                           Atom (B (False)) -> do do return (Atom (B False))+                                                                                                                                                                                                                                                                                                                                                                                                                                                           _ -> throwError "if: expected boolean"+                                                                                                                                                                                                                                                                                                                                                                                                                                      pat_cond_66 = do do return (Atom (B False))+                                                                                                                                                                                                                                                                                                                                                                                                                                   in case kl_V1447hhth of+                                                                                                                                                                                                                                                                                                                                                                                                                                          kl_V1447hhth@(Atom (UnboundSym "shen.tests")) -> pat_cond_57+                                                                                                                                                                                                                                                                                                                                                                                                                                          kl_V1447hhth@(ApplC (PL "shen.tests"+                                                                                                                                                                                                                                                                                                                                                                                                                                                                  _)) -> pat_cond_57+                                                                                                                                                                                                                                                                                                                                                                                                                                          kl_V1447hhth@(ApplC (Func "shen.tests"+                                                                                                                                                                                                                                                                                                                                                                                                                                                                    _)) -> pat_cond_57+                                                                                                                                                                                                                                                                                                                                                                                                                                          _ -> pat_cond_66+                                                                                                                                                                                                                                                                                                                                                                                                                     case kl_if_56 of+                                                                                                                                                                                                                                                                                                                                                                                                                         Atom (B (True)) -> do return (Atom (B True))+                                                                                                                                                                                                                                                                                                                                                                                                                         Atom (B (False)) -> do do return (Atom (B False))+                                                                                                                                                                                                                                                                                                                                                                                                                         _ -> throwError "if: expected boolean"+                                                                                                                                                                                                                                                                                                                                                              pat_cond_67 = do do return (Atom (B False))+                                                                                                                                                                                                                                                                                                                                                           in case kl_V1447hht of+                                                                                                                                                                                                                                                                                                                                                                  !(kl_V1447hht@(Cons (!kl_V1447hhth)+                                                                                                                                                                                                                                                                                                                                                                                      (!kl_V1447hhtt))) -> pat_cond_55 kl_V1447hht kl_V1447hhth kl_V1447hhtt+                                                                                                                                                                                                                                                                                                                                                                  _ -> pat_cond_67+                                                                                                                                                                                                                                                                                                                                             case kl_if_54 of+                                                                                                                                                                                                                                                                                                                                                 Atom (B (True)) -> do return (Atom (B True))+                                                                                                                                                                                                                                                                                                                                                 Atom (B (False)) -> do do return (Atom (B False))+                                                                                                                                                                                                                                                                                                                                                 _ -> throwError "if: expected boolean"+                                                                                                                                                                                                                                                                                                                            pat_cond_68 = do do return (Atom (B False))+                                                                                                                                                                                                                                                                                                                         in case kl_V1447hhh of+                                                                                                                                                                                                                                                                                                                                kl_V1447hhh@(Atom (UnboundSym ":")) -> pat_cond_53+                                                                                                                                                                                                                                                                                                                                kl_V1447hhh@(ApplC (PL ":"+                                                                                                                                                                                                                                                                                                                                                       _)) -> pat_cond_53+                                                                                                                                                                                                                                                                                                                                kl_V1447hhh@(ApplC (Func ":"+                                                                                                                                                                                                                                                                                                                                                         _)) -> pat_cond_53+                                                                                                                                                                                                                                                                                                                                _ -> pat_cond_68+                                                                                                                                                                                                                                                                                                           case kl_if_52 of+                                                                                                                                                                                                                                                                                                               Atom (B (True)) -> do return (Atom (B True))+                                                                                                                                                                                                                                                                                                               Atom (B (False)) -> do do return (Atom (B False))+                                                                                                                                                                                                                                                                                                               _ -> throwError "if: expected boolean"+                                                                                                                                                                                                                                                       pat_cond_69 = do do return (Atom (B False))+                                                                                                                                                                                                                                                    in case kl_V1447hh of+                                                                                                                                                                                                                                                           !(kl_V1447hh@(Cons (!kl_V1447hhh)+                                                                                                                                                                                                                                                                              (!kl_V1447hht))) -> pat_cond_51 kl_V1447hh kl_V1447hhh kl_V1447hht+                                                                                                                                                                                                                                                           _ -> pat_cond_69+                                                                                                                                                                                                                                      case kl_if_50 of+                                                                                                                                                                                                                                          Atom (B (True)) -> do return (Atom (B True))+                                                                                                                                                                                                                                          Atom (B (False)) -> do do return (Atom (B False))+                                                                                                                                                                                                                                          _ -> throwError "if: expected boolean"+                                                                                                                                                                                     pat_cond_70 = do do return (Atom (B False))+                                                                                                                                                                                  in case kl_V1447h of+                                                                                                                                                                                         !(kl_V1447h@(Cons (!kl_V1447hh)+                                                                                                                                                                                                           (!kl_V1447ht))) -> pat_cond_49 kl_V1447h kl_V1447hh kl_V1447ht+                                                                                                                                                                                         _ -> pat_cond_70+                                                                                                                                                                    case kl_if_48 of+                                                                                                                                                                        Atom (B (True)) -> do return (Atom (B True))+                                                                                                                                                                        Atom (B (False)) -> do do return (Atom (B False))+                                                                                                                                                                        _ -> throwError "if: expected boolean"+                                                                                                                      pat_cond_71 = do do return (Atom (B False))+                                                                                                                   in case kl_V1447 of+                                                                                                                          !(kl_V1447@(Cons (!kl_V1447h)+                                                                                                                                           (!kl_V1447t))) -> pat_cond_47 kl_V1447 kl_V1447h kl_V1447t+                                                                                                                          _ -> pat_cond_71+                                                                                                     case kl_if_46 of+                                                                                                         Atom (B (True)) -> do !appl_72 <- kl_V1447 `pseq` hd kl_V1447+                                                                                                                               !appl_73 <- appl_72 `pseq` tl appl_72+                                                                                                                               !appl_74 <- appl_73 `pseq` klCons (Atom (B True)) appl_73+                                                                                                                               let !appl_75 = Atom Nil+                                                                                                                               appl_74 `pseq` (appl_75 `pseq` klCons appl_74 appl_75)+                                                                                                         Atom (B (False)) -> do !kl_if_76 <- let pat_cond_77 kl_V1447 kl_V1447h kl_V1447t = do !kl_if_78 <- let pat_cond_79 kl_V1447h kl_V1447hh kl_V1447ht = do !kl_if_80 <- let pat_cond_81 kl_V1447hh kl_V1447hhh kl_V1447hht = do !kl_if_82 <- let pat_cond_83 = do !kl_if_84 <- let pat_cond_85 kl_V1447hht kl_V1447hhth kl_V1447hhtt = do !kl_if_86 <- let pat_cond_87 = do !kl_if_88 <- let pat_cond_89 kl_V1447ht kl_V1447hth kl_V1447htt = do let !appl_90 = Atom Nil+                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                       !kl_if_91 <- appl_90 `pseq` (kl_V1447htt `pseq` eq appl_90 kl_V1447htt)+                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                       case kl_if_91 of+                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                           Atom (B (True)) -> do return (Atom (B True))+                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                           Atom (B (False)) -> do do return (Atom (B False))+                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                           _ -> throwError "if: expected boolean"+                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                   pat_cond_92 = do do return (Atom (B False))+                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                in case kl_V1447ht of+                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                       !(kl_V1447ht@(Cons (!kl_V1447hth)+                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                          (!kl_V1447htt))) -> pat_cond_89 kl_V1447ht kl_V1447hth kl_V1447htt+                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                       _ -> pat_cond_92+                                                                                                                                                                                                                                                                                                                                                                                                                                                                                  case kl_if_88 of+                                                                                                                                                                                                                                                                                                                                                                                                                                                                                      Atom (B (True)) -> do return (Atom (B True))+                                                                                                                                                                                                                                                                                                                                                                                                                                                                                      Atom (B (False)) -> do do return (Atom (B False))+                                                                                                                                                                                                                                                                                                                                                                                                                                                                                      _ -> throwError "if: expected boolean"+                                                                                                                                                                                                                                                                                                                                                                                                                                                                 pat_cond_93 = do do return (Atom (B False))+                                                                                                                                                                                                                                                                                                                                                                                                                                                              in case kl_V1447hhth of+                                                                                                                                                                                                                                                                                                                                                                                                                                                                     kl_V1447hhth@(Atom (UnboundSym "shen.tests")) -> pat_cond_87+                                                                                                                                                                                                                                                                                                                                                                                                                                                                     kl_V1447hhth@(ApplC (PL "shen.tests"+                                                                                                                                                                                                                                                                                                                                                                                                                                                                                             _)) -> pat_cond_87+                                                                                                                                                                                                                                                                                                                                                                                                                                                                     kl_V1447hhth@(ApplC (Func "shen.tests"+                                                                                                                                                                                                                                                                                                                                                                                                                                                                                               _)) -> pat_cond_87+                                                                                                                                                                                                                                                                                                                                                                                                                                                                     _ -> pat_cond_93+                                                                                                                                                                                                                                                                                                                                                                                                                                                case kl_if_86 of+                                                                                                                                                                                                                                                                                                                                                                                                                                                    Atom (B (True)) -> do return (Atom (B True))+                                                                                                                                                                                                                                                                                                                                                                                                                                                    Atom (B (False)) -> do do return (Atom (B False))+                                                                                                                                                                                                                                                                                                                                                                                                                                                    _ -> throwError "if: expected boolean"+                                                                                                                                                                                                                                                                                                                                                                                         pat_cond_94 = do do return (Atom (B False))+                                                                                                                                                                                                                                                                                                                                                                                      in case kl_V1447hht of+                                                                                                                                                                                                                                                                                                                                                                                             !(kl_V1447hht@(Cons (!kl_V1447hhth)+                                                                                                                                                                                                                                                                                                                                                                                                                 (!kl_V1447hhtt))) -> pat_cond_85 kl_V1447hht kl_V1447hhth kl_V1447hhtt+                                                                                                                                                                                                                                                                                                                                                                                             _ -> pat_cond_94+                                                                                                                                                                                                                                                                                                                                                                        case kl_if_84 of+                                                                                                                                                                                                                                                                                                                                                                            Atom (B (True)) -> do return (Atom (B True))+                                                                                                                                                                                                                                                                                                                                                                            Atom (B (False)) -> do do return (Atom (B False))+                                                                                                                                                                                                                                                                                                                                                                            _ -> throwError "if: expected boolean"+                                                                                                                                                                                                                                                                                                                                                       pat_cond_95 = do do return (Atom (B False))+                                                                                                                                                                                                                                                                                                                                                    in case kl_V1447hhh of+                                                                                                                                                                                                                                                                                                                                                           kl_V1447hhh@(Atom (UnboundSym ":")) -> pat_cond_83+                                                                                                                                                                                                                                                                                                                                                           kl_V1447hhh@(ApplC (PL ":"+                                                                                                                                                                                                                                                                                                                                                                                  _)) -> pat_cond_83+                                                                                                                                                                                                                                                                                                                                                           kl_V1447hhh@(ApplC (Func ":"+                                                                                                                                                                                                                                                                                                                                                                                    _)) -> pat_cond_83+                                                                                                                                                                                                                                                                                                                                                           _ -> pat_cond_95+                                                                                                                                                                                                                                                                                                                                      case kl_if_82 of+                                                                                                                                                                                                                                                                                                                                          Atom (B (True)) -> do return (Atom (B True))+                                                                                                                                                                                                                                                                                                                                          Atom (B (False)) -> do do return (Atom (B False))+                                                                                                                                                                                                                                                                                                                                          _ -> throwError "if: expected boolean"+                                                                                                                                                                                                                                                                                  pat_cond_96 = do do return (Atom (B False))+                                                                                                                                                                                                                                                                               in case kl_V1447hh of+                                                                                                                                                                                                                                                                                      !(kl_V1447hh@(Cons (!kl_V1447hhh)+                                                                                                                                                                                                                                                                                                         (!kl_V1447hht))) -> pat_cond_81 kl_V1447hh kl_V1447hhh kl_V1447hht+                                                                                                                                                                                                                                                                                      _ -> pat_cond_96+                                                                                                                                                                                                                                                                 case kl_if_80 of+                                                                                                                                                                                                                                                                     Atom (B (True)) -> do return (Atom (B True))+                                                                                                                                                                                                                                                                     Atom (B (False)) -> do do return (Atom (B False))+                                                                                                                                                                                                                                                                     _ -> throwError "if: expected boolean"+                                                                                                                                                                                                                pat_cond_97 = do do return (Atom (B False))+                                                                                                                                                                                                             in case kl_V1447h of+                                                                                                                                                                                                                    !(kl_V1447h@(Cons (!kl_V1447hh)+                                                                                                                                                                                                                                      (!kl_V1447ht))) -> pat_cond_79 kl_V1447h kl_V1447hh kl_V1447ht+                                                                                                                                                                                                                    _ -> pat_cond_97+                                                                                                                                                                                               case kl_if_78 of+                                                                                                                                                                                                   Atom (B (True)) -> do return (Atom (B True))+                                                                                                                                                                                                   Atom (B (False)) -> do do return (Atom (B False))+                                                                                                                                                                                                   _ -> throwError "if: expected boolean"+                                                                                                                                                 pat_cond_98 = do do return (Atom (B False))+                                                                                                                                              in case kl_V1447 of+                                                                                                                                                     !(kl_V1447@(Cons (!kl_V1447h)+                                                                                                                                                                      (!kl_V1447t))) -> pat_cond_77 kl_V1447 kl_V1447h kl_V1447t+                                                                                                                                                     _ -> pat_cond_98+                                                                                                                                case kl_if_76 of+                                                                                                                                    Atom (B (True)) -> do !appl_99 <- kl_V1447 `pseq` hd kl_V1447+                                                                                                                                                          !appl_100 <- appl_99 `pseq` hd appl_99+                                                                                                                                                          !appl_101 <- appl_100 `pseq` tl appl_100+                                                                                                                                                          !appl_102 <- appl_101 `pseq` tl appl_101+                                                                                                                                                          !appl_103 <- appl_102 `pseq` kl_shen_embed_and appl_102+                                                                                                                                                          !appl_104 <- kl_V1447 `pseq` hd kl_V1447+                                                                                                                                                          !appl_105 <- appl_104 `pseq` tl appl_104+                                                                                                                                                          !appl_106 <- appl_103 `pseq` (appl_105 `pseq` klCons appl_103 appl_105)+                                                                                                                                                          !appl_107 <- kl_V1447 `pseq` tl kl_V1447+                                                                                                                                                          !appl_108 <- appl_107 `pseq` (kl_V1448 `pseq` kl_shen_case_form appl_107 kl_V1448)+                                                                                                                                                          appl_106 `pseq` (appl_108 `pseq` klCons appl_106 appl_108)+                                                                                                                                    Atom (B (False)) -> do do let !aw_109 = Core.Types.Atom (Core.Types.UnboundSym "shen.f_error")+                                                                                                                                                              applyWrapper aw_109 [ApplC (wrapNamed "shen.case-form" kl_shen_case_form)]+                                                                                                                                    _ -> throwError "if: expected boolean"+                                                                                                         _ -> throwError "if: expected boolean"+                                                                              _ -> throwError "if: expected boolean"+                                                   _ -> throwError "if: expected boolean"++kl_shen_embed_and :: Core.Types.KLValue ->+                     Core.Types.KLContext Core.Types.Env Core.Types.KLValue+kl_shen_embed_and (!kl_V1450) = do !kl_if_0 <- let pat_cond_1 kl_V1450 kl_V1450h kl_V1450t = do let !appl_2 = Atom Nil+                                                                                                !kl_if_3 <- appl_2 `pseq` (kl_V1450t `pseq` eq appl_2 kl_V1450t)+                                                                                                case kl_if_3 of+                                                                                                    Atom (B (True)) -> do return (Atom (B True))+                                                                                                    Atom (B (False)) -> do do return (Atom (B False))+                                                                                                    _ -> throwError "if: expected boolean"+                                                   pat_cond_4 = do do return (Atom (B False))+                                                in case kl_V1450 of+                                                       !(kl_V1450@(Cons (!kl_V1450h)+                                                                        (!kl_V1450t))) -> pat_cond_1 kl_V1450 kl_V1450h kl_V1450t+                                                       _ -> pat_cond_4+                                   case kl_if_0 of+                                       Atom (B (True)) -> do kl_V1450 `pseq` hd kl_V1450+                                       Atom (B (False)) -> do let pat_cond_5 kl_V1450 kl_V1450h kl_V1450t = do !appl_6 <- kl_V1450t `pseq` kl_shen_embed_and kl_V1450t+                                                                                                               let !appl_7 = Atom Nil+                                                                                                               !appl_8 <- appl_6 `pseq` (appl_7 `pseq` klCons appl_6 appl_7)+                                                                                                               !appl_9 <- kl_V1450h `pseq` (appl_8 `pseq` klCons kl_V1450h appl_8)+                                                                                                               appl_9 `pseq` klCons (Core.Types.Atom (Core.Types.UnboundSym "and")) appl_9+                                                                  pat_cond_10 = do do let !aw_11 = Core.Types.Atom (Core.Types.UnboundSym "shen.f_error")+                                                                                      applyWrapper aw_11 [ApplC (wrapNamed "shen.embed-and" kl_shen_embed_and)]+                                                               in case kl_V1450 of+                                                                      !(kl_V1450@(Cons (!kl_V1450h)+                                                                                       (!kl_V1450t))) -> pat_cond_5 kl_V1450 kl_V1450h kl_V1450t+                                                                      _ -> pat_cond_10+                                       _ -> throwError "if: expected boolean"++kl_shen_err_condition :: Core.Types.KLValue ->+                         Core.Types.KLContext Core.Types.Env Core.Types.KLValue+kl_shen_err_condition (!kl_V1452) = do let !appl_0 = Atom Nil+                                       !appl_1 <- kl_V1452 `pseq` (appl_0 `pseq` klCons kl_V1452 appl_0)+                                       !appl_2 <- appl_1 `pseq` klCons (Core.Types.Atom (Core.Types.UnboundSym "shen.f_error")) appl_1+                                       let !appl_3 = Atom Nil+                                       !appl_4 <- appl_2 `pseq` (appl_3 `pseq` klCons appl_2 appl_3)+                                       appl_4 `pseq` klCons (Atom (B True)) appl_4++kl_shen_sys_error :: Core.Types.KLValue ->+                     Core.Types.KLContext Core.Types.Env Core.Types.KLValue+kl_shen_sys_error (!kl_V1454) = do let !aw_0 = Core.Types.Atom (Core.Types.UnboundSym "shen.app")+                                   !appl_1 <- kl_V1454 `pseq` applyWrapper aw_0 [kl_V1454,+                                                                                 Core.Types.Atom (Core.Types.Str ": unexpected argument\n"),+                                                                                 Core.Types.Atom (Core.Types.UnboundSym "shen.a")]+                                   !appl_2 <- appl_1 `pseq` cn (Core.Types.Atom (Core.Types.Str "system function ")) appl_1+                                   appl_2 `pseq` simpleError appl_2++expr1 :: Core.Types.KLContext Core.Types.Env Core.Types.KLValue+expr1 = do (do return (Core.Types.Atom (Core.Types.Str "Copyright (c) 2015, Mark Tarver\n\nAll rights reserved.\n\nRedistribution and use in source and binary forms, with or without\nmodification, are permitted provided that the following conditions are met:\n1. Redistributions of source code must retain the above copyright\n   notice, this list of conditions and the following disclaimer.\n2. Redistributions in binary form must reproduce the above copyright\n   notice, this list of conditions and the following disclaimer in the\n   documentation and/or other materials provided with the distribution.\n3. The name of Mark Tarver may not be used to endorse or promote products\n   derived from this software without specific prior written permission.\n\nTHIS SOFTWARE IS PROVIDED BY Mark Tarver ''AS IS'' AND ANY\nEXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED\nWARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE\nDISCLAIMED. IN NO EVENT SHALL Mark Tarver BE LIABLE FOR ANY\nDIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES\n(INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;\nLOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND\nON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT\n(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS\nSOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE."))) `catchError` (\(!kl_E) -> do return (Core.Types.Atom (Core.Types.Str "E")))
Shentong/Backend/Declarations.hs view
@@ -1,866 +1,1021 @@-{-# LANGUAGE BangPatterns #-}
-{-# LANGUAGE OverloadedStrings #-}
-{-# LANGUAGE Strict #-}
-{-# LANGUAGE StrictData #-}
-{-# LANGUAGE ViewPatterns #-}
-
-module Backend.Declarations where
-
-import Control.Monad.Except
-import Control.Parallel
-import Environment
-import Primitives as Primitives
-import Backend.Utils
-import Types as Types
-import Utils
-import Wrap
-import Backend.Toplevel
-import Backend.Core
-import Backend.Sys
-import Backend.Sequent
-import Backend.Yacc
-import Backend.Reader
-import Backend.Prolog
-import Backend.Track
-import Backend.Load
-import Backend.Writer
-import Backend.Macros
-
-{-
-Copyright (c) 2015, Mark Tarver
-All rights reserved.
-
-Redistribution and use in source and binary forms, with or without
-modification, are permitted provided that the following conditions are met:
-
-1. Redistributions of source code must retain the above copyright
-   notice, this list of conditions and the following disclaimer.
-2. Redistributions in binary form must reproduce the above copyright
-   notice, this list of conditions and the following disclaimer in the
-   documentation and/or other materials provided with the distribution.
-3. The name of Mark Tarver may not be used to endorse or promote products
-   derived from this software without specific prior written permission.
-
-THIS SOFTWARE IS PROVIDED BY Mark Tarver ''AS IS'' AND ANY
-EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
-WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
-DISCLAIMED. IN NO EVENT SHALL Mark Tarver BE LIABLE FOR ANY
-DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
-(INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
-LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND
-ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
-(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
-SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
--}
-
-kl_shen_initialise_arity_table :: Types.KLValue ->
-                                  Types.KLContext Types.Env Types.KLValue
-kl_shen_initialise_arity_table (!kl_V1456) = do let pat_cond_0 = do return (Types.Atom Types.Nil)
-                                                    pat_cond_1 kl_V1456 kl_V1456h kl_V1456t kl_V1456th kl_V1456tt = do let !appl_2 = ApplC (Func "lambda" (Context (\(!kl_DecArity) -> do kl_V1456tt `pseq` kl_shen_initialise_arity_table kl_V1456tt)))
-                                                                                                                       !appl_3 <- value (Types.Atom (Types.UnboundSym "*property-vector*"))
-                                                                                                                       !appl_4 <- kl_V1456h `pseq` (kl_V1456th `pseq` (appl_3 `pseq` kl_put kl_V1456h (ApplC (wrapNamed "arity" kl_arity)) kl_V1456th appl_3))
-                                                                                                                       appl_4 `pseq` applyWrapper appl_2 [appl_4]
-                                                    pat_cond_5 = do do kl_shen_f_error (ApplC (wrapNamed "shen.initialise_arity_table" kl_shen_initialise_arity_table))
-                                                 in case kl_V1456 of
-                                                        kl_V1456@(Atom (Nil)) -> pat_cond_0
-                                                        !(kl_V1456@(Cons (!kl_V1456h)
-                                                                         (!(kl_V1456t@(Cons (!kl_V1456th)
-                                                                                            (!kl_V1456tt)))))) -> pat_cond_1 kl_V1456 kl_V1456h kl_V1456t kl_V1456th kl_V1456tt
-                                                        _ -> pat_cond_5
-
-kl_arity :: Types.KLValue ->
-            Types.KLContext Types.Env Types.KLValue
-kl_arity (!kl_V1458) = do (do !appl_0 <- value (Types.Atom (Types.UnboundSym "*property-vector*"))
-                              kl_V1458 `pseq` (appl_0 `pseq` kl_get kl_V1458 (ApplC (wrapNamed "arity" kl_arity)) appl_0)) `catchError` (\(!kl_E) -> do return (Types.Atom (Types.N (Types.KI (-1)))))
-
-kl_systemf :: Types.KLValue ->
-              Types.KLContext Types.Env Types.KLValue
-kl_systemf (!kl_V1460) = do let !appl_0 = ApplC (Func "lambda" (Context (\(!kl_Shen) -> do let !appl_1 = ApplC (Func "lambda" (Context (\(!kl_External) -> do let !appl_2 = ApplC (Func "lambda" (Context (\(!kl_Place) -> do return kl_V1460)))
-                                                                                                                                                              !appl_3 <- kl_V1460 `pseq` (kl_External `pseq` kl_adjoin kl_V1460 kl_External)
-                                                                                                                                                              !appl_4 <- value (Types.Atom (Types.UnboundSym "*property-vector*"))
-                                                                                                                                                              !appl_5 <- kl_Shen `pseq` (appl_3 `pseq` (appl_4 `pseq` kl_put kl_Shen (Types.Atom (Types.UnboundSym "shen.external-symbols")) appl_3 appl_4))
-                                                                                                                                                              appl_5 `pseq` applyWrapper appl_2 [appl_5])))
-                                                                                           !appl_6 <- value (Types.Atom (Types.UnboundSym "*property-vector*"))
-                                                                                           !appl_7 <- kl_Shen `pseq` (appl_6 `pseq` kl_get kl_Shen (Types.Atom (Types.UnboundSym "shen.external-symbols")) appl_6)
-                                                                                           appl_7 `pseq` applyWrapper appl_1 [appl_7])))
-                            !appl_8 <- intern (Types.Atom (Types.Str "shen"))
-                            appl_8 `pseq` applyWrapper appl_0 [appl_8]
-
-kl_adjoin :: Types.KLValue ->
-             Types.KLValue -> Types.KLContext Types.Env Types.KLValue
-kl_adjoin (!kl_V1463) (!kl_V1464) = do !kl_if_0 <- kl_V1463 `pseq` (kl_V1464 `pseq` kl_elementP kl_V1463 kl_V1464)
-                                       case kl_if_0 of
-                                           Atom (B (True)) -> do return kl_V1464
-                                           Atom (B (False)) -> do do kl_V1463 `pseq` (kl_V1464 `pseq` klCons kl_V1463 kl_V1464)
-                                           _ -> throwError "if: expected boolean"
-
-kl_shen_symbol_table_entry :: Types.KLValue ->
-                              Types.KLContext Types.Env Types.KLValue
-kl_shen_symbol_table_entry (!kl_V1466) = do let !appl_0 = ApplC (Func "lambda" (Context (\(!kl_ArityF) -> do let pat_cond_1 = do return (Types.Atom Types.Nil)
-                                                                                                                 pat_cond_2 = do do let pat_cond_3 = do return (Types.Atom Types.Nil)
-                                                                                                                                        pat_cond_4 = do do !appl_5 <- kl_V1466 `pseq` (kl_ArityF `pseq` kl_shen_lambda_form kl_V1466 kl_ArityF)
-                                                                                                                                                           !appl_6 <- appl_5 `pseq` evalKL appl_5
-                                                                                                                                                           !appl_7 <- kl_V1466 `pseq` (appl_6 `pseq` klCons kl_V1466 appl_6)
-                                                                                                                                                           appl_7 `pseq` klCons appl_7 (Types.Atom Types.Nil)
-                                                                                                                                     in case kl_ArityF of
-                                                                                                                                            kl_ArityF@(Atom (N (KI 0))) -> pat_cond_3
-                                                                                                                                            _ -> pat_cond_4
-                                                                                                              in case kl_ArityF of
-                                                                                                                     kl_ArityF@(Atom (N (KI (-1)))) -> pat_cond_1
-                                                                                                                     _ -> pat_cond_2)))
-                                            !appl_8 <- kl_V1466 `pseq` kl_arity kl_V1466
-                                            appl_8 `pseq` applyWrapper appl_0 [appl_8]
-
-kl_shen_lambda_form :: Types.KLValue ->
-                       Types.KLValue -> Types.KLContext Types.Env Types.KLValue
-kl_shen_lambda_form (!kl_V1469) (!kl_V1470) = do let pat_cond_0 = do return kl_V1469
-                                                     pat_cond_1 = do do let !appl_2 = ApplC (Func "lambda" (Context (\(!kl_X) -> do !appl_3 <- kl_V1469 `pseq` (kl_X `pseq` kl_shen_add_end kl_V1469 kl_X)
-                                                                                                                                    !appl_4 <- kl_V1470 `pseq` Primitives.subtract kl_V1470 (Types.Atom (Types.N (Types.KI 1)))
-                                                                                                                                    !appl_5 <- appl_3 `pseq` (appl_4 `pseq` kl_shen_lambda_form appl_3 appl_4)
-                                                                                                                                    !appl_6 <- appl_5 `pseq` klCons appl_5 (Types.Atom Types.Nil)
-                                                                                                                                    !appl_7 <- kl_X `pseq` (appl_6 `pseq` klCons kl_X appl_6)
-                                                                                                                                    appl_7 `pseq` klCons (Types.Atom (Types.UnboundSym "lambda")) appl_7)))
-                                                                        !appl_8 <- kl_gensym (Types.Atom (Types.UnboundSym "V"))
-                                                                        appl_8 `pseq` applyWrapper appl_2 [appl_8]
-                                                  in case kl_V1470 of
-                                                         kl_V1470@(Atom (N (KI 0))) -> pat_cond_0
-                                                         _ -> pat_cond_1
-
-kl_shen_add_end :: Types.KLValue ->
-                   Types.KLValue -> Types.KLContext Types.Env Types.KLValue
-kl_shen_add_end (!kl_V1473) (!kl_V1474) = do let pat_cond_0 kl_V1473 kl_V1473h kl_V1473t = do !appl_1 <- kl_V1474 `pseq` klCons kl_V1474 (Types.Atom Types.Nil)
-                                                                                              kl_V1473 `pseq` (appl_1 `pseq` kl_append kl_V1473 appl_1)
-                                                 pat_cond_2 = do do !appl_3 <- kl_V1474 `pseq` klCons kl_V1474 (Types.Atom Types.Nil)
-                                                                    kl_V1473 `pseq` (appl_3 `pseq` klCons kl_V1473 appl_3)
-                                              in case kl_V1473 of
-                                                     !(kl_V1473@(Cons (!kl_V1473h)
-                                                                      (!kl_V1473t))) -> pat_cond_0 kl_V1473 kl_V1473h kl_V1473t
-                                                     _ -> pat_cond_2
-
-kl_specialise :: Types.KLValue ->
-                 Types.KLContext Types.Env Types.KLValue
-kl_specialise (!kl_V1476) = do !appl_0 <- value (Types.Atom (Types.UnboundSym "shen.*special*"))
-                               !appl_1 <- kl_V1476 `pseq` (appl_0 `pseq` klCons kl_V1476 appl_0)
-                               !appl_2 <- appl_1 `pseq` klSet (Types.Atom (Types.UnboundSym "shen.*special*")) appl_1
-                               appl_2 `pseq` (kl_V1476 `pseq` kl_do appl_2 kl_V1476)
-
-kl_unspecialise :: Types.KLValue ->
-                   Types.KLContext Types.Env Types.KLValue
-kl_unspecialise (!kl_V1478) = do !appl_0 <- value (Types.Atom (Types.UnboundSym "shen.*special*"))
-                                 !appl_1 <- kl_V1478 `pseq` (appl_0 `pseq` kl_remove kl_V1478 appl_0)
-                                 !appl_2 <- appl_1 `pseq` klSet (Types.Atom (Types.UnboundSym "shen.*special*")) appl_1
-                                 appl_2 `pseq` (kl_V1478 `pseq` kl_do appl_2 kl_V1478)
-
-expr11 :: Types.KLContext Types.Env Types.KLValue
-expr11 = do (do return (Types.Atom (Types.Str "Copyright (c) 2015, Mark Tarver\n\nAll rights reserved.\n\nRedistribution and use in source and binary forms, with or without\nmodification, are permitted provided that the following conditions are met:\n1. Redistributions of source code must retain the above copyright\n   notice, this list of conditions and the following disclaimer.\n2. Redistributions in binary form must reproduce the above copyright\n   notice, this list of conditions and the following disclaimer in the\n   documentation and/or other materials provided with the distribution.\n3. The name of Mark Tarver may not be used to endorse or promote products\n   derived from this software without specific prior written permission.\n\nTHIS SOFTWARE IS PROVIDED BY Mark Tarver ''AS IS'' AND ANY\nEXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED\nWARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE\nDISCLAIMED. IN NO EVENT SHALL Mark Tarver BE LIABLE FOR ANY\nDIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES\n(INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;\nLOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND\nON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT\n(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS\nSOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE."))) `catchError` (\(!kl_E) -> do return (Types.Atom (Types.Str "E")))
-            (do klSet (Types.Atom (Types.UnboundSym "shen.*installing-kl*")) (Atom (B False))) `catchError` (\(!kl_E) -> do return (Types.Atom (Types.Str "E")))
-            (do klSet (Types.Atom (Types.UnboundSym "shen.*history*")) (Types.Atom Types.Nil)) `catchError` (\(!kl_E) -> do return (Types.Atom (Types.Str "E")))
-            (do klSet (Types.Atom (Types.UnboundSym "shen.*tc*")) (Atom (B False))) `catchError` (\(!kl_E) -> do return (Types.Atom (Types.Str "E")))
-            (do !appl_0 <- kl_vector (Types.Atom (Types.N (Types.KI 20000)))
-                appl_0 `pseq` klSet (Types.Atom (Types.UnboundSym "*property-vector*")) appl_0) `catchError` (\(!kl_E) -> do return (Types.Atom (Types.Str "E")))
-            (do klSet (Types.Atom (Types.UnboundSym "shen.*process-counter*")) (Types.Atom (Types.N (Types.KI 0)))) `catchError` (\(!kl_E) -> do return (Types.Atom (Types.Str "E")))
-            (do !appl_1 <- kl_vector (Types.Atom (Types.N (Types.KI 1000)))
-                appl_1 `pseq` klSet (Types.Atom (Types.UnboundSym "shen.*varcounter*")) appl_1) `catchError` (\(!kl_E) -> do return (Types.Atom (Types.Str "E")))
-            (do !appl_2 <- kl_vector (Types.Atom (Types.N (Types.KI 1000)))
-                appl_2 `pseq` klSet (Types.Atom (Types.UnboundSym "shen.*prologvectors*")) appl_2) `catchError` (\(!kl_E) -> do return (Types.Atom (Types.Str "E")))
-            (do !appl_3 <- klCons (ApplC (wrapNamed "shen.function-macro" kl_shen_function_macro)) (Types.Atom Types.Nil)
-                !appl_4 <- appl_3 `pseq` klCons (ApplC (wrapNamed "shen.defprolog-macro" kl_shen_defprolog_macro)) appl_3
-                !appl_5 <- appl_4 `pseq` klCons (ApplC (wrapNamed "shen.@s-macro" kl_shen_Ats_macro)) appl_4
-                !appl_6 <- appl_5 `pseq` klCons (ApplC (wrapNamed "shen.nl-macro" kl_shen_nl_macro)) appl_5
-                !appl_7 <- appl_6 `pseq` klCons (ApplC (wrapNamed "shen.synonyms-macro" kl_shen_synonyms_macro)) appl_6
-                !appl_8 <- appl_7 `pseq` klCons (ApplC (wrapNamed "shen.prolog-macro" kl_shen_prolog_macro)) appl_7
-                !appl_9 <- appl_8 `pseq` klCons (ApplC (wrapNamed "shen.error-macro" kl_shen_error_macro)) appl_8
-                !appl_10 <- appl_9 `pseq` klCons (ApplC (wrapNamed "shen.input-macro" kl_shen_input_macro)) appl_9
-                !appl_11 <- appl_10 `pseq` klCons (ApplC (wrapNamed "shen.output-macro" kl_shen_output_macro)) appl_10
-                !appl_12 <- appl_11 `pseq` klCons (ApplC (wrapNamed "shen.make-string-macro" kl_shen_make_string_macro)) appl_11
-                !appl_13 <- appl_12 `pseq` klCons (ApplC (wrapNamed "shen.assoc-macro" kl_shen_assoc_macro)) appl_12
-                !appl_14 <- appl_13 `pseq` klCons (ApplC (wrapNamed "shen.let-macro" kl_shen_let_macro)) appl_13
-                !appl_15 <- appl_14 `pseq` klCons (ApplC (wrapNamed "shen.datatype-macro" kl_shen_datatype_macro)) appl_14
-                !appl_16 <- appl_15 `pseq` klCons (ApplC (wrapNamed "shen.compile-macro" kl_shen_compile_macro)) appl_15
-                !appl_17 <- appl_16 `pseq` klCons (ApplC (wrapNamed "shen.put/get-macro" kl_shen_putDivget_macro)) appl_16
-                !appl_18 <- appl_17 `pseq` klCons (ApplC (wrapNamed "shen.abs-macro" kl_shen_abs_macro)) appl_17
-                !appl_19 <- appl_18 `pseq` klCons (ApplC (wrapNamed "shen.cases-macro" kl_shen_cases_macro)) appl_18
-                !appl_20 <- appl_19 `pseq` klCons (ApplC (wrapNamed "shen.timer-macro" kl_shen_timer_macro)) appl_19
-                appl_20 `pseq` klSet (Types.Atom (Types.UnboundSym "shen.*macroreg*")) appl_20) `catchError` (\(!kl_E) -> do return (Types.Atom (Types.Str "E")))
-            (do let !appl_21 = ApplC (Func "lambda" (Context (\(!kl_X) -> do kl_X `pseq` kl_shen_timer_macro kl_X)))
-                let !appl_22 = ApplC (Func "lambda" (Context (\(!kl_X) -> do kl_X `pseq` kl_shen_cases_macro kl_X)))
-                let !appl_23 = ApplC (Func "lambda" (Context (\(!kl_X) -> do kl_X `pseq` kl_shen_abs_macro kl_X)))
-                let !appl_24 = ApplC (Func "lambda" (Context (\(!kl_X) -> do kl_X `pseq` kl_shen_putDivget_macro kl_X)))
-                let !appl_25 = ApplC (Func "lambda" (Context (\(!kl_X) -> do kl_X `pseq` kl_shen_compile_macro kl_X)))
-                let !appl_26 = ApplC (Func "lambda" (Context (\(!kl_X) -> do kl_X `pseq` kl_shen_datatype_macro kl_X)))
-                let !appl_27 = ApplC (Func "lambda" (Context (\(!kl_X) -> do kl_X `pseq` kl_shen_let_macro kl_X)))
-                let !appl_28 = ApplC (Func "lambda" (Context (\(!kl_X) -> do kl_X `pseq` kl_shen_assoc_macro kl_X)))
-                let !appl_29 = ApplC (Func "lambda" (Context (\(!kl_X) -> do kl_X `pseq` kl_shen_make_string_macro kl_X)))
-                let !appl_30 = ApplC (Func "lambda" (Context (\(!kl_X) -> do kl_X `pseq` kl_shen_output_macro kl_X)))
-                let !appl_31 = ApplC (Func "lambda" (Context (\(!kl_X) -> do kl_X `pseq` kl_shen_input_macro kl_X)))
-                let !appl_32 = ApplC (Func "lambda" (Context (\(!kl_X) -> do kl_X `pseq` kl_shen_error_macro kl_X)))
-                let !appl_33 = ApplC (Func "lambda" (Context (\(!kl_X) -> do kl_X `pseq` kl_shen_prolog_macro kl_X)))
-                let !appl_34 = ApplC (Func "lambda" (Context (\(!kl_X) -> do kl_X `pseq` kl_shen_synonyms_macro kl_X)))
-                let !appl_35 = ApplC (Func "lambda" (Context (\(!kl_X) -> do kl_X `pseq` kl_shen_nl_macro kl_X)))
-                let !appl_36 = ApplC (Func "lambda" (Context (\(!kl_X) -> do kl_X `pseq` kl_shen_Ats_macro kl_X)))
-                let !appl_37 = ApplC (Func "lambda" (Context (\(!kl_X) -> do kl_X `pseq` kl_shen_defprolog_macro kl_X)))
-                let !appl_38 = ApplC (Func "lambda" (Context (\(!kl_X) -> do kl_X `pseq` kl_shen_function_macro kl_X)))
-                !appl_39 <- appl_38 `pseq` klCons appl_38 (Types.Atom Types.Nil)
-                !appl_40 <- appl_37 `pseq` (appl_39 `pseq` klCons appl_37 appl_39)
-                !appl_41 <- appl_36 `pseq` (appl_40 `pseq` klCons appl_36 appl_40)
-                !appl_42 <- appl_35 `pseq` (appl_41 `pseq` klCons appl_35 appl_41)
-                !appl_43 <- appl_34 `pseq` (appl_42 `pseq` klCons appl_34 appl_42)
-                !appl_44 <- appl_33 `pseq` (appl_43 `pseq` klCons appl_33 appl_43)
-                !appl_45 <- appl_32 `pseq` (appl_44 `pseq` klCons appl_32 appl_44)
-                !appl_46 <- appl_31 `pseq` (appl_45 `pseq` klCons appl_31 appl_45)
-                !appl_47 <- appl_30 `pseq` (appl_46 `pseq` klCons appl_30 appl_46)
-                !appl_48 <- appl_29 `pseq` (appl_47 `pseq` klCons appl_29 appl_47)
-                !appl_49 <- appl_28 `pseq` (appl_48 `pseq` klCons appl_28 appl_48)
-                !appl_50 <- appl_27 `pseq` (appl_49 `pseq` klCons appl_27 appl_49)
-                !appl_51 <- appl_26 `pseq` (appl_50 `pseq` klCons appl_26 appl_50)
-                !appl_52 <- appl_25 `pseq` (appl_51 `pseq` klCons appl_25 appl_51)
-                !appl_53 <- appl_24 `pseq` (appl_52 `pseq` klCons appl_24 appl_52)
-                !appl_54 <- appl_23 `pseq` (appl_53 `pseq` klCons appl_23 appl_53)
-                !appl_55 <- appl_22 `pseq` (appl_54 `pseq` klCons appl_22 appl_54)
-                !appl_56 <- appl_21 `pseq` (appl_55 `pseq` klCons appl_21 appl_55)
-                appl_56 `pseq` klSet (Types.Atom (Types.UnboundSym "*macros*")) appl_56) `catchError` (\(!kl_E) -> do return (Types.Atom (Types.Str "E")))
-            (do klSet (Types.Atom (Types.UnboundSym "*home-directory*")) (Types.Atom Types.Nil)) `catchError` (\(!kl_E) -> do return (Types.Atom (Types.Str "E")))
-            (do klSet (Types.Atom (Types.UnboundSym "shen.*gensym*")) (Types.Atom (Types.N (Types.KI 0)))) `catchError` (\(!kl_E) -> do return (Types.Atom (Types.Str "E")))
-            (do klSet (Types.Atom (Types.UnboundSym "shen.*tracking*")) (Types.Atom Types.Nil)) `catchError` (\(!kl_E) -> do return (Types.Atom (Types.Str "E")))
-            (do klSet (Types.Atom (Types.UnboundSym "*home-directory*")) (Types.Atom (Types.Str ""))) `catchError` (\(!kl_E) -> do return (Types.Atom (Types.Str "E")))
-            (do !appl_57 <- klCons (Types.Atom (Types.UnboundSym "Z")) (Types.Atom Types.Nil)
-                !appl_58 <- appl_57 `pseq` klCons (Types.Atom (Types.UnboundSym "Y")) appl_57
-                !appl_59 <- appl_58 `pseq` klCons (Types.Atom (Types.UnboundSym "X")) appl_58
-                !appl_60 <- appl_59 `pseq` klCons (Types.Atom (Types.UnboundSym "W")) appl_59
-                !appl_61 <- appl_60 `pseq` klCons (Types.Atom (Types.UnboundSym "V")) appl_60
-                !appl_62 <- appl_61 `pseq` klCons (Types.Atom (Types.UnboundSym "U")) appl_61
-                !appl_63 <- appl_62 `pseq` klCons (Types.Atom (Types.UnboundSym "T")) appl_62
-                !appl_64 <- appl_63 `pseq` klCons (Types.Atom (Types.UnboundSym "S")) appl_63
-                !appl_65 <- appl_64 `pseq` klCons (Types.Atom (Types.UnboundSym "R")) appl_64
-                !appl_66 <- appl_65 `pseq` klCons (Types.Atom (Types.UnboundSym "Q")) appl_65
-                !appl_67 <- appl_66 `pseq` klCons (Types.Atom (Types.UnboundSym "P")) appl_66
-                !appl_68 <- appl_67 `pseq` klCons (Types.Atom (Types.UnboundSym "O")) appl_67
-                !appl_69 <- appl_68 `pseq` klCons (Types.Atom (Types.UnboundSym "N")) appl_68
-                !appl_70 <- appl_69 `pseq` klCons (Types.Atom (Types.UnboundSym "M")) appl_69
-                !appl_71 <- appl_70 `pseq` klCons (Types.Atom (Types.UnboundSym "L")) appl_70
-                !appl_72 <- appl_71 `pseq` klCons (Types.Atom (Types.UnboundSym "K")) appl_71
-                !appl_73 <- appl_72 `pseq` klCons (Types.Atom (Types.UnboundSym "J")) appl_72
-                !appl_74 <- appl_73 `pseq` klCons (Types.Atom (Types.UnboundSym "I")) appl_73
-                !appl_75 <- appl_74 `pseq` klCons (Types.Atom (Types.UnboundSym "H")) appl_74
-                !appl_76 <- appl_75 `pseq` klCons (Types.Atom (Types.UnboundSym "G")) appl_75
-                !appl_77 <- appl_76 `pseq` klCons (Types.Atom (Types.UnboundSym "F")) appl_76
-                !appl_78 <- appl_77 `pseq` klCons (Types.Atom (Types.UnboundSym "E")) appl_77
-                !appl_79 <- appl_78 `pseq` klCons (Types.Atom (Types.UnboundSym "D")) appl_78
-                !appl_80 <- appl_79 `pseq` klCons (Types.Atom (Types.UnboundSym "C")) appl_79
-                !appl_81 <- appl_80 `pseq` klCons (Types.Atom (Types.UnboundSym "B")) appl_80
-                !appl_82 <- appl_81 `pseq` klCons (Types.Atom (Types.UnboundSym "A")) appl_81
-                appl_82 `pseq` klSet (Types.Atom (Types.UnboundSym "shen.*alphabet*")) appl_82) `catchError` (\(!kl_E) -> do return (Types.Atom (Types.Str "E")))
-            (do !appl_83 <- klCons (ApplC (wrapNamed "open" openStream)) (Types.Atom Types.Nil)
-                !appl_84 <- appl_83 `pseq` klCons (ApplC (wrapNamed "set" klSet)) appl_83
-                !appl_85 <- appl_84 `pseq` klCons (Types.Atom (Types.UnboundSym "where")) appl_84
-                !appl_86 <- appl_85 `pseq` klCons (Types.Atom (Types.UnboundSym "let")) appl_85
-                !appl_87 <- appl_86 `pseq` klCons (Types.Atom (Types.UnboundSym "lambda")) appl_86
-                !appl_88 <- appl_87 `pseq` klCons (ApplC (wrapNamed "cons" klCons)) appl_87
-                !appl_89 <- appl_88 `pseq` klCons (ApplC (wrapNamed "@v" kl_Atv)) appl_88
-                !appl_90 <- appl_89 `pseq` klCons (ApplC (wrapNamed "@s" kl_Ats)) appl_89
-                !appl_91 <- appl_90 `pseq` klCons (ApplC (wrapNamed "@p" kl_Atp)) appl_90
-                appl_91 `pseq` klSet (Types.Atom (Types.UnboundSym "shen.*special*")) appl_91) `catchError` (\(!kl_E) -> do return (Types.Atom (Types.Str "E")))
-            (do !appl_92 <- klCons (Types.Atom (Types.UnboundSym "defmacro")) (Types.Atom Types.Nil)
-                !appl_93 <- appl_92 `pseq` klCons (Types.Atom (Types.UnboundSym "shen.read+")) appl_92
-                !appl_94 <- appl_93 `pseq` klCons (Types.Atom (Types.UnboundSym "defcc")) appl_93
-                !appl_95 <- appl_94 `pseq` klCons (ApplC (wrapNamed "input+" kl_inputPlus)) appl_94
-                !appl_96 <- appl_95 `pseq` klCons (ApplC (wrapNamed "shen.process-datatype" kl_shen_process_datatype)) appl_95
-                !appl_97 <- appl_96 `pseq` klCons (Types.Atom (Types.UnboundSym "define")) appl_96
-                appl_97 `pseq` klSet (Types.Atom (Types.UnboundSym "shen.*extraspecial*")) appl_97) `catchError` (\(!kl_E) -> do return (Types.Atom (Types.Str "E")))
-            (do klSet (Types.Atom (Types.UnboundSym "shen.*spy*")) (Atom (B False))) `catchError` (\(!kl_E) -> do return (Types.Atom (Types.Str "E")))
-            (do klSet (Types.Atom (Types.UnboundSym "shen.*datatypes*")) (Types.Atom Types.Nil)) `catchError` (\(!kl_E) -> do return (Types.Atom (Types.Str "E")))
-            (do klSet (Types.Atom (Types.UnboundSym "shen.*alldatatypes*")) (Types.Atom Types.Nil)) `catchError` (\(!kl_E) -> do return (Types.Atom (Types.Str "E")))
-            (do klSet (Types.Atom (Types.UnboundSym "shen.*shen-type-theory-enabled?*")) (Atom (B True))) `catchError` (\(!kl_E) -> do return (Types.Atom (Types.Str "E")))
-            (do klSet (Types.Atom (Types.UnboundSym "shen.*synonyms*")) (Types.Atom Types.Nil)) `catchError` (\(!kl_E) -> do return (Types.Atom (Types.Str "E")))
-            (do klSet (Types.Atom (Types.UnboundSym "shen.*system*")) (Types.Atom Types.Nil)) `catchError` (\(!kl_E) -> do return (Types.Atom (Types.Str "E")))
-            (do klSet (Types.Atom (Types.UnboundSym "shen.*signedfuncs*")) (Types.Atom Types.Nil)) `catchError` (\(!kl_E) -> do return (Types.Atom (Types.Str "E")))
-            (do klSet (Types.Atom (Types.UnboundSym "shen.*maxcomplexity*")) (Types.Atom (Types.N (Types.KI 128)))) `catchError` (\(!kl_E) -> do return (Types.Atom (Types.Str "E")))
-            (do klSet (Types.Atom (Types.UnboundSym "shen.*occurs*")) (Atom (B True))) `catchError` (\(!kl_E) -> do return (Types.Atom (Types.Str "E")))
-            (do klSet (Types.Atom (Types.UnboundSym "shen.*maxinferences*")) (Types.Atom (Types.N (Types.KI 1000000)))) `catchError` (\(!kl_E) -> do return (Types.Atom (Types.Str "E")))
-            (do klSet (Types.Atom (Types.UnboundSym "*maximum-print-sequence-size*")) (Types.Atom (Types.N (Types.KI 20)))) `catchError` (\(!kl_E) -> do return (Types.Atom (Types.Str "E")))
-            (do klSet (Types.Atom (Types.UnboundSym "shen.*catch*")) (Types.Atom (Types.N (Types.KI 0)))) `catchError` (\(!kl_E) -> do return (Types.Atom (Types.Str "E")))
-            (do klSet (Types.Atom (Types.UnboundSym "shen.*call*")) (Types.Atom (Types.N (Types.KI 0)))) `catchError` (\(!kl_E) -> do return (Types.Atom (Types.Str "E")))
-            (do klSet (Types.Atom (Types.UnboundSym "shen.*infs*")) (Types.Atom (Types.N (Types.KI 0)))) `catchError` (\(!kl_E) -> do return (Types.Atom (Types.Str "E")))
-            (do klSet (Types.Atom (Types.UnboundSym "*hush*")) (Atom (B False))) `catchError` (\(!kl_E) -> do return (Types.Atom (Types.Str "E")))
-            (do klSet (Types.Atom (Types.UnboundSym "shen.*optimise*")) (Atom (B False))) `catchError` (\(!kl_E) -> do return (Types.Atom (Types.Str "E")))
-            (do klSet (Types.Atom (Types.UnboundSym "*version*")) (Types.Atom (Types.Str "Shen 19.1"))) `catchError` (\(!kl_E) -> do return (Types.Atom (Types.Str "E")))
-            (do !appl_98 <- klCons (Types.Atom (Types.N (Types.KI 1))) (Types.Atom Types.Nil)
-                !appl_99 <- appl_98 `pseq` klCons (ApplC (wrapNamed "include-all-but" kl_include_all_but)) appl_98
-                !appl_100 <- appl_99 `pseq` klCons (Types.Atom (Types.N (Types.KI 1))) appl_99
-                !appl_101 <- appl_100 `pseq` klCons (ApplC (wrapNamed "preclude-all-but" kl_preclude_all_but)) appl_100
-                !appl_102 <- appl_101 `pseq` klCons (Types.Atom (Types.N (Types.KI 1))) appl_101
-                !appl_103 <- appl_102 `pseq` klCons (ApplC (wrapNamed "include" kl_include)) appl_102
-                !appl_104 <- appl_103 `pseq` klCons (Types.Atom (Types.N (Types.KI 1))) appl_103
-                !appl_105 <- appl_104 `pseq` klCons (ApplC (wrapNamed "preclude" kl_preclude)) appl_104
-                !appl_106 <- appl_105 `pseq` klCons (Types.Atom (Types.N (Types.KI 2))) appl_105
-                !appl_107 <- appl_106 `pseq` klCons (ApplC (wrapNamed "@s" kl_Ats)) appl_106
-                !appl_108 <- appl_107 `pseq` klCons (Types.Atom (Types.N (Types.KI 2))) appl_107
-                !appl_109 <- appl_108 `pseq` klCons (ApplC (wrapNamed "@v" kl_Atv)) appl_108
-                !appl_110 <- appl_109 `pseq` klCons (Types.Atom (Types.N (Types.KI 2))) appl_109
-                !appl_111 <- appl_110 `pseq` klCons (ApplC (wrapNamed "@p" kl_Atp)) appl_110
-                !appl_112 <- appl_111 `pseq` klCons (Types.Atom (Types.N (Types.KI 1))) appl_111
-                !appl_113 <- appl_112 `pseq` klCons (ApplC (wrapNamed "<e>" kl_LBeRB)) appl_112
-                !appl_114 <- appl_113 `pseq` klCons (Types.Atom (Types.N (Types.KI 2))) appl_113
-                !appl_115 <- appl_114 `pseq` klCons (ApplC (wrapNamed "==" kl_EqEq)) appl_114
-                !appl_116 <- appl_115 `pseq` klCons (Types.Atom (Types.N (Types.KI 2))) appl_115
-                !appl_117 <- appl_116 `pseq` klCons (ApplC (wrapNamed "-" Primitives.subtract)) appl_116
-                !appl_118 <- appl_117 `pseq` klCons (Types.Atom (Types.N (Types.KI 2))) appl_117
-                !appl_119 <- appl_118 `pseq` klCons (ApplC (wrapNamed "/" divide)) appl_118
-                !appl_120 <- appl_119 `pseq` klCons (Types.Atom (Types.N (Types.KI 2))) appl_119
-                !appl_121 <- appl_120 `pseq` klCons (ApplC (wrapNamed "*" multiply)) appl_120
-                !appl_122 <- appl_121 `pseq` klCons (Types.Atom (Types.N (Types.KI 2))) appl_121
-                !appl_123 <- appl_122 `pseq` klCons (ApplC (wrapNamed "+" add)) appl_122
-                !appl_124 <- appl_123 `pseq` klCons (Types.Atom (Types.N (Types.KI 1))) appl_123
-                !appl_125 <- appl_124 `pseq` klCons (ApplC (wrapNamed "y-or-n?" kl_y_or_nP)) appl_124
-                !appl_126 <- appl_125 `pseq` klCons (Types.Atom (Types.N (Types.KI 2))) appl_125
-                !appl_127 <- appl_126 `pseq` klCons (ApplC (wrapNamed "write-to-file" kl_write_to_file)) appl_126
-                !appl_128 <- appl_127 `pseq` klCons (Types.Atom (Types.N (Types.KI 2))) appl_127
-                !appl_129 <- appl_128 `pseq` klCons (ApplC (wrapNamed "write-byte" writeByte)) appl_128
-                !appl_130 <- appl_129 `pseq` klCons (Types.Atom (Types.N (Types.KI 0))) appl_129
-                !appl_131 <- appl_130 `pseq` klCons (ApplC (PL "version" kl_version)) appl_130
-                !appl_132 <- appl_131 `pseq` klCons (Types.Atom (Types.N (Types.KI 1))) appl_131
-                !appl_133 <- appl_132 `pseq` klCons (ApplC (wrapNamed "variable?" kl_variableP)) appl_132
-                !appl_134 <- appl_133 `pseq` klCons (Types.Atom (Types.N (Types.KI 1))) appl_133
-                !appl_135 <- appl_134 `pseq` klCons (ApplC (wrapNamed "value" value)) appl_134
-                !appl_136 <- appl_135 `pseq` klCons (Types.Atom (Types.N (Types.KI 3))) appl_135
-                !appl_137 <- appl_136 `pseq` klCons (ApplC (wrapNamed "vector->" kl_vector_RB)) appl_136
-                !appl_138 <- appl_137 `pseq` klCons (Types.Atom (Types.N (Types.KI 1))) appl_137
-                !appl_139 <- appl_138 `pseq` klCons (ApplC (wrapNamed "vector" kl_vector)) appl_138
-                !appl_140 <- appl_139 `pseq` klCons (Types.Atom (Types.N (Types.KI 1))) appl_139
-                !appl_141 <- appl_140 `pseq` klCons (ApplC (wrapNamed "undefmacro" kl_undefmacro)) appl_140
-                !appl_142 <- appl_141 `pseq` klCons (Types.Atom (Types.N (Types.KI 1))) appl_141
-                !appl_143 <- appl_142 `pseq` klCons (ApplC (wrapNamed "unspecialise" kl_unspecialise)) appl_142
-                !appl_144 <- appl_143 `pseq` klCons (Types.Atom (Types.N (Types.KI 1))) appl_143
-                !appl_145 <- appl_144 `pseq` klCons (ApplC (wrapNamed "untrack" kl_untrack)) appl_144
-                !appl_146 <- appl_145 `pseq` klCons (Types.Atom (Types.N (Types.KI 2))) appl_145
-                !appl_147 <- appl_146 `pseq` klCons (ApplC (wrapNamed "union" kl_union)) appl_146
-                !appl_148 <- appl_147 `pseq` klCons (Types.Atom (Types.N (Types.KI 4))) appl_147
-                !appl_149 <- appl_148 `pseq` klCons (ApplC (wrapNamed "unify!" kl_unifyExcl)) appl_148
-                !appl_150 <- appl_149 `pseq` klCons (Types.Atom (Types.N (Types.KI 4))) appl_149
-                !appl_151 <- appl_150 `pseq` klCons (ApplC (wrapNamed "unify" kl_unify)) appl_150
-                !appl_152 <- appl_151 `pseq` klCons (Types.Atom (Types.N (Types.KI 1))) appl_151
-                !appl_153 <- appl_152 `pseq` klCons (ApplC (wrapNamed "unprofile" kl_unprofile)) appl_152
-                !appl_154 <- appl_153 `pseq` klCons (Types.Atom (Types.N (Types.KI 3))) appl_153
-                !appl_155 <- appl_154 `pseq` klCons (ApplC (wrapNamed "unput" kl_unput)) appl_154
-                !appl_156 <- appl_155 `pseq` klCons (Types.Atom (Types.N (Types.KI 1))) appl_155
-                !appl_157 <- appl_156 `pseq` klCons (ApplC (wrapNamed "undefmacro" kl_undefmacro)) appl_156
-                !appl_158 <- appl_157 `pseq` klCons (Types.Atom (Types.N (Types.KI 3))) appl_157
-                !appl_159 <- appl_158 `pseq` klCons (ApplC (wrapNamed "return" kl_return)) appl_158
-                !appl_160 <- appl_159 `pseq` klCons (Types.Atom (Types.N (Types.KI 2))) appl_159
-                !appl_161 <- appl_160 `pseq` klCons (ApplC (wrapNamed "type" typeA)) appl_160
-                !appl_162 <- appl_161 `pseq` klCons (Types.Atom (Types.N (Types.KI 1))) appl_161
-                !appl_163 <- appl_162 `pseq` klCons (ApplC (wrapNamed "tuple?" kl_tupleP)) appl_162
-                !appl_164 <- appl_163 `pseq` klCons (Types.Atom (Types.N (Types.KI 2))) appl_163
-                !appl_165 <- appl_164 `pseq` klCons (Types.Atom (Types.UnboundSym "trap-error")) appl_164
-                !appl_166 <- appl_165 `pseq` klCons (Types.Atom (Types.N (Types.KI 1))) appl_165
-                !appl_167 <- appl_166 `pseq` klCons (ApplC (wrapNamed "track" kl_track)) appl_166
-                !appl_168 <- appl_167 `pseq` klCons (Types.Atom (Types.N (Types.KI 1))) appl_167
-                !appl_169 <- appl_168 `pseq` klCons (ApplC (wrapNamed "tlstr" tlstr)) appl_168
-                !appl_170 <- appl_169 `pseq` klCons (Types.Atom (Types.N (Types.KI 1))) appl_169
-                !appl_171 <- appl_170 `pseq` klCons (ApplC (wrapNamed "thaw" kl_thaw)) appl_170
-                !appl_172 <- appl_171 `pseq` klCons (Types.Atom (Types.N (Types.KI 0))) appl_171
-                !appl_173 <- appl_172 `pseq` klCons (ApplC (PL "tc?" kl_tcP)) appl_172
-                !appl_174 <- appl_173 `pseq` klCons (Types.Atom (Types.N (Types.KI 1))) appl_173
-                !appl_175 <- appl_174 `pseq` klCons (ApplC (wrapNamed "tc" kl_tc)) appl_174
-                !appl_176 <- appl_175 `pseq` klCons (Types.Atom (Types.N (Types.KI 1))) appl_175
-                !appl_177 <- appl_176 `pseq` klCons (ApplC (wrapNamed "tl" tl)) appl_176
-                !appl_178 <- appl_177 `pseq` klCons (Types.Atom (Types.N (Types.KI 1))) appl_177
-                !appl_179 <- appl_178 `pseq` klCons (ApplC (wrapNamed "tail" kl_tail)) appl_178
-                !appl_180 <- appl_179 `pseq` klCons (Types.Atom (Types.N (Types.KI 1))) appl_179
-                !appl_181 <- appl_180 `pseq` klCons (ApplC (wrapNamed "systemf" kl_systemf)) appl_180
-                !appl_182 <- appl_181 `pseq` klCons (Types.Atom (Types.N (Types.KI 1))) appl_181
-                !appl_183 <- appl_182 `pseq` klCons (ApplC (wrapNamed "symbol?" kl_symbolP)) appl_182
-                !appl_184 <- appl_183 `pseq` klCons (Types.Atom (Types.N (Types.KI 1))) appl_183
-                !appl_185 <- appl_184 `pseq` klCons (ApplC (wrapNamed "sum" kl_sum)) appl_184
-                !appl_186 <- appl_185 `pseq` klCons (Types.Atom (Types.N (Types.KI 3))) appl_185
-                !appl_187 <- appl_186 `pseq` klCons (ApplC (wrapNamed "subst" kl_subst)) appl_186
-                !appl_188 <- appl_187 `pseq` klCons (Types.Atom (Types.N (Types.KI 1))) appl_187
-                !appl_189 <- appl_188 `pseq` klCons (ApplC (wrapNamed "string?" stringP)) appl_188
-                !appl_190 <- appl_189 `pseq` klCons (Types.Atom (Types.N (Types.KI 1))) appl_189
-                !appl_191 <- appl_190 `pseq` klCons (ApplC (wrapNamed "string->symbol" kl_string_RBsymbol)) appl_190
-                !appl_192 <- appl_191 `pseq` klCons (Types.Atom (Types.N (Types.KI 1))) appl_191
-                !appl_193 <- appl_192 `pseq` klCons (ApplC (wrapNamed "string->n" stringToN)) appl_192
-                !appl_194 <- appl_193 `pseq` klCons (Types.Atom (Types.N (Types.KI 0))) appl_193
-                !appl_195 <- appl_194 `pseq` klCons (ApplC (PL "stoutput" kl_stoutput)) appl_194
-                !appl_196 <- appl_195 `pseq` klCons (Types.Atom (Types.N (Types.KI 0))) appl_195
-                !appl_197 <- appl_196 `pseq` klCons (ApplC (PL "stinput" kl_stinput)) appl_196
-                !appl_198 <- appl_197 `pseq` klCons (Types.Atom (Types.N (Types.KI 1))) appl_197
-                !appl_199 <- appl_198 `pseq` klCons (ApplC (wrapNamed "step" kl_step)) appl_198
-                !appl_200 <- appl_199 `pseq` klCons (Types.Atom (Types.N (Types.KI 1))) appl_199
-                !appl_201 <- appl_200 `pseq` klCons (ApplC (wrapNamed "spy" kl_spy)) appl_200
-                !appl_202 <- appl_201 `pseq` klCons (Types.Atom (Types.N (Types.KI 1))) appl_201
-                !appl_203 <- appl_202 `pseq` klCons (ApplC (wrapNamed "specialise" kl_specialise)) appl_202
-                !appl_204 <- appl_203 `pseq` klCons (Types.Atom (Types.N (Types.KI 1))) appl_203
-                !appl_205 <- appl_204 `pseq` klCons (ApplC (wrapNamed "snd" kl_snd)) appl_204
-                !appl_206 <- appl_205 `pseq` klCons (Types.Atom (Types.N (Types.KI 1))) appl_205
-                !appl_207 <- appl_206 `pseq` klCons (ApplC (wrapNamed "simple-error" simpleError)) appl_206
-                !appl_208 <- appl_207 `pseq` klCons (Types.Atom (Types.N (Types.KI 2))) appl_207
-                !appl_209 <- appl_208 `pseq` klCons (ApplC (wrapNamed "set" klSet)) appl_208
-                !appl_210 <- appl_209 `pseq` klCons (Types.Atom (Types.N (Types.KI 1))) appl_209
-                !appl_211 <- appl_210 `pseq` klCons (ApplC (wrapNamed "reverse" kl_reverse)) appl_210
-                !appl_212 <- appl_211 `pseq` klCons (Types.Atom (Types.N (Types.KI 3))) appl_211
-                !appl_213 <- appl_212 `pseq` klCons (Types.Atom (Types.UnboundSym "require")) appl_212
-                !appl_214 <- appl_213 `pseq` klCons (Types.Atom (Types.N (Types.KI 2))) appl_213
-                !appl_215 <- appl_214 `pseq` klCons (ApplC (wrapNamed "remove" kl_remove)) appl_214
-                !appl_216 <- appl_215 `pseq` klCons (Types.Atom (Types.N (Types.KI 0))) appl_215
-                !appl_217 <- appl_216 `pseq` klCons (ApplC (PL "release" kl_release)) appl_216
-                !appl_218 <- appl_217 `pseq` klCons (Types.Atom (Types.N (Types.KI 1))) appl_217
-                !appl_219 <- appl_218 `pseq` klCons (ApplC (wrapNamed "read-from-string" kl_read_from_string)) appl_218
-                !appl_220 <- appl_219 `pseq` klCons (Types.Atom (Types.N (Types.KI 1))) appl_219
-                !appl_221 <- appl_220 `pseq` klCons (ApplC (wrapNamed "read-byte" readByte)) appl_220
-                !appl_222 <- appl_221 `pseq` klCons (Types.Atom (Types.N (Types.KI 1))) appl_221
-                !appl_223 <- appl_222 `pseq` klCons (ApplC (wrapNamed "read" kl_read)) appl_222
-                !appl_224 <- appl_223 `pseq` klCons (Types.Atom (Types.N (Types.KI 1))) appl_223
-                !appl_225 <- appl_224 `pseq` klCons (ApplC (wrapNamed "read-file" kl_read_file)) appl_224
-                !appl_226 <- appl_225 `pseq` klCons (Types.Atom (Types.N (Types.KI 1))) appl_225
-                !appl_227 <- appl_226 `pseq` klCons (ApplC (wrapNamed "read-file-as-string" kl_read_file_as_string)) appl_226
-                !appl_228 <- appl_227 `pseq` klCons (Types.Atom (Types.N (Types.KI 2))) appl_227
-                !appl_229 <- appl_228 `pseq` klCons (Types.Atom (Types.UnboundSym "shen.reassemble")) appl_228
-                !appl_230 <- appl_229 `pseq` klCons (Types.Atom (Types.N (Types.KI 4))) appl_229
-                !appl_231 <- appl_230 `pseq` klCons (ApplC (wrapNamed "put" kl_put)) appl_230
-                !appl_232 <- appl_231 `pseq` klCons (Types.Atom (Types.N (Types.KI 3))) appl_231
-                !appl_233 <- appl_232 `pseq` klCons (ApplC (wrapNamed "address->" addressTo)) appl_232
-                !appl_234 <- appl_233 `pseq` klCons (Types.Atom (Types.N (Types.KI 1))) appl_233
-                !appl_235 <- appl_234 `pseq` klCons (ApplC (wrapNamed "protect" kl_protect)) appl_234
-                !appl_236 <- appl_235 `pseq` klCons (Types.Atom (Types.N (Types.KI 1))) appl_235
-                !appl_237 <- appl_236 `pseq` klCons (ApplC (wrapNamed "preclude-all-but" kl_preclude_all_but)) appl_236
-                !appl_238 <- appl_237 `pseq` klCons (Types.Atom (Types.N (Types.KI 1))) appl_237
-                !appl_239 <- appl_238 `pseq` klCons (ApplC (wrapNamed "preclude" kl_preclude)) appl_238
-                !appl_240 <- appl_239 `pseq` klCons (Types.Atom (Types.N (Types.KI 1))) appl_239
-                !appl_241 <- appl_240 `pseq` klCons (ApplC (wrapNamed "ps" kl_ps)) appl_240
-                !appl_242 <- appl_241 `pseq` klCons (Types.Atom (Types.N (Types.KI 2))) appl_241
-                !appl_243 <- appl_242 `pseq` klCons (ApplC (wrapNamed "pr" kl_pr)) appl_242
-                !appl_244 <- appl_243 `pseq` klCons (Types.Atom (Types.N (Types.KI 1))) appl_243
-                !appl_245 <- appl_244 `pseq` klCons (ApplC (wrapNamed "profile-results" kl_profile_results)) appl_244
-                !appl_246 <- appl_245 `pseq` klCons (Types.Atom (Types.N (Types.KI 1))) appl_245
-                !appl_247 <- appl_246 `pseq` klCons (ApplC (wrapNamed "profile" kl_profile)) appl_246
-                !appl_248 <- appl_247 `pseq` klCons (Types.Atom (Types.N (Types.KI 1))) appl_247
-                !appl_249 <- appl_248 `pseq` klCons (ApplC (wrapNamed "print" kl_print)) appl_248
-                !appl_250 <- appl_249 `pseq` klCons (Types.Atom (Types.N (Types.KI 2))) appl_249
-                !appl_251 <- appl_250 `pseq` klCons (ApplC (wrapNamed "pos" pos)) appl_250
-                !appl_252 <- appl_251 `pseq` klCons (Types.Atom (Types.N (Types.KI 0))) appl_251
-                !appl_253 <- appl_252 `pseq` klCons (ApplC (PL "porters" kl_porters)) appl_252
-                !appl_254 <- appl_253 `pseq` klCons (Types.Atom (Types.N (Types.KI 0))) appl_253
-                !appl_255 <- appl_254 `pseq` klCons (ApplC (PL "port" kl_port)) appl_254
-                !appl_256 <- appl_255 `pseq` klCons (Types.Atom (Types.N (Types.KI 1))) appl_255
-                !appl_257 <- appl_256 `pseq` klCons (ApplC (wrapNamed "package?" kl_packageP)) appl_256
-                !appl_258 <- appl_257 `pseq` klCons (Types.Atom (Types.N (Types.KI 3))) appl_257
-                !appl_259 <- appl_258 `pseq` klCons (Types.Atom (Types.UnboundSym "package")) appl_258
-                !appl_260 <- appl_259 `pseq` klCons (Types.Atom (Types.N (Types.KI 0))) appl_259
-                !appl_261 <- appl_260 `pseq` klCons (ApplC (PL "os" kl_os)) appl_260
-                !appl_262 <- appl_261 `pseq` klCons (Types.Atom (Types.N (Types.KI 2))) appl_261
-                !appl_263 <- appl_262 `pseq` klCons (Types.Atom (Types.UnboundSym "or")) appl_262
-                !appl_264 <- appl_263 `pseq` klCons (Types.Atom (Types.N (Types.KI 1))) appl_263
-                !appl_265 <- appl_264 `pseq` klCons (ApplC (wrapNamed "optimise" kl_optimise)) appl_264
-                !appl_266 <- appl_265 `pseq` klCons (Types.Atom (Types.N (Types.KI 1))) appl_265
-                !appl_267 <- appl_266 `pseq` klCons (ApplC (wrapNamed "occurs-check" kl_occurs_check)) appl_266
-                !appl_268 <- appl_267 `pseq` klCons (Types.Atom (Types.N (Types.KI 2))) appl_267
-                !appl_269 <- appl_268 `pseq` klCons (ApplC (wrapNamed "occurrences" kl_occurrences)) appl_268
-                !appl_270 <- appl_269 `pseq` klCons (Types.Atom (Types.N (Types.KI 1))) appl_269
-                !appl_271 <- appl_270 `pseq` klCons (ApplC (wrapNamed "occurs-check" kl_occurs_check)) appl_270
-                !appl_272 <- appl_271 `pseq` klCons (Types.Atom (Types.N (Types.KI 1))) appl_271
-                !appl_273 <- appl_272 `pseq` klCons (ApplC (wrapNamed "number?" numberP)) appl_272
-                !appl_274 <- appl_273 `pseq` klCons (Types.Atom (Types.N (Types.KI 1))) appl_273
-                !appl_275 <- appl_274 `pseq` klCons (ApplC (wrapNamed "n->string" nToString)) appl_274
-                !appl_276 <- appl_275 `pseq` klCons (Types.Atom (Types.N (Types.KI 2))) appl_275
-                !appl_277 <- appl_276 `pseq` klCons (ApplC (wrapNamed "nth" kl_nth)) appl_276
-                !appl_278 <- appl_277 `pseq` klCons (Types.Atom (Types.N (Types.KI 1))) appl_277
-                !appl_279 <- appl_278 `pseq` klCons (ApplC (wrapNamed "not" kl_not)) appl_278
-                !appl_280 <- appl_279 `pseq` klCons (Types.Atom (Types.N (Types.KI 1))) appl_279
-                !appl_281 <- appl_280 `pseq` klCons (ApplC (wrapNamed "maxinferences" kl_maxinferences)) appl_280
-                !appl_282 <- appl_281 `pseq` klCons (Types.Atom (Types.N (Types.KI 2))) appl_281
-                !appl_283 <- appl_282 `pseq` klCons (ApplC (wrapNamed "mapcan" kl_mapcan)) appl_282
-                !appl_284 <- appl_283 `pseq` klCons (Types.Atom (Types.N (Types.KI 2))) appl_283
-                !appl_285 <- appl_284 `pseq` klCons (ApplC (wrapNamed "map" kl_map)) appl_284
-                !appl_286 <- appl_285 `pseq` klCons (Types.Atom (Types.N (Types.KI 1))) appl_285
-                !appl_287 <- appl_286 `pseq` klCons (ApplC (wrapNamed "macroexpand" kl_macroexpand)) appl_286
-                !appl_288 <- appl_287 `pseq` klCons (Types.Atom (Types.N (Types.KI 1))) appl_287
-                !appl_289 <- appl_288 `pseq` klCons (ApplC (wrapNamed "vector" kl_vector)) appl_288
-                !appl_290 <- appl_289 `pseq` klCons (Types.Atom (Types.N (Types.KI 2))) appl_289
-                !appl_291 <- appl_290 `pseq` klCons (ApplC (wrapNamed "<=" lessThanOrEqualTo)) appl_290
-                !appl_292 <- appl_291 `pseq` klCons (Types.Atom (Types.N (Types.KI 2))) appl_291
-                !appl_293 <- appl_292 `pseq` klCons (ApplC (wrapNamed "<" lessThan)) appl_292
-                !appl_294 <- appl_293 `pseq` klCons (Types.Atom (Types.N (Types.KI 1))) appl_293
-                !appl_295 <- appl_294 `pseq` klCons (ApplC (wrapNamed "load" kl_load)) appl_294
-                !appl_296 <- appl_295 `pseq` klCons (Types.Atom (Types.N (Types.KI 1))) appl_295
-                !appl_297 <- appl_296 `pseq` klCons (ApplC (wrapNamed "lineread" kl_lineread)) appl_296
-                !appl_298 <- appl_297 `pseq` klCons (Types.Atom (Types.N (Types.KI 1))) appl_297
-                !appl_299 <- appl_298 `pseq` klCons (ApplC (wrapNamed "length" kl_length)) appl_298
-                !appl_300 <- appl_299 `pseq` klCons (Types.Atom (Types.N (Types.KI 0))) appl_299
-                !appl_301 <- appl_300 `pseq` klCons (ApplC (PL "language" kl_language)) appl_300
-                !appl_302 <- appl_301 `pseq` klCons (Types.Atom (Types.N (Types.KI 0))) appl_301
-                !appl_303 <- appl_302 `pseq` klCons (ApplC (PL "kill" kl_kill)) appl_302
-                !appl_304 <- appl_303 `pseq` klCons (Types.Atom (Types.N (Types.KI 0))) appl_303
-                !appl_305 <- appl_304 `pseq` klCons (ApplC (PL "it" kl_it)) appl_304
-                !appl_306 <- appl_305 `pseq` klCons (Types.Atom (Types.N (Types.KI 1))) appl_305
-                !appl_307 <- appl_306 `pseq` klCons (ApplC (wrapNamed "internal" kl_internal)) appl_306
-                !appl_308 <- appl_307 `pseq` klCons (Types.Atom (Types.N (Types.KI 2))) appl_307
-                !appl_309 <- appl_308 `pseq` klCons (ApplC (wrapNamed "intersection" kl_intersection)) appl_308
-                !appl_310 <- appl_309 `pseq` klCons (Types.Atom (Types.N (Types.KI 0))) appl_309
-                !appl_311 <- appl_310 `pseq` klCons (ApplC (PL "implementation" kl_implementation)) appl_310
-                !appl_312 <- appl_311 `pseq` klCons (Types.Atom (Types.N (Types.KI 2))) appl_311
-                !appl_313 <- appl_312 `pseq` klCons (ApplC (wrapNamed "input+" kl_inputPlus)) appl_312
-                !appl_314 <- appl_313 `pseq` klCons (Types.Atom (Types.N (Types.KI 1))) appl_313
-                !appl_315 <- appl_314 `pseq` klCons (ApplC (wrapNamed "input" kl_input)) appl_314
-                !appl_316 <- appl_315 `pseq` klCons (Types.Atom (Types.N (Types.KI 0))) appl_315
-                !appl_317 <- appl_316 `pseq` klCons (ApplC (PL "inferences" kl_inferences)) appl_316
-                !appl_318 <- appl_317 `pseq` klCons (Types.Atom (Types.N (Types.KI 4))) appl_317
-                !appl_319 <- appl_318 `pseq` klCons (ApplC (wrapNamed "identical" kl_identical)) appl_318
-                !appl_320 <- appl_319 `pseq` klCons (Types.Atom (Types.N (Types.KI 1))) appl_319
-                !appl_321 <- appl_320 `pseq` klCons (ApplC (wrapNamed "intern" intern)) appl_320
-                !appl_322 <- appl_321 `pseq` klCons (Types.Atom (Types.N (Types.KI 1))) appl_321
-                !appl_323 <- appl_322 `pseq` klCons (ApplC (wrapNamed "integer?" kl_integerP)) appl_322
-                !appl_324 <- appl_323 `pseq` klCons (Types.Atom (Types.N (Types.KI 3))) appl_323
-                !appl_325 <- appl_324 `pseq` klCons (Types.Atom (Types.UnboundSym "if")) appl_324
-                !appl_326 <- appl_325 `pseq` klCons (Types.Atom (Types.N (Types.KI 1))) appl_325
-                !appl_327 <- appl_326 `pseq` klCons (ApplC (wrapNamed "head" kl_head)) appl_326
-                !appl_328 <- appl_327 `pseq` klCons (Types.Atom (Types.N (Types.KI 1))) appl_327
-                !appl_329 <- appl_328 `pseq` klCons (ApplC (wrapNamed "hdstr" kl_hdstr)) appl_328
-                !appl_330 <- appl_329 `pseq` klCons (Types.Atom (Types.N (Types.KI 1))) appl_329
-                !appl_331 <- appl_330 `pseq` klCons (ApplC (wrapNamed "hdv" kl_hdv)) appl_330
-                !appl_332 <- appl_331 `pseq` klCons (Types.Atom (Types.N (Types.KI 1))) appl_331
-                !appl_333 <- appl_332 `pseq` klCons (ApplC (wrapNamed "hd" hd)) appl_332
-                !appl_334 <- appl_333 `pseq` klCons (Types.Atom (Types.N (Types.KI 2))) appl_333
-                !appl_335 <- appl_334 `pseq` klCons (ApplC (wrapNamed "=" eq)) appl_334
-                !appl_336 <- appl_335 `pseq` klCons (Types.Atom (Types.N (Types.KI 2))) appl_335
-                !appl_337 <- appl_336 `pseq` klCons (ApplC (wrapNamed ">=" greaterThanOrEqualTo)) appl_336
-                !appl_338 <- appl_337 `pseq` klCons (Types.Atom (Types.N (Types.KI 2))) appl_337
-                !appl_339 <- appl_338 `pseq` klCons (ApplC (wrapNamed ">" greaterThan)) appl_338
-                !appl_340 <- appl_339 `pseq` klCons (Types.Atom (Types.N (Types.KI 2))) appl_339
-                !appl_341 <- appl_340 `pseq` klCons (ApplC (wrapNamed "<-vector" kl_LB_vector)) appl_340
-                !appl_342 <- appl_341 `pseq` klCons (Types.Atom (Types.N (Types.KI 2))) appl_341
-                !appl_343 <- appl_342 `pseq` klCons (ApplC (wrapNamed "<-address" addressFrom)) appl_342
-                !appl_344 <- appl_343 `pseq` klCons (Types.Atom (Types.N (Types.KI 3))) appl_343
-                !appl_345 <- appl_344 `pseq` klCons (ApplC (wrapNamed "address->" addressTo)) appl_344
-                !appl_346 <- appl_345 `pseq` klCons (Types.Atom (Types.N (Types.KI 1))) appl_345
-                !appl_347 <- appl_346 `pseq` klCons (ApplC (wrapNamed "get-time" getTime)) appl_346
-                !appl_348 <- appl_347 `pseq` klCons (Types.Atom (Types.N (Types.KI 3))) appl_347
-                !appl_349 <- appl_348 `pseq` klCons (ApplC (wrapNamed "get" kl_get)) appl_348
-                !appl_350 <- appl_349 `pseq` klCons (Types.Atom (Types.N (Types.KI 1))) appl_349
-                !appl_351 <- appl_350 `pseq` klCons (ApplC (wrapNamed "gensym" kl_gensym)) appl_350
-                !appl_352 <- appl_351 `pseq` klCons (Types.Atom (Types.N (Types.KI 1))) appl_351
-                !appl_353 <- appl_352 `pseq` klCons (ApplC (wrapNamed "fst" kl_fst)) appl_352
-                !appl_354 <- appl_353 `pseq` klCons (Types.Atom (Types.N (Types.KI 1))) appl_353
-                !appl_355 <- appl_354 `pseq` klCons (Types.Atom (Types.UnboundSym "freeze")) appl_354
-                !appl_356 <- appl_355 `pseq` klCons (Types.Atom (Types.N (Types.KI 5))) appl_355
-                !appl_357 <- appl_356 `pseq` klCons (Types.Atom (Types.UnboundSym "findall")) appl_356
-                !appl_358 <- appl_357 `pseq` klCons (Types.Atom (Types.N (Types.KI 2))) appl_357
-                !appl_359 <- appl_358 `pseq` klCons (ApplC (wrapNamed "fix" kl_fix)) appl_358
-                !appl_360 <- appl_359 `pseq` klCons (Types.Atom (Types.N (Types.KI 0))) appl_359
-                !appl_361 <- appl_360 `pseq` klCons (ApplC (PL "fail" kl_fail)) appl_360
-                !appl_362 <- appl_361 `pseq` klCons (Types.Atom (Types.N (Types.KI 2))) appl_361
-                !appl_363 <- appl_362 `pseq` klCons (ApplC (wrapNamed "fail-if" kl_fail_if)) appl_362
-                !appl_364 <- appl_363 `pseq` klCons (Types.Atom (Types.N (Types.KI 1))) appl_363
-                !appl_365 <- appl_364 `pseq` klCons (ApplC (wrapNamed "external" kl_external)) appl_364
-                !appl_366 <- appl_365 `pseq` klCons (Types.Atom (Types.N (Types.KI 1))) appl_365
-                !appl_367 <- appl_366 `pseq` klCons (ApplC (wrapNamed "explode" kl_explode)) appl_366
-                !appl_368 <- appl_367 `pseq` klCons (Types.Atom (Types.N (Types.KI 1))) appl_367
-                !appl_369 <- appl_368 `pseq` klCons (ApplC (wrapNamed "eval-kl" evalKL)) appl_368
-                !appl_370 <- appl_369 `pseq` klCons (Types.Atom (Types.N (Types.KI 1))) appl_369
-                !appl_371 <- appl_370 `pseq` klCons (ApplC (wrapNamed "eval" kl_eval)) appl_370
-                !appl_372 <- appl_371 `pseq` klCons (Types.Atom (Types.N (Types.KI 2))) appl_371
-                !appl_373 <- appl_372 `pseq` klCons (Types.Atom (Types.UnboundSym "shen.interror")) appl_372
-                !appl_374 <- appl_373 `pseq` klCons (Types.Atom (Types.N (Types.KI 1))) appl_373
-                !appl_375 <- appl_374 `pseq` klCons (Types.Atom (Types.UnboundSym "enable-type-theory")) appl_374
-                !appl_376 <- appl_375 `pseq` klCons (Types.Atom (Types.N (Types.KI 1))) appl_375
-                !appl_377 <- appl_376 `pseq` klCons (ApplC (wrapNamed "empty?" kl_emptyP)) appl_376
-                !appl_378 <- appl_377 `pseq` klCons (Types.Atom (Types.N (Types.KI 2))) appl_377
-                !appl_379 <- appl_378 `pseq` klCons (ApplC (wrapNamed "element?" kl_elementP)) appl_378
-                !appl_380 <- appl_379 `pseq` klCons (Types.Atom (Types.N (Types.KI 2))) appl_379
-                !appl_381 <- appl_380 `pseq` klCons (ApplC (wrapNamed "do" kl_do)) appl_380
-                !appl_382 <- appl_381 `pseq` klCons (Types.Atom (Types.N (Types.KI 2))) appl_381
-                !appl_383 <- appl_382 `pseq` klCons (ApplC (wrapNamed "difference" kl_difference)) appl_382
-                !appl_384 <- appl_383 `pseq` klCons (Types.Atom (Types.N (Types.KI 1))) appl_383
-                !appl_385 <- appl_384 `pseq` klCons (ApplC (wrapNamed "destroy" kl_destroy)) appl_384
-                !appl_386 <- appl_385 `pseq` klCons (Types.Atom (Types.N (Types.KI 2))) appl_385
-                !appl_387 <- appl_386 `pseq` klCons (Types.Atom (Types.UnboundSym "declare")) appl_386
-                !appl_388 <- appl_387 `pseq` klCons (Types.Atom (Types.N (Types.KI 2))) appl_387
-                !appl_389 <- appl_388 `pseq` klCons (ApplC (wrapNamed "cn" cn)) appl_388
-                !appl_390 <- appl_389 `pseq` klCons (Types.Atom (Types.N (Types.KI 1))) appl_389
-                !appl_391 <- appl_390 `pseq` klCons (ApplC (wrapNamed "cons?" consP)) appl_390
-                !appl_392 <- appl_391 `pseq` klCons (Types.Atom (Types.N (Types.KI 2))) appl_391
-                !appl_393 <- appl_392 `pseq` klCons (ApplC (wrapNamed "cons" klCons)) appl_392
-                !appl_394 <- appl_393 `pseq` klCons (Types.Atom (Types.N (Types.KI 2))) appl_393
-                !appl_395 <- appl_394 `pseq` klCons (ApplC (wrapNamed "concat" kl_concat)) appl_394
-                !appl_396 <- appl_395 `pseq` klCons (Types.Atom (Types.N (Types.KI 3))) appl_395
-                !appl_397 <- appl_396 `pseq` klCons (ApplC (wrapNamed "compile" kl_compile)) appl_396
-                !appl_398 <- appl_397 `pseq` klCons (Types.Atom (Types.N (Types.KI 1))) appl_397
-                !appl_399 <- appl_398 `pseq` klCons (ApplC (wrapNamed "cd" kl_cd)) appl_398
-                !appl_400 <- appl_399 `pseq` klCons (Types.Atom (Types.N (Types.KI 1))) appl_399
-                !appl_401 <- appl_400 `pseq` klCons (ApplC (wrapNamed "boolean?" kl_booleanP)) appl_400
-                !appl_402 <- appl_401 `pseq` klCons (Types.Atom (Types.N (Types.KI 2))) appl_401
-                !appl_403 <- appl_402 `pseq` klCons (ApplC (wrapNamed "assoc" kl_assoc)) appl_402
-                !appl_404 <- appl_403 `pseq` klCons (Types.Atom (Types.N (Types.KI 1))) appl_403
-                !appl_405 <- appl_404 `pseq` klCons (ApplC (wrapNamed "arity" kl_arity)) appl_404
-                !appl_406 <- appl_405 `pseq` klCons (Types.Atom (Types.N (Types.KI 2))) appl_405
-                !appl_407 <- appl_406 `pseq` klCons (ApplC (wrapNamed "append" kl_append)) appl_406
-                !appl_408 <- appl_407 `pseq` klCons (Types.Atom (Types.N (Types.KI 2))) appl_407
-                !appl_409 <- appl_408 `pseq` klCons (Types.Atom (Types.UnboundSym "and")) appl_408
-                !appl_410 <- appl_409 `pseq` klCons (Types.Atom (Types.N (Types.KI 2))) appl_409
-                !appl_411 <- appl_410 `pseq` klCons (ApplC (wrapNamed "adjoin" kl_adjoin)) appl_410
-                !appl_412 <- appl_411 `pseq` klCons (Types.Atom (Types.N (Types.KI 1))) appl_411
-                !appl_413 <- appl_412 `pseq` klCons (ApplC (wrapNamed "absvector" absvector)) appl_412
-                !appl_414 <- appl_413 `pseq` klCons (Types.Atom (Types.N (Types.KI 1))) appl_413
-                !appl_415 <- appl_414 `pseq` klCons (ApplC (wrapNamed "absvector?" absvectorP)) appl_414
-                !appl_416 <- appl_415 `pseq` klCons (Types.Atom (Types.N (Types.KI 0))) appl_415
-                !appl_417 <- appl_416 `pseq` klCons (ApplC (PL "abort" kl_abort)) appl_416
-                appl_417 `pseq` kl_shen_initialise_arity_table appl_417) `catchError` (\(!kl_E) -> do return (Types.Atom (Types.Str "E")))
-            (do !appl_418 <- intern (Types.Atom (Types.Str "shen"))
-                !appl_419 <- kl_vector (Types.Atom (Types.N (Types.KI 0)))
-                !appl_420 <- klCons (ApplC (PL "abort" kl_abort)) (Types.Atom Types.Nil)
-                !appl_421 <- appl_420 `pseq` klCons (ApplC (wrapNamed "absvector" absvector)) appl_420
-                !appl_422 <- appl_421 `pseq` klCons (ApplC (wrapNamed "absvector?" absvectorP)) appl_421
-                !appl_423 <- appl_422 `pseq` klCons (ApplC (wrapNamed "address->" addressTo)) appl_422
-                !appl_424 <- appl_423 `pseq` klCons (ApplC (wrapNamed "<-address" addressFrom)) appl_423
-                !appl_425 <- appl_424 `pseq` klCons (ApplC (wrapNamed "adjoin" kl_adjoin)) appl_424
-                !appl_426 <- appl_425 `pseq` klCons (Types.Atom (Types.UnboundSym "and")) appl_425
-                !appl_427 <- appl_426 `pseq` klCons (ApplC (wrapNamed "append" kl_append)) appl_426
-                !appl_428 <- appl_427 `pseq` klCons (ApplC (wrapNamed "arity" kl_arity)) appl_427
-                !appl_429 <- appl_428 `pseq` klCons (ApplC (wrapNamed "assoc" kl_assoc)) appl_428
-                !appl_430 <- appl_429 `pseq` klCons (Types.Atom (Types.UnboundSym "bar!")) appl_429
-                !appl_431 <- appl_430 `pseq` klCons (Types.Atom (Types.UnboundSym "boolean")) appl_430
-                !appl_432 <- appl_431 `pseq` klCons (ApplC (wrapNamed "boolean?" kl_booleanP)) appl_431
-                !appl_433 <- appl_432 `pseq` klCons (ApplC (wrapNamed "bound?" kl_boundP)) appl_432
-                !appl_434 <- appl_433 `pseq` klCons (ApplC (wrapNamed "bind" kl_bind)) appl_433
-                !appl_435 <- appl_434 `pseq` klCons (ApplC (wrapNamed "close" closeStream)) appl_434
-                !appl_436 <- appl_435 `pseq` klCons (ApplC (wrapNamed "call" kl_call)) appl_435
-                !appl_437 <- appl_436 `pseq` klCons (Types.Atom (Types.UnboundSym "cases")) appl_436
-                !appl_438 <- appl_437 `pseq` klCons (ApplC (wrapNamed "cd" kl_cd)) appl_437
-                !appl_439 <- appl_438 `pseq` klCons (ApplC (wrapNamed "compile" kl_compile)) appl_438
-                !appl_440 <- appl_439 `pseq` klCons (ApplC (wrapNamed "concat" kl_concat)) appl_439
-                !appl_441 <- appl_440 `pseq` klCons (Types.Atom (Types.UnboundSym "cond")) appl_440
-                !appl_442 <- appl_441 `pseq` klCons (ApplC (wrapNamed "cons" klCons)) appl_441
-                !appl_443 <- appl_442 `pseq` klCons (ApplC (wrapNamed "cons?" consP)) appl_442
-                !appl_444 <- appl_443 `pseq` klCons (ApplC (wrapNamed "cn" cn)) appl_443
-                !appl_445 <- appl_444 `pseq` klCons (ApplC (wrapNamed "cut" kl_cut)) appl_444
-                !appl_446 <- appl_445 `pseq` klCons (Types.Atom (Types.UnboundSym "datatype")) appl_445
-                !appl_447 <- appl_446 `pseq` klCons (Types.Atom (Types.UnboundSym "declare")) appl_446
-                !appl_448 <- appl_447 `pseq` klCons (Types.Atom (Types.UnboundSym "defprolog")) appl_447
-                !appl_449 <- appl_448 `pseq` klCons (Types.Atom (Types.UnboundSym "defcc")) appl_448
-                !appl_450 <- appl_449 `pseq` klCons (Types.Atom (Types.UnboundSym "defmacro")) appl_449
-                !appl_451 <- appl_450 `pseq` klCons (Types.Atom (Types.UnboundSym "define")) appl_450
-                !appl_452 <- appl_451 `pseq` klCons (Types.Atom (Types.UnboundSym "defun")) appl_451
-                !appl_453 <- appl_452 `pseq` klCons (ApplC (wrapNamed "destroy" kl_destroy)) appl_452
-                !appl_454 <- appl_453 `pseq` klCons (ApplC (wrapNamed "difference" kl_difference)) appl_453
-                !appl_455 <- appl_454 `pseq` klCons (ApplC (wrapNamed "do" kl_do)) appl_454
-                !appl_456 <- appl_455 `pseq` klCons (ApplC (wrapNamed "element?" kl_elementP)) appl_455
-                !appl_457 <- appl_456 `pseq` klCons (ApplC (wrapNamed "empty?" kl_emptyP)) appl_456
-                !appl_458 <- appl_457 `pseq` klCons (Types.Atom (Types.UnboundSym "error")) appl_457
-                !appl_459 <- appl_458 `pseq` klCons (ApplC (wrapNamed "error-to-string" errorToString)) appl_458
-                !appl_460 <- appl_459 `pseq` klCons (ApplC (wrapNamed "eval" kl_eval)) appl_459
-                !appl_461 <- appl_460 `pseq` klCons (ApplC (wrapNamed "eval-kl" evalKL)) appl_460
-                !appl_462 <- appl_461 `pseq` klCons (Types.Atom (Types.UnboundSym "exception")) appl_461
-                !appl_463 <- appl_462 `pseq` klCons (ApplC (wrapNamed "external" kl_external)) appl_462
-                !appl_464 <- appl_463 `pseq` klCons (ApplC (wrapNamed "explode" kl_explode)) appl_463
-                !appl_465 <- appl_464 `pseq` klCons (Types.Atom (Types.UnboundSym "enable-type-theory")) appl_464
-                !appl_466 <- appl_465 `pseq` klCons (Atom (B False)) appl_465
-                !appl_467 <- appl_466 `pseq` klCons (Types.Atom (Types.UnboundSym "findall")) appl_466
-                !appl_468 <- appl_467 `pseq` klCons (ApplC (wrapNamed "fwhen" kl_fwhen)) appl_467
-                !appl_469 <- appl_468 `pseq` klCons (ApplC (wrapNamed "fail-if" kl_fail_if)) appl_468
-                !appl_470 <- appl_469 `pseq` klCons (ApplC (PL "fail" kl_fail)) appl_469
-                !appl_471 <- appl_470 `pseq` klCons (Types.Atom (Types.UnboundSym "file")) appl_470
-                !appl_472 <- appl_471 `pseq` klCons (ApplC (wrapNamed "fix" kl_fix)) appl_471
-                !appl_473 <- appl_472 `pseq` klCons (Types.Atom (Types.UnboundSym "freeze")) appl_472
-                !appl_474 <- appl_473 `pseq` klCons (ApplC (wrapNamed "fst" kl_fst)) appl_473
-                !appl_475 <- appl_474 `pseq` klCons (ApplC (wrapNamed "function" kl_function)) appl_474
-                !appl_476 <- appl_475 `pseq` klCons (ApplC (wrapNamed "gensym" kl_gensym)) appl_475
-                !appl_477 <- appl_476 `pseq` klCons (ApplC (wrapNamed "get-time" getTime)) appl_476
-                !appl_478 <- appl_477 `pseq` klCons (ApplC (wrapNamed "get" kl_get)) appl_477
-                !appl_479 <- appl_478 `pseq` klCons (ApplC (wrapNamed "hash" kl_hash)) appl_478
-                !appl_480 <- appl_479 `pseq` klCons (ApplC (wrapNamed "hdstr" kl_hdstr)) appl_479
-                !appl_481 <- appl_480 `pseq` klCons (ApplC (wrapNamed "hdv" kl_hdv)) appl_480
-                !appl_482 <- appl_481 `pseq` klCons (ApplC (wrapNamed "hd" hd)) appl_481
-                !appl_483 <- appl_482 `pseq` klCons (ApplC (wrapNamed "head" kl_head)) appl_482
-                !appl_484 <- appl_483 `pseq` klCons (ApplC (wrapNamed "identical" kl_identical)) appl_483
-                !appl_485 <- appl_484 `pseq` klCons (Types.Atom (Types.UnboundSym "if")) appl_484
-                !appl_486 <- appl_485 `pseq` klCons (ApplC (PL "implementation" kl_implementation)) appl_485
-                !appl_487 <- appl_486 `pseq` klCons (ApplC (wrapNamed "internal" kl_internal)) appl_486
-                !appl_488 <- appl_487 `pseq` klCons (Types.Atom (Types.UnboundSym "in")) appl_487
-                !appl_489 <- appl_488 `pseq` klCons (ApplC (PL "it" kl_it)) appl_488
-                !appl_490 <- appl_489 `pseq` klCons (ApplC (wrapNamed "include-all-but" kl_include_all_but)) appl_489
-                !appl_491 <- appl_490 `pseq` klCons (ApplC (wrapNamed "include" kl_include)) appl_490
-                !appl_492 <- appl_491 `pseq` klCons (ApplC (wrapNamed "input+" kl_inputPlus)) appl_491
-                !appl_493 <- appl_492 `pseq` klCons (ApplC (wrapNamed "input" kl_input)) appl_492
-                !appl_494 <- appl_493 `pseq` klCons (ApplC (wrapNamed "integer?" kl_integerP)) appl_493
-                !appl_495 <- appl_494 `pseq` klCons (ApplC (wrapNamed "intern" intern)) appl_494
-                !appl_496 <- appl_495 `pseq` klCons (ApplC (PL "inferences" kl_inferences)) appl_495
-                !appl_497 <- appl_496 `pseq` klCons (ApplC (wrapNamed "intersection" kl_intersection)) appl_496
-                !appl_498 <- appl_497 `pseq` klCons (Types.Atom (Types.UnboundSym "is")) appl_497
-                !appl_499 <- appl_498 `pseq` klCons (ApplC (PL "kill" kl_kill)) appl_498
-                !appl_500 <- appl_499 `pseq` klCons (ApplC (PL "language" kl_language)) appl_499
-                !appl_501 <- appl_500 `pseq` klCons (Types.Atom (Types.UnboundSym "lambda")) appl_500
-                !appl_502 <- appl_501 `pseq` klCons (Types.Atom (Types.UnboundSym "lazy")) appl_501
-                !appl_503 <- appl_502 `pseq` klCons (Types.Atom (Types.UnboundSym "let")) appl_502
-                !appl_504 <- appl_503 `pseq` klCons (ApplC (wrapNamed "length" kl_length)) appl_503
-                !appl_505 <- appl_504 `pseq` klCons (ApplC (wrapNamed "limit" kl_limit)) appl_504
-                !appl_506 <- appl_505 `pseq` klCons (ApplC (wrapNamed "lineread" kl_lineread)) appl_505
-                !appl_507 <- appl_506 `pseq` klCons (Types.Atom (Types.UnboundSym "list")) appl_506
-                !appl_508 <- appl_507 `pseq` klCons (Types.Atom (Types.UnboundSym "loaded")) appl_507
-                !appl_509 <- appl_508 `pseq` klCons (ApplC (wrapNamed "load" kl_load)) appl_508
-                !appl_510 <- appl_509 `pseq` klCons (Types.Atom (Types.UnboundSym "make-string")) appl_509
-                !appl_511 <- appl_510 `pseq` klCons (ApplC (wrapNamed "map" kl_map)) appl_510
-                !appl_512 <- appl_511 `pseq` klCons (ApplC (wrapNamed "mapcan" kl_mapcan)) appl_511
-                !appl_513 <- appl_512 `pseq` klCons (ApplC (wrapNamed "maxinferences" kl_maxinferences)) appl_512
-                !appl_514 <- appl_513 `pseq` klCons (ApplC (wrapNamed "macroexpand" kl_macroexpand)) appl_513
-                !appl_515 <- appl_514 `pseq` klCons (Types.Atom (Types.UnboundSym "mode")) appl_514
-                !appl_516 <- appl_515 `pseq` klCons (ApplC (wrapNamed "nl" kl_nl)) appl_515
-                !appl_517 <- appl_516 `pseq` klCons (ApplC (wrapNamed "not" kl_not)) appl_516
-                !appl_518 <- appl_517 `pseq` klCons (ApplC (wrapNamed "nth" kl_nth)) appl_517
-                !appl_519 <- appl_518 `pseq` klCons (Types.Atom (Types.UnboundSym "null")) appl_518
-                !appl_520 <- appl_519 `pseq` klCons (Types.Atom (Types.UnboundSym "number")) appl_519
-                !appl_521 <- appl_520 `pseq` klCons (ApplC (wrapNamed "number?" numberP)) appl_520
-                !appl_522 <- appl_521 `pseq` klCons (ApplC (wrapNamed "n->string" nToString)) appl_521
-                !appl_523 <- appl_522 `pseq` klCons (ApplC (wrapNamed "occurs-check" kl_occurs_check)) appl_522
-                !appl_524 <- appl_523 `pseq` klCons (ApplC (wrapNamed "occurrences" kl_occurrences)) appl_523
-                !appl_525 <- appl_524 `pseq` klCons (ApplC (wrapNamed "open" openStream)) appl_524
-                !appl_526 <- appl_525 `pseq` klCons (ApplC (wrapNamed "optimise" kl_optimise)) appl_525
-                !appl_527 <- appl_526 `pseq` klCons (Types.Atom (Types.UnboundSym "or")) appl_526
-                !appl_528 <- appl_527 `pseq` klCons (ApplC (PL "os" kl_os)) appl_527
-                !appl_529 <- appl_528 `pseq` klCons (Types.Atom (Types.UnboundSym "out")) appl_528
-                !appl_530 <- appl_529 `pseq` klCons (Types.Atom (Types.UnboundSym "output")) appl_529
-                !appl_531 <- appl_530 `pseq` klCons (Types.Atom (Types.UnboundSym "package")) appl_530
-                !appl_532 <- appl_531 `pseq` klCons (ApplC (PL "port" kl_port)) appl_531
-                !appl_533 <- appl_532 `pseq` klCons (ApplC (PL "porters" kl_porters)) appl_532
-                !appl_534 <- appl_533 `pseq` klCons (ApplC (wrapNamed "pos" pos)) appl_533
-                !appl_535 <- appl_534 `pseq` klCons (ApplC (wrapNamed "pr" kl_pr)) appl_534
-                !appl_536 <- appl_535 `pseq` klCons (ApplC (wrapNamed "print" kl_print)) appl_535
-                !appl_537 <- appl_536 `pseq` klCons (ApplC (wrapNamed "profile" kl_profile)) appl_536
-                !appl_538 <- appl_537 `pseq` klCons (ApplC (wrapNamed "profile-results" kl_profile_results)) appl_537
-                !appl_539 <- appl_538 `pseq` klCons (ApplC (wrapNamed "protect" kl_protect)) appl_538
-                !appl_540 <- appl_539 `pseq` klCons (Types.Atom (Types.UnboundSym "prolog?")) appl_539
-                !appl_541 <- appl_540 `pseq` klCons (ApplC (wrapNamed "ps" kl_ps)) appl_540
-                !appl_542 <- appl_541 `pseq` klCons (ApplC (wrapNamed "preclude-all-but" kl_preclude_all_but)) appl_541
-                !appl_543 <- appl_542 `pseq` klCons (ApplC (wrapNamed "preclude" kl_preclude)) appl_542
-                !appl_544 <- appl_543 `pseq` klCons (ApplC (wrapNamed "put" kl_put)) appl_543
-                !appl_545 <- appl_544 `pseq` klCons (ApplC (wrapNamed "package?" kl_packageP)) appl_544
-                !appl_546 <- appl_545 `pseq` klCons (ApplC (wrapNamed "read-from-string" kl_read_from_string)) appl_545
-                !appl_547 <- appl_546 `pseq` klCons (ApplC (wrapNamed "read-byte" readByte)) appl_546
-                !appl_548 <- appl_547 `pseq` klCons (ApplC (wrapNamed "read-file-as-string" kl_read_file_as_string)) appl_547
-                !appl_549 <- appl_548 `pseq` klCons (ApplC (wrapNamed "read-file-as-bytelist" kl_read_file_as_bytelist)) appl_548
-                !appl_550 <- appl_549 `pseq` klCons (ApplC (wrapNamed "read-file" kl_read_file)) appl_549
-                !appl_551 <- appl_550 `pseq` klCons (ApplC (wrapNamed "read" kl_read)) appl_550
-                !appl_552 <- appl_551 `pseq` klCons (ApplC (PL "release" kl_release)) appl_551
-                !appl_553 <- appl_552 `pseq` klCons (ApplC (wrapNamed "remove" kl_remove)) appl_552
-                !appl_554 <- appl_553 `pseq` klCons (ApplC (wrapNamed "reverse" kl_reverse)) appl_553
-                !appl_555 <- appl_554 `pseq` klCons (Types.Atom (Types.UnboundSym "run")) appl_554
-                !appl_556 <- appl_555 `pseq` klCons (ApplC (wrapNamed "str" str)) appl_555
-                !appl_557 <- appl_556 `pseq` klCons (Types.Atom (Types.UnboundSym "save")) appl_556
-                !appl_558 <- appl_557 `pseq` klCons (ApplC (wrapNamed "set" klSet)) appl_557
-                !appl_559 <- appl_558 `pseq` klCons (ApplC (wrapNamed "simple-error" simpleError)) appl_558
-                !appl_560 <- appl_559 `pseq` klCons (ApplC (wrapNamed "snd" kl_snd)) appl_559
-                !appl_561 <- appl_560 `pseq` klCons (ApplC (wrapNamed "specialise" kl_specialise)) appl_560
-                !appl_562 <- appl_561 `pseq` klCons (ApplC (wrapNamed "spy" kl_spy)) appl_561
-                !appl_563 <- appl_562 `pseq` klCons (ApplC (wrapNamed "step" kl_step)) appl_562
-                !appl_564 <- appl_563 `pseq` klCons (ApplC (PL "stoutput" kl_stoutput)) appl_563
-                !appl_565 <- appl_564 `pseq` klCons (ApplC (PL "stinput" kl_stinput)) appl_564
-                !appl_566 <- appl_565 `pseq` klCons (Types.Atom (Types.UnboundSym "string")) appl_565
-                !appl_567 <- appl_566 `pseq` klCons (Types.Atom (Types.UnboundSym "stream")) appl_566
-                !appl_568 <- appl_567 `pseq` klCons (ApplC (wrapNamed "string->n" stringToN)) appl_567
-                !appl_569 <- appl_568 `pseq` klCons (ApplC (wrapNamed "string?" stringP)) appl_568
-                !appl_570 <- appl_569 `pseq` klCons (ApplC (wrapNamed "subst" kl_subst)) appl_569
-                !appl_571 <- appl_570 `pseq` klCons (ApplC (wrapNamed "sum" kl_sum)) appl_570
-                !appl_572 <- appl_571 `pseq` klCons (ApplC (wrapNamed "string->symbol" kl_string_RBsymbol)) appl_571
-                !appl_573 <- appl_572 `pseq` klCons (ApplC (wrapNamed "symbol?" kl_symbolP)) appl_572
-                !appl_574 <- appl_573 `pseq` klCons (Types.Atom (Types.UnboundSym "symbol")) appl_573
-                !appl_575 <- appl_574 `pseq` klCons (Types.Atom (Types.UnboundSym "synonyms")) appl_574
-                !appl_576 <- appl_575 `pseq` klCons (ApplC (wrapNamed "systemf" kl_systemf)) appl_575
-                !appl_577 <- appl_576 `pseq` klCons (ApplC (wrapNamed "tail" kl_tail)) appl_576
-                !appl_578 <- appl_577 `pseq` klCons (ApplC (wrapNamed "tlv" kl_tlv)) appl_577
-                !appl_579 <- appl_578 `pseq` klCons (ApplC (wrapNamed "tlstr" tlstr)) appl_578
-                !appl_580 <- appl_579 `pseq` klCons (ApplC (wrapNamed "tl" tl)) appl_579
-                !appl_581 <- appl_580 `pseq` klCons (ApplC (wrapNamed "tc" kl_tc)) appl_580
-                !appl_582 <- appl_581 `pseq` klCons (ApplC (PL "tc?" kl_tcP)) appl_581
-                !appl_583 <- appl_582 `pseq` klCons (ApplC (wrapNamed "thaw" kl_thaw)) appl_582
-                !appl_584 <- appl_583 `pseq` klCons (Types.Atom (Types.UnboundSym "time")) appl_583
-                !appl_585 <- appl_584 `pseq` klCons (ApplC (wrapNamed "track" kl_track)) appl_584
-                !appl_586 <- appl_585 `pseq` klCons (Types.Atom (Types.UnboundSym "trap-error")) appl_585
-                !appl_587 <- appl_586 `pseq` klCons (Atom (B True)) appl_586
-                !appl_588 <- appl_587 `pseq` klCons (ApplC (wrapNamed "tuple?" kl_tupleP)) appl_587
-                !appl_589 <- appl_588 `pseq` klCons (ApplC (wrapNamed "type" typeA)) appl_588
-                !appl_590 <- appl_589 `pseq` klCons (ApplC (wrapNamed "return" kl_return)) appl_589
-                !appl_591 <- appl_590 `pseq` klCons (ApplC (wrapNamed "undefmacro" kl_undefmacro)) appl_590
-                !appl_592 <- appl_591 `pseq` klCons (ApplC (wrapNamed "unprofile" kl_unprofile)) appl_591
-                !appl_593 <- appl_592 `pseq` klCons (ApplC (wrapNamed "unput" kl_unput)) appl_592
-                !appl_594 <- appl_593 `pseq` klCons (ApplC (wrapNamed "unify!" kl_unifyExcl)) appl_593
-                !appl_595 <- appl_594 `pseq` klCons (ApplC (wrapNamed "unify" kl_unify)) appl_594
-                !appl_596 <- appl_595 `pseq` klCons (ApplC (wrapNamed "union" kl_union)) appl_595
-                !appl_597 <- appl_596 `pseq` klCons (Types.Atom (Types.UnboundSym "shen.unix")) appl_596
-                !appl_598 <- appl_597 `pseq` klCons (Types.Atom (Types.UnboundSym "unit")) appl_597
-                !appl_599 <- appl_598 `pseq` klCons (ApplC (wrapNamed "untrack" kl_untrack)) appl_598
-                !appl_600 <- appl_599 `pseq` klCons (ApplC (wrapNamed "unspecialise" kl_unspecialise)) appl_599
-                !appl_601 <- appl_600 `pseq` klCons (ApplC (wrapNamed "vector?" kl_vectorP)) appl_600
-                !appl_602 <- appl_601 `pseq` klCons (ApplC (wrapNamed "vector" kl_vector)) appl_601
-                !appl_603 <- appl_602 `pseq` klCons (ApplC (wrapNamed "<-vector" kl_LB_vector)) appl_602
-                !appl_604 <- appl_603 `pseq` klCons (ApplC (wrapNamed "vector->" kl_vector_RB)) appl_603
-                !appl_605 <- appl_604 `pseq` klCons (ApplC (wrapNamed "value" value)) appl_604
-                !appl_606 <- appl_605 `pseq` klCons (ApplC (wrapNamed "variable?" kl_variableP)) appl_605
-                !appl_607 <- appl_606 `pseq` klCons (Types.Atom (Types.UnboundSym "verified")) appl_606
-                !appl_608 <- appl_607 `pseq` klCons (ApplC (PL "version" kl_version)) appl_607
-                !appl_609 <- appl_608 `pseq` klCons (Types.Atom (Types.UnboundSym "warn")) appl_608
-                !appl_610 <- appl_609 `pseq` klCons (Types.Atom (Types.UnboundSym "when")) appl_609
-                !appl_611 <- appl_610 `pseq` klCons (Types.Atom (Types.UnboundSym "where")) appl_610
-                !appl_612 <- appl_611 `pseq` klCons (ApplC (wrapNamed "write-byte" writeByte)) appl_611
-                !appl_613 <- appl_612 `pseq` klCons (ApplC (wrapNamed "write-to-file" kl_write_to_file)) appl_612
-                !appl_614 <- appl_613 `pseq` klCons (ApplC (wrapNamed "y-or-n?" kl_y_or_nP)) appl_613
-                !appl_615 <- appl_419 `pseq` (appl_614 `pseq` klCons appl_419 appl_614)
-                !appl_616 <- appl_615 `pseq` klCons (Types.Atom (Types.UnboundSym ">>")) appl_615
-                !appl_617 <- appl_616 `pseq` klCons (ApplC (wrapNamed "<" lessThan)) appl_616
-                !appl_618 <- appl_617 `pseq` klCons (ApplC (wrapNamed "<=" lessThanOrEqualTo)) appl_617
-                !appl_619 <- appl_618 `pseq` klCons (ApplC (wrapNamed "+" add)) appl_618
-                !appl_620 <- appl_619 `pseq` klCons (ApplC (wrapNamed "*" multiply)) appl_619
-                !appl_621 <- appl_620 `pseq` klCons (ApplC (wrapNamed "/" divide)) appl_620
-                !appl_622 <- appl_621 `pseq` klCons (ApplC (wrapNamed "-" Primitives.subtract)) appl_621
-                !appl_623 <- appl_622 `pseq` klCons (Types.Atom (Types.UnboundSym "$")) appl_622
-                !appl_624 <- appl_623 `pseq` klCons (Types.Atom (Types.UnboundSym "=!")) appl_623
-                !appl_625 <- appl_624 `pseq` klCons (Types.Atom (Types.UnboundSym "/.")) appl_624
-                !appl_626 <- appl_625 `pseq` klCons (ApplC (wrapNamed ">" greaterThan)) appl_625
-                !appl_627 <- appl_626 `pseq` klCons (ApplC (wrapNamed ">=" greaterThanOrEqualTo)) appl_626
-                !appl_628 <- appl_627 `pseq` klCons (ApplC (wrapNamed "=" eq)) appl_627
-                !appl_629 <- appl_628 `pseq` klCons (ApplC (wrapNamed "==" kl_EqEq)) appl_628
-                !appl_630 <- appl_629 `pseq` klCons (ApplC (wrapNamed "<e>" kl_LBeRB)) appl_629
-                !appl_631 <- appl_630 `pseq` klCons (Types.Atom (Types.UnboundSym "->")) appl_630
-                !appl_632 <- appl_631 `pseq` klCons (Types.Atom (Types.UnboundSym "<-")) appl_631
-                !appl_633 <- appl_632 `pseq` klCons (Types.Atom (Types.UnboundSym "*hush*")) appl_632
-                !appl_634 <- appl_633 `pseq` klCons (Types.Atom (Types.UnboundSym "*porters*")) appl_633
-                !appl_635 <- appl_634 `pseq` klCons (Types.Atom (Types.UnboundSym "*port*")) appl_634
-                !appl_636 <- appl_635 `pseq` klCons (ApplC (wrapNamed "@s" kl_Ats)) appl_635
-                !appl_637 <- appl_636 `pseq` klCons (ApplC (wrapNamed "@p" kl_Atp)) appl_636
-                !appl_638 <- appl_637 `pseq` klCons (ApplC (wrapNamed "@v" kl_Atv)) appl_637
-                !appl_639 <- appl_638 `pseq` klCons (Types.Atom (Types.UnboundSym "*property-vector*")) appl_638
-                !appl_640 <- appl_639 `pseq` klCons (Types.Atom (Types.UnboundSym "*release*")) appl_639
-                !appl_641 <- appl_640 `pseq` klCons (Types.Atom (Types.UnboundSym "*os*")) appl_640
-                !appl_642 <- appl_641 `pseq` klCons (Types.Atom (Types.UnboundSym "*macros*")) appl_641
-                !appl_643 <- appl_642 `pseq` klCons (Types.Atom (Types.UnboundSym "*maximum-print-sequence-size*")) appl_642
-                !appl_644 <- appl_643 `pseq` klCons (Types.Atom (Types.UnboundSym "*version*")) appl_643
-                !appl_645 <- appl_644 `pseq` klCons (Types.Atom (Types.UnboundSym "*home-directory*")) appl_644
-                !appl_646 <- appl_645 `pseq` klCons (Types.Atom (Types.UnboundSym "*stoutput*")) appl_645
-                !appl_647 <- appl_646 `pseq` klCons (Types.Atom (Types.UnboundSym "*stinput*")) appl_646
-                !appl_648 <- appl_647 `pseq` klCons (Types.Atom (Types.UnboundSym "*implementation*")) appl_647
-                !appl_649 <- appl_648 `pseq` klCons (Types.Atom (Types.UnboundSym "*language*")) appl_648
-                !appl_650 <- appl_649 `pseq` klCons (Types.Atom (Types.UnboundSym "_")) appl_649
-                !appl_651 <- appl_650 `pseq` klCons (Types.Atom (Types.UnboundSym ":=")) appl_650
-                !appl_652 <- appl_651 `pseq` klCons (Types.Atom (Types.UnboundSym ":-")) appl_651
-                !appl_653 <- appl_652 `pseq` klCons (Types.Atom (Types.UnboundSym ";")) appl_652
-                !appl_654 <- appl_653 `pseq` klCons (Types.Atom (Types.UnboundSym ":")) appl_653
-                !appl_655 <- appl_654 `pseq` klCons (Types.Atom (Types.UnboundSym "&&")) appl_654
-                !appl_656 <- appl_655 `pseq` klCons (Types.Atom (Types.UnboundSym "<--")) appl_655
-                !appl_657 <- appl_656 `pseq` klCons (Types.Atom (Types.UnboundSym "-->")) appl_656
-                !appl_658 <- appl_657 `pseq` klCons (Types.Atom (Types.UnboundSym "{")) appl_657
-                !appl_659 <- appl_658 `pseq` klCons (Types.Atom (Types.UnboundSym "}")) appl_658
-                !appl_660 <- appl_659 `pseq` klCons (Types.Atom (Types.UnboundSym "!")) appl_659
-                !appl_661 <- value (Types.Atom (Types.UnboundSym "*property-vector*"))
-                appl_418 `pseq` (appl_660 `pseq` (appl_661 `pseq` kl_put appl_418 (Types.Atom (Types.UnboundSym "shen.external-symbols")) appl_660 appl_661))) `catchError` (\(!kl_E) -> do return (Types.Atom (Types.Str "E")))
-            (do let !appl_662 = ApplC (Func "lambda" (Context (\(!kl_X) -> do kl_X `pseq` kl_shen_datatype_error kl_X)))
-                !appl_663 <- appl_662 `pseq` klCons (ApplC (wrapNamed "shen.datatype-error" kl_shen_datatype_error)) appl_662
-                let !appl_664 = ApplC (Func "lambda" (Context (\(!kl_X) -> do kl_X `pseq` kl_shen_tuple kl_X)))
-                !appl_665 <- appl_664 `pseq` klCons (ApplC (wrapNamed "shen.tuple" kl_shen_tuple)) appl_664
-                let !appl_666 = ApplC (Func "lambda" (Context (\(!kl_X) -> do kl_X `pseq` kl_shen_pvar kl_X)))
-                !appl_667 <- appl_666 `pseq` klCons (ApplC (wrapNamed "shen.pvar" kl_shen_pvar)) appl_666
-                let !appl_668 = ApplC (Func "lambda" (Context (\(!kl_X) -> do kl_X `pseq` kl_shen_symbol_table_entry kl_X)))
-                !appl_669 <- intern (Types.Atom (Types.Str "shen"))
-                !appl_670 <- appl_669 `pseq` kl_external appl_669
-                !appl_671 <- appl_668 `pseq` (appl_670 `pseq` kl_mapcan appl_668 appl_670)
-                !appl_672 <- appl_667 `pseq` (appl_671 `pseq` klCons appl_667 appl_671)
-                !appl_673 <- appl_665 `pseq` (appl_672 `pseq` klCons appl_665 appl_672)
-                !appl_674 <- appl_663 `pseq` (appl_673 `pseq` klCons appl_663 appl_673)
-                appl_674 `pseq` klSet (Types.Atom (Types.UnboundSym "shen.*symbol-table*")) appl_674) `catchError` (\(!kl_E) -> do return (Types.Atom (Types.Str "E")))
+{-# LANGUAGE BangPatterns #-}+{-# LANGUAGE OverloadedStrings #-}+{-# LANGUAGE Strict #-}+{-# LANGUAGE StrictData #-}+{-# LANGUAGE ViewPatterns #-}++module Backend.Declarations where++import Control.Monad.Except+import Control.Parallel+import Environment+import Core.Primitives as Primitives+import Backend.Utils+import Core.Types+import Core.Utils+import Wrap+import Backend.Toplevel+import Backend.Core+import Backend.Sys+import Backend.Sequent+import Backend.Yacc+import Backend.Reader+import Backend.Prolog+import Backend.Track+import Backend.Load+import Backend.Writer+import Backend.Macros++{-+Copyright (c) 2015, Mark Tarver+All rights reserved.++Redistribution and use in source and binary forms, with or without+modification, are permitted provided that the following conditions are met:++1. Redistributions of source code must retain the above copyright+   notice, this list of conditions and the following disclaimer.+2. Redistributions in binary form must reproduce the above copyright+   notice, this list of conditions and the following disclaimer in the+   documentation and/or other materials provided with the distribution.+3. The name of Mark Tarver may not be used to endorse or promote products+   derived from this software without specific prior written permission.++THIS SOFTWARE IS PROVIDED BY Mark Tarver ''AS IS'' AND ANY+EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED+WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE+DISCLAIMED. IN NO EVENT SHALL Mark Tarver BE LIABLE FOR ANY+DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES+(INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;+LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND+ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT+(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS+SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.+-}++kl_shen_initialise_arity_table :: Core.Types.KLValue ->+                                  Core.Types.KLContext Core.Types.Env Core.Types.KLValue+kl_shen_initialise_arity_table (!kl_V1456) = do let !appl_0 = Atom Nil+                                                !kl_if_1 <- appl_0 `pseq` (kl_V1456 `pseq` eq appl_0 kl_V1456)+                                                case kl_if_1 of+                                                    Atom (B (True)) -> do return (Atom Nil)+                                                    Atom (B (False)) -> do let pat_cond_2 kl_V1456 kl_V1456h kl_V1456t kl_V1456th kl_V1456tt = do let !appl_3 = ApplC (Func "lambda" (Context (\(!kl_DecArity) -> do kl_V1456tt `pseq` kl_shen_initialise_arity_table kl_V1456tt)))+                                                                                                                                                  !appl_4 <- value (Core.Types.Atom (Core.Types.UnboundSym "*property-vector*"))+                                                                                                                                                  !appl_5 <- kl_V1456h `pseq` (kl_V1456th `pseq` (appl_4 `pseq` kl_put kl_V1456h (ApplC (wrapNamed "arity" kl_arity)) kl_V1456th appl_4))+                                                                                                                                                  appl_5 `pseq` applyWrapper appl_3 [appl_5]+                                                                               pat_cond_6 = do do kl_shen_f_error (ApplC (wrapNamed "shen.initialise_arity_table" kl_shen_initialise_arity_table))+                                                                            in case kl_V1456 of+                                                                                   !(kl_V1456@(Cons (!kl_V1456h)+                                                                                                    (!(kl_V1456t@(Cons (!kl_V1456th)+                                                                                                                       (!kl_V1456tt)))))) -> pat_cond_2 kl_V1456 kl_V1456h kl_V1456t kl_V1456th kl_V1456tt+                                                                                   _ -> pat_cond_6+                                                    _ -> throwError "if: expected boolean"++kl_arity :: Core.Types.KLValue ->+            Core.Types.KLContext Core.Types.Env Core.Types.KLValue+kl_arity (!kl_V1458) = do let !appl_0 = ApplC (PL "thunk" (do return (Core.Types.Atom (Core.Types.N (Core.Types.KI (-1))))))+                          !appl_1 <- value (Core.Types.Atom (Core.Types.UnboundSym "*property-vector*"))+                          kl_V1458 `pseq` (appl_0 `pseq` (appl_1 `pseq` kl_getDivor kl_V1458 (ApplC (wrapNamed "arity" kl_arity)) appl_0 appl_1))++kl_systemf :: Core.Types.KLValue ->+              Core.Types.KLContext Core.Types.Env Core.Types.KLValue+kl_systemf (!kl_V1460) = do let !appl_0 = ApplC (Func "lambda" (Context (\(!kl_Shen) -> do let !appl_1 = ApplC (Func "lambda" (Context (\(!kl_External) -> do let !appl_2 = ApplC (Func "lambda" (Context (\(!kl_Place) -> do return kl_V1460)))+                                                                                                                                                              !appl_3 <- kl_V1460 `pseq` (kl_External `pseq` kl_adjoin kl_V1460 kl_External)+                                                                                                                                                              !appl_4 <- value (Core.Types.Atom (Core.Types.UnboundSym "*property-vector*"))+                                                                                                                                                              !appl_5 <- kl_Shen `pseq` (appl_3 `pseq` (appl_4 `pseq` kl_put kl_Shen (Core.Types.Atom (Core.Types.UnboundSym "shen.external-symbols")) appl_3 appl_4))+                                                                                                                                                              appl_5 `pseq` applyWrapper appl_2 [appl_5])))+                                                                                           !appl_6 <- value (Core.Types.Atom (Core.Types.UnboundSym "*property-vector*"))+                                                                                           !appl_7 <- kl_Shen `pseq` (appl_6 `pseq` kl_get kl_Shen (Core.Types.Atom (Core.Types.UnboundSym "shen.external-symbols")) appl_6)+                                                                                           appl_7 `pseq` applyWrapper appl_1 [appl_7])))+                            !appl_8 <- intern (Core.Types.Atom (Core.Types.Str "shen"))+                            appl_8 `pseq` applyWrapper appl_0 [appl_8]++kl_adjoin :: Core.Types.KLValue ->+             Core.Types.KLValue ->+             Core.Types.KLContext Core.Types.Env Core.Types.KLValue+kl_adjoin (!kl_V1463) (!kl_V1464) = do !kl_if_0 <- kl_V1463 `pseq` (kl_V1464 `pseq` kl_elementP kl_V1463 kl_V1464)+                                       case kl_if_0 of+                                           Atom (B (True)) -> do return kl_V1464+                                           Atom (B (False)) -> do do kl_V1463 `pseq` (kl_V1464 `pseq` klCons kl_V1463 kl_V1464)+                                           _ -> throwError "if: expected boolean"++kl_shen_lambda_form_entry :: Core.Types.KLValue ->+                             Core.Types.KLContext Core.Types.Env Core.Types.KLValue+kl_shen_lambda_form_entry (!kl_V1466) = do let pat_cond_0 = do return (Atom Nil)+                                               pat_cond_1 = do return (Atom Nil)+                                               pat_cond_2 = do do let !appl_3 = ApplC (Func "lambda" (Context (\(!kl_ArityF) -> do let pat_cond_4 = do return (Atom Nil)+                                                                                                                                       pat_cond_5 = do do let pat_cond_6 = do return (Atom Nil)+                                                                                                                                                              pat_cond_7 = do do !appl_8 <- kl_V1466 `pseq` (kl_ArityF `pseq` kl_shen_lambda_form kl_V1466 kl_ArityF)+                                                                                                                                                                                 !appl_9 <- appl_8 `pseq` evalKL appl_8+                                                                                                                                                                                 !appl_10 <- kl_V1466 `pseq` (appl_9 `pseq` klCons kl_V1466 appl_9)+                                                                                                                                                                                 let !appl_11 = Atom Nil+                                                                                                                                                                                 appl_10 `pseq` (appl_11 `pseq` klCons appl_10 appl_11)+                                                                                                                                                           in case kl_ArityF of+                                                                                                                                                                  kl_ArityF@(Atom (N (KI 0))) -> pat_cond_6+                                                                                                                                                                  _ -> pat_cond_7+                                                                                                                                    in case kl_ArityF of+                                                                                                                                           kl_ArityF@(Atom (N (KI (-1)))) -> pat_cond_4+                                                                                                                                           _ -> pat_cond_5)))+                                                                  !appl_12 <- kl_V1466 `pseq` kl_arity kl_V1466+                                                                  appl_12 `pseq` applyWrapper appl_3 [appl_12]+                                            in case kl_V1466 of+                                                   kl_V1466@(Atom (UnboundSym "package")) -> pat_cond_0+                                                   kl_V1466@(ApplC (PL "package" _)) -> pat_cond_0+                                                   kl_V1466@(ApplC (Func "package" _)) -> pat_cond_0+                                                   kl_V1466@(Atom (UnboundSym "receive")) -> pat_cond_1+                                                   kl_V1466@(ApplC (PL "receive" _)) -> pat_cond_1+                                                   kl_V1466@(ApplC (Func "receive" _)) -> pat_cond_1+                                                   _ -> pat_cond_2++kl_shen_lambda_form :: Core.Types.KLValue ->+                       Core.Types.KLValue ->+                       Core.Types.KLContext Core.Types.Env Core.Types.KLValue+kl_shen_lambda_form (!kl_V1469) (!kl_V1470) = do let pat_cond_0 = do return kl_V1469+                                                     pat_cond_1 = do do let !appl_2 = ApplC (Func "lambda" (Context (\(!kl_X) -> do !appl_3 <- kl_V1469 `pseq` (kl_X `pseq` kl_shen_add_end kl_V1469 kl_X)+                                                                                                                                    !appl_4 <- kl_V1470 `pseq` Primitives.subtract kl_V1470 (Core.Types.Atom (Core.Types.N (Core.Types.KI 1)))+                                                                                                                                    !appl_5 <- appl_3 `pseq` (appl_4 `pseq` kl_shen_lambda_form appl_3 appl_4)+                                                                                                                                    let !appl_6 = Atom Nil+                                                                                                                                    !appl_7 <- appl_5 `pseq` (appl_6 `pseq` klCons appl_5 appl_6)+                                                                                                                                    !appl_8 <- kl_X `pseq` (appl_7 `pseq` klCons kl_X appl_7)+                                                                                                                                    appl_8 `pseq` klCons (Core.Types.Atom (Core.Types.UnboundSym "lambda")) appl_8)))+                                                                        !appl_9 <- kl_gensym (Core.Types.Atom (Core.Types.UnboundSym "V"))+                                                                        appl_9 `pseq` applyWrapper appl_2 [appl_9]+                                                  in case kl_V1470 of+                                                         kl_V1470@(Atom (N (KI 0))) -> pat_cond_0+                                                         _ -> pat_cond_1++kl_shen_add_end :: Core.Types.KLValue ->+                   Core.Types.KLValue ->+                   Core.Types.KLContext Core.Types.Env Core.Types.KLValue+kl_shen_add_end (!kl_V1473) (!kl_V1474) = do let pat_cond_0 kl_V1473 kl_V1473h kl_V1473t = do let !appl_1 = Atom Nil+                                                                                              !appl_2 <- kl_V1474 `pseq` (appl_1 `pseq` klCons kl_V1474 appl_1)+                                                                                              kl_V1473 `pseq` (appl_2 `pseq` kl_append kl_V1473 appl_2)+                                                 pat_cond_3 = do do let !appl_4 = Atom Nil+                                                                    !appl_5 <- kl_V1474 `pseq` (appl_4 `pseq` klCons kl_V1474 appl_4)+                                                                    kl_V1473 `pseq` (appl_5 `pseq` klCons kl_V1473 appl_5)+                                              in case kl_V1473 of+                                                     !(kl_V1473@(Cons (!kl_V1473h)+                                                                      (!kl_V1473t))) -> pat_cond_0 kl_V1473 kl_V1473h kl_V1473t+                                                     _ -> pat_cond_3++kl_shen_set_lambda_form_entry :: Core.Types.KLValue ->+                                 Core.Types.KLContext Core.Types.Env Core.Types.KLValue+kl_shen_set_lambda_form_entry (!kl_V1476) = do let pat_cond_0 kl_V1476 kl_V1476h kl_V1476t = do !appl_1 <- value (Core.Types.Atom (Core.Types.UnboundSym "*property-vector*"))+                                                                                                kl_V1476h `pseq` (kl_V1476t `pseq` (appl_1 `pseq` kl_put kl_V1476h (ApplC (wrapNamed "shen.lambda-form" kl_shen_lambda_form)) kl_V1476t appl_1))+                                                   pat_cond_2 = do do kl_shen_f_error (ApplC (wrapNamed "shen.set-lambda-form-entry" kl_shen_set_lambda_form_entry))+                                                in case kl_V1476 of+                                                       !(kl_V1476@(Cons (!kl_V1476h)+                                                                        (!kl_V1476t))) -> pat_cond_0 kl_V1476 kl_V1476h kl_V1476t+                                                       _ -> pat_cond_2++kl_specialise :: Core.Types.KLValue ->+                 Core.Types.KLContext Core.Types.Env Core.Types.KLValue+kl_specialise (!kl_V1478) = do !appl_0 <- value (Core.Types.Atom (Core.Types.UnboundSym "shen.*special*"))+                               !appl_1 <- kl_V1478 `pseq` (appl_0 `pseq` klCons kl_V1478 appl_0)+                               !appl_2 <- appl_1 `pseq` klSet (Core.Types.Atom (Core.Types.UnboundSym "shen.*special*")) appl_1+                               appl_2 `pseq` (kl_V1478 `pseq` kl_do appl_2 kl_V1478)++kl_unspecialise :: Core.Types.KLValue ->+                   Core.Types.KLContext Core.Types.Env Core.Types.KLValue+kl_unspecialise (!kl_V1480) = do !appl_0 <- value (Core.Types.Atom (Core.Types.UnboundSym "shen.*special*"))+                                 !appl_1 <- kl_V1480 `pseq` (appl_0 `pseq` kl_remove kl_V1480 appl_0)+                                 !appl_2 <- appl_1 `pseq` klSet (Core.Types.Atom (Core.Types.UnboundSym "shen.*special*")) appl_1+                                 appl_2 `pseq` (kl_V1480 `pseq` kl_do appl_2 kl_V1480)++expr11 :: Core.Types.KLContext Core.Types.Env Core.Types.KLValue+expr11 = do (do return (Core.Types.Atom (Core.Types.Str "Copyright (c) 2015, Mark Tarver\n\nAll rights reserved.\n\nRedistribution and use in source and binary forms, with or without\nmodification, are permitted provided that the following conditions are met:\n1. Redistributions of source code must retain the above copyright\n   notice, this list of conditions and the following disclaimer.\n2. Redistributions in binary form must reproduce the above copyright\n   notice, this list of conditions and the following disclaimer in the\n   documentation and/or other materials provided with the distribution.\n3. The name of Mark Tarver may not be used to endorse or promote products\n   derived from this software without specific prior written permission.\n\nTHIS SOFTWARE IS PROVIDED BY Mark Tarver ''AS IS'' AND ANY\nEXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED\nWARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE\nDISCLAIMED. IN NO EVENT SHALL Mark Tarver BE LIABLE FOR ANY\nDIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES\n(INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;\nLOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND\nON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT\n(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS\nSOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE."))) `catchError` (\(!kl_E) -> do return (Core.Types.Atom (Core.Types.Str "E")))+            (do klSet (Core.Types.Atom (Core.Types.UnboundSym "shen.*installing-kl*")) (Atom (B False))) `catchError` (\(!kl_E) -> do return (Core.Types.Atom (Core.Types.Str "E")))+            (do let !appl_0 = Atom Nil+                appl_0 `pseq` klSet (Core.Types.Atom (Core.Types.UnboundSym "shen.*history*")) appl_0) `catchError` (\(!kl_E) -> do return (Core.Types.Atom (Core.Types.Str "E")))+            (do klSet (Core.Types.Atom (Core.Types.UnboundSym "shen.*tc*")) (Atom (B False))) `catchError` (\(!kl_E) -> do return (Core.Types.Atom (Core.Types.Str "E")))+            (do !appl_1 <- kl_dict (Core.Types.Atom (Core.Types.N (Core.Types.KI 20000)))+                appl_1 `pseq` klSet (Core.Types.Atom (Core.Types.UnboundSym "*property-vector*")) appl_1) `catchError` (\(!kl_E) -> do return (Core.Types.Atom (Core.Types.Str "E")))+            (do klSet (Core.Types.Atom (Core.Types.UnboundSym "shen.*process-counter*")) (Core.Types.Atom (Core.Types.N (Core.Types.KI 0)))) `catchError` (\(!kl_E) -> do return (Core.Types.Atom (Core.Types.Str "E")))+            (do !appl_2 <- kl_vector (Core.Types.Atom (Core.Types.N (Core.Types.KI 1000)))+                appl_2 `pseq` klSet (Core.Types.Atom (Core.Types.UnboundSym "shen.*varcounter*")) appl_2) `catchError` (\(!kl_E) -> do return (Core.Types.Atom (Core.Types.Str "E")))+            (do !appl_3 <- kl_vector (Core.Types.Atom (Core.Types.N (Core.Types.KI 1000)))+                appl_3 `pseq` klSet (Core.Types.Atom (Core.Types.UnboundSym "shen.*prologvectors*")) appl_3) `catchError` (\(!kl_E) -> do return (Core.Types.Atom (Core.Types.Str "E")))+            (do let !appl_4 = ApplC (Func "lambda" (Context (\(!kl_X) -> do return kl_X)))+                appl_4 `pseq` klSet (Core.Types.Atom (Core.Types.UnboundSym "shen.*demodulation-function*")) appl_4) `catchError` (\(!kl_E) -> do return (Core.Types.Atom (Core.Types.Str "E")))+            (do let !appl_5 = Atom Nil+                !appl_6 <- appl_5 `pseq` klCons (ApplC (wrapNamed "shen.function-macro" kl_shen_function_macro)) appl_5+                !appl_7 <- appl_6 `pseq` klCons (ApplC (wrapNamed "shen.defprolog-macro" kl_shen_defprolog_macro)) appl_6+                !appl_8 <- appl_7 `pseq` klCons (ApplC (wrapNamed "shen.@s-macro" kl_shen_Ats_macro)) appl_7+                !appl_9 <- appl_8 `pseq` klCons (ApplC (wrapNamed "shen.nl-macro" kl_shen_nl_macro)) appl_8+                !appl_10 <- appl_9 `pseq` klCons (ApplC (wrapNamed "shen.synonyms-macro" kl_shen_synonyms_macro)) appl_9+                !appl_11 <- appl_10 `pseq` klCons (ApplC (wrapNamed "shen.prolog-macro" kl_shen_prolog_macro)) appl_10+                !appl_12 <- appl_11 `pseq` klCons (ApplC (wrapNamed "shen.error-macro" kl_shen_error_macro)) appl_11+                !appl_13 <- appl_12 `pseq` klCons (ApplC (wrapNamed "shen.input-macro" kl_shen_input_macro)) appl_12+                !appl_14 <- appl_13 `pseq` klCons (ApplC (wrapNamed "shen.output-macro" kl_shen_output_macro)) appl_13+                !appl_15 <- appl_14 `pseq` klCons (ApplC (wrapNamed "shen.make-string-macro" kl_shen_make_string_macro)) appl_14+                !appl_16 <- appl_15 `pseq` klCons (ApplC (wrapNamed "shen.assoc-macro" kl_shen_assoc_macro)) appl_15+                !appl_17 <- appl_16 `pseq` klCons (ApplC (wrapNamed "shen.let-macro" kl_shen_let_macro)) appl_16+                !appl_18 <- appl_17 `pseq` klCons (ApplC (wrapNamed "shen.datatype-macro" kl_shen_datatype_macro)) appl_17+                !appl_19 <- appl_18 `pseq` klCons (ApplC (wrapNamed "shen.compile-macro" kl_shen_compile_macro)) appl_18+                !appl_20 <- appl_19 `pseq` klCons (ApplC (wrapNamed "shen.put/get-macro" kl_shen_putDivget_macro)) appl_19+                !appl_21 <- appl_20 `pseq` klCons (ApplC (wrapNamed "shen.abs-macro" kl_shen_abs_macro)) appl_20+                !appl_22 <- appl_21 `pseq` klCons (ApplC (wrapNamed "shen.cases-macro" kl_shen_cases_macro)) appl_21+                !appl_23 <- appl_22 `pseq` klCons (ApplC (wrapNamed "shen.timer-macro" kl_shen_timer_macro)) appl_22+                appl_23 `pseq` klSet (Core.Types.Atom (Core.Types.UnboundSym "shen.*macroreg*")) appl_23) `catchError` (\(!kl_E) -> do return (Core.Types.Atom (Core.Types.Str "E")))+            (do let !appl_24 = ApplC (Func "lambda" (Context (\(!kl_X) -> do kl_X `pseq` kl_shen_timer_macro kl_X)))+                let !appl_25 = ApplC (Func "lambda" (Context (\(!kl_X) -> do kl_X `pseq` kl_shen_cases_macro kl_X)))+                let !appl_26 = ApplC (Func "lambda" (Context (\(!kl_X) -> do kl_X `pseq` kl_shen_abs_macro kl_X)))+                let !appl_27 = ApplC (Func "lambda" (Context (\(!kl_X) -> do kl_X `pseq` kl_shen_putDivget_macro kl_X)))+                let !appl_28 = ApplC (Func "lambda" (Context (\(!kl_X) -> do kl_X `pseq` kl_shen_compile_macro kl_X)))+                let !appl_29 = ApplC (Func "lambda" (Context (\(!kl_X) -> do kl_X `pseq` kl_shen_datatype_macro kl_X)))+                let !appl_30 = ApplC (Func "lambda" (Context (\(!kl_X) -> do kl_X `pseq` kl_shen_let_macro kl_X)))+                let !appl_31 = ApplC (Func "lambda" (Context (\(!kl_X) -> do kl_X `pseq` kl_shen_assoc_macro kl_X)))+                let !appl_32 = ApplC (Func "lambda" (Context (\(!kl_X) -> do kl_X `pseq` kl_shen_make_string_macro kl_X)))+                let !appl_33 = ApplC (Func "lambda" (Context (\(!kl_X) -> do kl_X `pseq` kl_shen_output_macro kl_X)))+                let !appl_34 = ApplC (Func "lambda" (Context (\(!kl_X) -> do kl_X `pseq` kl_shen_input_macro kl_X)))+                let !appl_35 = ApplC (Func "lambda" (Context (\(!kl_X) -> do kl_X `pseq` kl_shen_error_macro kl_X)))+                let !appl_36 = ApplC (Func "lambda" (Context (\(!kl_X) -> do kl_X `pseq` kl_shen_prolog_macro kl_X)))+                let !appl_37 = ApplC (Func "lambda" (Context (\(!kl_X) -> do kl_X `pseq` kl_shen_synonyms_macro kl_X)))+                let !appl_38 = ApplC (Func "lambda" (Context (\(!kl_X) -> do kl_X `pseq` kl_shen_nl_macro kl_X)))+                let !appl_39 = ApplC (Func "lambda" (Context (\(!kl_X) -> do kl_X `pseq` kl_shen_Ats_macro kl_X)))+                let !appl_40 = ApplC (Func "lambda" (Context (\(!kl_X) -> do kl_X `pseq` kl_shen_defprolog_macro kl_X)))+                let !appl_41 = ApplC (Func "lambda" (Context (\(!kl_X) -> do kl_X `pseq` kl_shen_function_macro kl_X)))+                let !appl_42 = Atom Nil+                !appl_43 <- appl_41 `pseq` (appl_42 `pseq` klCons appl_41 appl_42)+                !appl_44 <- appl_40 `pseq` (appl_43 `pseq` klCons appl_40 appl_43)+                !appl_45 <- appl_39 `pseq` (appl_44 `pseq` klCons appl_39 appl_44)+                !appl_46 <- appl_38 `pseq` (appl_45 `pseq` klCons appl_38 appl_45)+                !appl_47 <- appl_37 `pseq` (appl_46 `pseq` klCons appl_37 appl_46)+                !appl_48 <- appl_36 `pseq` (appl_47 `pseq` klCons appl_36 appl_47)+                !appl_49 <- appl_35 `pseq` (appl_48 `pseq` klCons appl_35 appl_48)+                !appl_50 <- appl_34 `pseq` (appl_49 `pseq` klCons appl_34 appl_49)+                !appl_51 <- appl_33 `pseq` (appl_50 `pseq` klCons appl_33 appl_50)+                !appl_52 <- appl_32 `pseq` (appl_51 `pseq` klCons appl_32 appl_51)+                !appl_53 <- appl_31 `pseq` (appl_52 `pseq` klCons appl_31 appl_52)+                !appl_54 <- appl_30 `pseq` (appl_53 `pseq` klCons appl_30 appl_53)+                !appl_55 <- appl_29 `pseq` (appl_54 `pseq` klCons appl_29 appl_54)+                !appl_56 <- appl_28 `pseq` (appl_55 `pseq` klCons appl_28 appl_55)+                !appl_57 <- appl_27 `pseq` (appl_56 `pseq` klCons appl_27 appl_56)+                !appl_58 <- appl_26 `pseq` (appl_57 `pseq` klCons appl_26 appl_57)+                !appl_59 <- appl_25 `pseq` (appl_58 `pseq` klCons appl_25 appl_58)+                !appl_60 <- appl_24 `pseq` (appl_59 `pseq` klCons appl_24 appl_59)+                appl_60 `pseq` klSet (Core.Types.Atom (Core.Types.UnboundSym "*macros*")) appl_60) `catchError` (\(!kl_E) -> do return (Core.Types.Atom (Core.Types.Str "E")))+            (do klSet (Core.Types.Atom (Core.Types.UnboundSym "shen.*gensym*")) (Core.Types.Atom (Core.Types.N (Core.Types.KI 0)))) `catchError` (\(!kl_E) -> do return (Core.Types.Atom (Core.Types.Str "E")))+            (do let !appl_61 = Atom Nil+                appl_61 `pseq` klSet (Core.Types.Atom (Core.Types.UnboundSym "shen.*tracking*")) appl_61) `catchError` (\(!kl_E) -> do return (Core.Types.Atom (Core.Types.Str "E")))+            (do let !appl_62 = Atom Nil+                !appl_63 <- appl_62 `pseq` klCons (Core.Types.Atom (Core.Types.UnboundSym "Z")) appl_62+                !appl_64 <- appl_63 `pseq` klCons (Core.Types.Atom (Core.Types.UnboundSym "Y")) appl_63+                !appl_65 <- appl_64 `pseq` klCons (Core.Types.Atom (Core.Types.UnboundSym "X")) appl_64+                !appl_66 <- appl_65 `pseq` klCons (Core.Types.Atom (Core.Types.UnboundSym "W")) appl_65+                !appl_67 <- appl_66 `pseq` klCons (Core.Types.Atom (Core.Types.UnboundSym "V")) appl_66+                !appl_68 <- appl_67 `pseq` klCons (Core.Types.Atom (Core.Types.UnboundSym "U")) appl_67+                !appl_69 <- appl_68 `pseq` klCons (Core.Types.Atom (Core.Types.UnboundSym "T")) appl_68+                !appl_70 <- appl_69 `pseq` klCons (Core.Types.Atom (Core.Types.UnboundSym "S")) appl_69+                !appl_71 <- appl_70 `pseq` klCons (Core.Types.Atom (Core.Types.UnboundSym "R")) appl_70+                !appl_72 <- appl_71 `pseq` klCons (Core.Types.Atom (Core.Types.UnboundSym "Q")) appl_71+                !appl_73 <- appl_72 `pseq` klCons (Core.Types.Atom (Core.Types.UnboundSym "P")) appl_72+                !appl_74 <- appl_73 `pseq` klCons (Core.Types.Atom (Core.Types.UnboundSym "O")) appl_73+                !appl_75 <- appl_74 `pseq` klCons (Core.Types.Atom (Core.Types.UnboundSym "N")) appl_74+                !appl_76 <- appl_75 `pseq` klCons (Core.Types.Atom (Core.Types.UnboundSym "M")) appl_75+                !appl_77 <- appl_76 `pseq` klCons (Core.Types.Atom (Core.Types.UnboundSym "L")) appl_76+                !appl_78 <- appl_77 `pseq` klCons (Core.Types.Atom (Core.Types.UnboundSym "K")) appl_77+                !appl_79 <- appl_78 `pseq` klCons (Core.Types.Atom (Core.Types.UnboundSym "J")) appl_78+                !appl_80 <- appl_79 `pseq` klCons (Core.Types.Atom (Core.Types.UnboundSym "I")) appl_79+                !appl_81 <- appl_80 `pseq` klCons (Core.Types.Atom (Core.Types.UnboundSym "H")) appl_80+                !appl_82 <- appl_81 `pseq` klCons (Core.Types.Atom (Core.Types.UnboundSym "G")) appl_81+                !appl_83 <- appl_82 `pseq` klCons (Core.Types.Atom (Core.Types.UnboundSym "F")) appl_82+                !appl_84 <- appl_83 `pseq` klCons (Core.Types.Atom (Core.Types.UnboundSym "E")) appl_83+                !appl_85 <- appl_84 `pseq` klCons (Core.Types.Atom (Core.Types.UnboundSym "D")) appl_84+                !appl_86 <- appl_85 `pseq` klCons (Core.Types.Atom (Core.Types.UnboundSym "C")) appl_85+                !appl_87 <- appl_86 `pseq` klCons (Core.Types.Atom (Core.Types.UnboundSym "B")) appl_86+                !appl_88 <- appl_87 `pseq` klCons (Core.Types.Atom (Core.Types.UnboundSym "A")) appl_87+                appl_88 `pseq` klSet (Core.Types.Atom (Core.Types.UnboundSym "shen.*alphabet*")) appl_88) `catchError` (\(!kl_E) -> do return (Core.Types.Atom (Core.Types.Str "E")))+            (do let !appl_89 = Atom Nil+                !appl_90 <- appl_89 `pseq` klCons (ApplC (wrapNamed "open" openStream)) appl_89+                !appl_91 <- appl_90 `pseq` klCons (ApplC (wrapNamed "set" klSet)) appl_90+                !appl_92 <- appl_91 `pseq` klCons (Core.Types.Atom (Core.Types.UnboundSym "where")) appl_91+                !appl_93 <- appl_92 `pseq` klCons (Core.Types.Atom (Core.Types.UnboundSym "let")) appl_92+                !appl_94 <- appl_93 `pseq` klCons (Core.Types.Atom (Core.Types.UnboundSym "lambda")) appl_93+                !appl_95 <- appl_94 `pseq` klCons (ApplC (wrapNamed "cons" klCons)) appl_94+                !appl_96 <- appl_95 `pseq` klCons (ApplC (wrapNamed "@v" kl_Atv)) appl_95+                !appl_97 <- appl_96 `pseq` klCons (ApplC (wrapNamed "@s" kl_Ats)) appl_96+                !appl_98 <- appl_97 `pseq` klCons (ApplC (wrapNamed "@p" kl_Atp)) appl_97+                appl_98 `pseq` klSet (Core.Types.Atom (Core.Types.UnboundSym "shen.*special*")) appl_98) `catchError` (\(!kl_E) -> do return (Core.Types.Atom (Core.Types.Str "E")))+            (do let !appl_99 = Atom Nil+                !appl_100 <- appl_99 `pseq` klCons (Core.Types.Atom (Core.Types.UnboundSym "defmacro")) appl_99+                !appl_101 <- appl_100 `pseq` klCons (Core.Types.Atom (Core.Types.UnboundSym "shen.read+")) appl_100+                !appl_102 <- appl_101 `pseq` klCons (Core.Types.Atom (Core.Types.UnboundSym "defcc")) appl_101+                !appl_103 <- appl_102 `pseq` klCons (ApplC (wrapNamed "input+" kl_inputPlus)) appl_102+                !appl_104 <- appl_103 `pseq` klCons (ApplC (wrapNamed "shen.process-datatype" kl_shen_process_datatype)) appl_103+                !appl_105 <- appl_104 `pseq` klCons (Core.Types.Atom (Core.Types.UnboundSym "define")) appl_104+                appl_105 `pseq` klSet (Core.Types.Atom (Core.Types.UnboundSym "shen.*extraspecial*")) appl_105) `catchError` (\(!kl_E) -> do return (Core.Types.Atom (Core.Types.Str "E")))+            (do klSet (Core.Types.Atom (Core.Types.UnboundSym "shen.*spy*")) (Atom (B False))) `catchError` (\(!kl_E) -> do return (Core.Types.Atom (Core.Types.Str "E")))+            (do let !appl_106 = Atom Nil+                appl_106 `pseq` klSet (Core.Types.Atom (Core.Types.UnboundSym "shen.*datatypes*")) appl_106) `catchError` (\(!kl_E) -> do return (Core.Types.Atom (Core.Types.Str "E")))+            (do let !appl_107 = Atom Nil+                appl_107 `pseq` klSet (Core.Types.Atom (Core.Types.UnboundSym "shen.*alldatatypes*")) appl_107) `catchError` (\(!kl_E) -> do return (Core.Types.Atom (Core.Types.Str "E")))+            (do klSet (Core.Types.Atom (Core.Types.UnboundSym "shen.*shen-type-theory-enabled?*")) (Atom (B True))) `catchError` (\(!kl_E) -> do return (Core.Types.Atom (Core.Types.Str "E")))+            (do let !appl_108 = Atom Nil+                appl_108 `pseq` klSet (Core.Types.Atom (Core.Types.UnboundSym "shen.*synonyms*")) appl_108) `catchError` (\(!kl_E) -> do return (Core.Types.Atom (Core.Types.Str "E")))+            (do let !appl_109 = Atom Nil+                appl_109 `pseq` klSet (Core.Types.Atom (Core.Types.UnboundSym "shen.*system*")) appl_109) `catchError` (\(!kl_E) -> do return (Core.Types.Atom (Core.Types.Str "E")))+            (do let !appl_110 = Atom Nil+                appl_110 `pseq` klSet (Core.Types.Atom (Core.Types.UnboundSym "shen.*signedfuncs*")) appl_110) `catchError` (\(!kl_E) -> do return (Core.Types.Atom (Core.Types.Str "E")))+            (do klSet (Core.Types.Atom (Core.Types.UnboundSym "shen.*maxcomplexity*")) (Core.Types.Atom (Core.Types.N (Core.Types.KI 128)))) `catchError` (\(!kl_E) -> do return (Core.Types.Atom (Core.Types.Str "E")))+            (do klSet (Core.Types.Atom (Core.Types.UnboundSym "shen.*occurs*")) (Atom (B True))) `catchError` (\(!kl_E) -> do return (Core.Types.Atom (Core.Types.Str "E")))+            (do klSet (Core.Types.Atom (Core.Types.UnboundSym "shen.*maxinferences*")) (Core.Types.Atom (Core.Types.N (Core.Types.KI 1000000)))) `catchError` (\(!kl_E) -> do return (Core.Types.Atom (Core.Types.Str "E")))+            (do klSet (Core.Types.Atom (Core.Types.UnboundSym "*maximum-print-sequence-size*")) (Core.Types.Atom (Core.Types.N (Core.Types.KI 20)))) `catchError` (\(!kl_E) -> do return (Core.Types.Atom (Core.Types.Str "E")))+            (do klSet (Core.Types.Atom (Core.Types.UnboundSym "shen.*catch*")) (Core.Types.Atom (Core.Types.N (Core.Types.KI 0)))) `catchError` (\(!kl_E) -> do return (Core.Types.Atom (Core.Types.Str "E")))+            (do klSet (Core.Types.Atom (Core.Types.UnboundSym "shen.*call*")) (Core.Types.Atom (Core.Types.N (Core.Types.KI 0)))) `catchError` (\(!kl_E) -> do return (Core.Types.Atom (Core.Types.Str "E")))+            (do klSet (Core.Types.Atom (Core.Types.UnboundSym "shen.*infs*")) (Core.Types.Atom (Core.Types.N (Core.Types.KI 0)))) `catchError` (\(!kl_E) -> do return (Core.Types.Atom (Core.Types.Str "E")))+            (do klSet (Core.Types.Atom (Core.Types.UnboundSym "*hush*")) (Atom (B False))) `catchError` (\(!kl_E) -> do return (Core.Types.Atom (Core.Types.Str "E")))+            (do klSet (Core.Types.Atom (Core.Types.UnboundSym "shen.*optimise*")) (Atom (B False))) `catchError` (\(!kl_E) -> do return (Core.Types.Atom (Core.Types.Str "E")))+            (do klSet (Core.Types.Atom (Core.Types.UnboundSym "*version*")) (Core.Types.Atom (Core.Types.Str "Shen 20.0"))) `catchError` (\(!kl_E) -> do return (Core.Types.Atom (Core.Types.Str "E")))+            (do !appl_111 <- kl_boundP (Core.Types.Atom (Core.Types.UnboundSym "*home-directory*"))+                !kl_if_112 <- appl_111 `pseq` kl_not appl_111+                case kl_if_112 of+                    Atom (B (True)) -> do klSet (Core.Types.Atom (Core.Types.UnboundSym "*home-directory*")) (Core.Types.Atom (Core.Types.Str ""))+                    Atom (B (False)) -> do do return (Core.Types.Atom (Core.Types.UnboundSym "shen.skip"))+                    _ -> throwError "if: expected boolean") `catchError` (\(!kl_E) -> do return (Core.Types.Atom (Core.Types.Str "E")))+            (do !appl_113 <- kl_boundP (Core.Types.Atom (Core.Types.UnboundSym "shen.*sterror*"))+                !kl_if_114 <- appl_113 `pseq` kl_not appl_113+                case kl_if_114 of+                    Atom (B (True)) -> do !appl_115 <- value (Core.Types.Atom (Core.Types.UnboundSym "*stoutput*"))+                                          appl_115 `pseq` klSet (Core.Types.Atom (Core.Types.UnboundSym "shen.*sterror*")) appl_115+                    Atom (B (False)) -> do do return (Core.Types.Atom (Core.Types.UnboundSym "shen.skip"))+                    _ -> throwError "if: expected boolean") `catchError` (\(!kl_E) -> do return (Core.Types.Atom (Core.Types.Str "E")))+            (do let !appl_116 = Atom Nil+                !appl_117 <- appl_116 `pseq` klCons (Core.Types.Atom (Core.Types.N (Core.Types.KI 1))) appl_116+                !appl_118 <- appl_117 `pseq` klCons (ApplC (wrapNamed "dict-values" kl_dict_values)) appl_117+                !appl_119 <- appl_118 `pseq` klCons (Core.Types.Atom (Core.Types.N (Core.Types.KI 1))) appl_118+                !appl_120 <- appl_119 `pseq` klCons (ApplC (wrapNamed "dict-keys" kl_dict_keys)) appl_119+                !appl_121 <- appl_120 `pseq` klCons (Core.Types.Atom (Core.Types.N (Core.Types.KI 3))) appl_120+                !appl_122 <- appl_121 `pseq` klCons (ApplC (wrapNamed "dict-fold" kl_dict_fold)) appl_121+                !appl_123 <- appl_122 `pseq` klCons (Core.Types.Atom (Core.Types.N (Core.Types.KI 2))) appl_122+                !appl_124 <- appl_123 `pseq` klCons (ApplC (wrapNamed "dict-rm" kl_dict_rm)) appl_123+                !appl_125 <- appl_124 `pseq` klCons (Core.Types.Atom (Core.Types.N (Core.Types.KI 2))) appl_124+                !appl_126 <- appl_125 `pseq` klCons (ApplC (wrapNamed "<-dict" kl_LB_dict)) appl_125+                !appl_127 <- appl_126 `pseq` klCons (Core.Types.Atom (Core.Types.N (Core.Types.KI 3))) appl_126+                !appl_128 <- appl_127 `pseq` klCons (ApplC (wrapNamed "<-dict/or" kl_LB_dictDivor)) appl_127+                !appl_129 <- appl_128 `pseq` klCons (Core.Types.Atom (Core.Types.N (Core.Types.KI 3))) appl_128+                !appl_130 <- appl_129 `pseq` klCons (ApplC (wrapNamed "dict->" kl_dict_RB)) appl_129+                !appl_131 <- appl_130 `pseq` klCons (Core.Types.Atom (Core.Types.N (Core.Types.KI 1))) appl_130+                !appl_132 <- appl_131 `pseq` klCons (ApplC (wrapNamed "dict-count" kl_dict_count)) appl_131+                !appl_133 <- appl_132 `pseq` klCons (Core.Types.Atom (Core.Types.N (Core.Types.KI 1))) appl_132+                !appl_134 <- appl_133 `pseq` klCons (ApplC (wrapNamed "dict?" kl_dictP)) appl_133+                !appl_135 <- appl_134 `pseq` klCons (Core.Types.Atom (Core.Types.N (Core.Types.KI 1))) appl_134+                !appl_136 <- appl_135 `pseq` klCons (ApplC (wrapNamed "dict" kl_dict)) appl_135+                !appl_137 <- appl_136 `pseq` klCons (Core.Types.Atom (Core.Types.N (Core.Types.KI 1))) appl_136+                !appl_138 <- appl_137 `pseq` klCons (ApplC (wrapNamed "include-all-but" kl_include_all_but)) appl_137+                !appl_139 <- appl_138 `pseq` klCons (Core.Types.Atom (Core.Types.N (Core.Types.KI 1))) appl_138+                !appl_140 <- appl_139 `pseq` klCons (ApplC (wrapNamed "preclude-all-but" kl_preclude_all_but)) appl_139+                !appl_141 <- appl_140 `pseq` klCons (Core.Types.Atom (Core.Types.N (Core.Types.KI 1))) appl_140+                !appl_142 <- appl_141 `pseq` klCons (ApplC (wrapNamed "include" kl_include)) appl_141+                !appl_143 <- appl_142 `pseq` klCons (Core.Types.Atom (Core.Types.N (Core.Types.KI 1))) appl_142+                !appl_144 <- appl_143 `pseq` klCons (ApplC (wrapNamed "preclude" kl_preclude)) appl_143+                !appl_145 <- appl_144 `pseq` klCons (Core.Types.Atom (Core.Types.N (Core.Types.KI 2))) appl_144+                !appl_146 <- appl_145 `pseq` klCons (ApplC (wrapNamed "@s" kl_Ats)) appl_145+                !appl_147 <- appl_146 `pseq` klCons (Core.Types.Atom (Core.Types.N (Core.Types.KI 2))) appl_146+                !appl_148 <- appl_147 `pseq` klCons (ApplC (wrapNamed "@v" kl_Atv)) appl_147+                !appl_149 <- appl_148 `pseq` klCons (Core.Types.Atom (Core.Types.N (Core.Types.KI 2))) appl_148+                !appl_150 <- appl_149 `pseq` klCons (ApplC (wrapNamed "@p" kl_Atp)) appl_149+                !appl_151 <- appl_150 `pseq` klCons (Core.Types.Atom (Core.Types.N (Core.Types.KI 1))) appl_150+                !appl_152 <- appl_151 `pseq` klCons (ApplC (wrapNamed "<!>" kl_LBExclRB)) appl_151+                !appl_153 <- appl_152 `pseq` klCons (Core.Types.Atom (Core.Types.N (Core.Types.KI 1))) appl_152+                !appl_154 <- appl_153 `pseq` klCons (ApplC (wrapNamed "<e>" kl_LBeRB)) appl_153+                !appl_155 <- appl_154 `pseq` klCons (Core.Types.Atom (Core.Types.N (Core.Types.KI 2))) appl_154+                !appl_156 <- appl_155 `pseq` klCons (ApplC (wrapNamed "==" kl_EqEq)) appl_155+                !appl_157 <- appl_156 `pseq` klCons (Core.Types.Atom (Core.Types.N (Core.Types.KI 2))) appl_156+                !appl_158 <- appl_157 `pseq` klCons (ApplC (wrapNamed "-" Primitives.subtract)) appl_157+                !appl_159 <- appl_158 `pseq` klCons (Core.Types.Atom (Core.Types.N (Core.Types.KI 2))) appl_158+                !appl_160 <- appl_159 `pseq` klCons (ApplC (wrapNamed "/" divide)) appl_159+                !appl_161 <- appl_160 `pseq` klCons (Core.Types.Atom (Core.Types.N (Core.Types.KI 2))) appl_160+                !appl_162 <- appl_161 `pseq` klCons (ApplC (wrapNamed "*" multiply)) appl_161+                !appl_163 <- appl_162 `pseq` klCons (Core.Types.Atom (Core.Types.N (Core.Types.KI 2))) appl_162+                !appl_164 <- appl_163 `pseq` klCons (ApplC (wrapNamed "+" add)) appl_163+                !appl_165 <- appl_164 `pseq` klCons (Core.Types.Atom (Core.Types.N (Core.Types.KI 1))) appl_164+                !appl_166 <- appl_165 `pseq` klCons (ApplC (wrapNamed "y-or-n?" kl_y_or_nP)) appl_165+                !appl_167 <- appl_166 `pseq` klCons (Core.Types.Atom (Core.Types.N (Core.Types.KI 2))) appl_166+                !appl_168 <- appl_167 `pseq` klCons (ApplC (wrapNamed "write-to-file" kl_write_to_file)) appl_167+                !appl_169 <- appl_168 `pseq` klCons (Core.Types.Atom (Core.Types.N (Core.Types.KI 2))) appl_168+                !appl_170 <- appl_169 `pseq` klCons (ApplC (wrapNamed "write-byte" writeByte)) appl_169+                !appl_171 <- appl_170 `pseq` klCons (Core.Types.Atom (Core.Types.N (Core.Types.KI 0))) appl_170+                !appl_172 <- appl_171 `pseq` klCons (ApplC (PL "version" kl_version)) appl_171+                !appl_173 <- appl_172 `pseq` klCons (Core.Types.Atom (Core.Types.N (Core.Types.KI 1))) appl_172+                !appl_174 <- appl_173 `pseq` klCons (ApplC (wrapNamed "variable?" kl_variableP)) appl_173+                !appl_175 <- appl_174 `pseq` klCons (Core.Types.Atom (Core.Types.N (Core.Types.KI 2))) appl_174+                !appl_176 <- appl_175 `pseq` klCons (ApplC (wrapNamed "value/or" kl_valueDivor)) appl_175+                !appl_177 <- appl_176 `pseq` klCons (Core.Types.Atom (Core.Types.N (Core.Types.KI 1))) appl_176+                !appl_178 <- appl_177 `pseq` klCons (ApplC (wrapNamed "value" value)) appl_177+                !appl_179 <- appl_178 `pseq` klCons (Core.Types.Atom (Core.Types.N (Core.Types.KI 3))) appl_178+                !appl_180 <- appl_179 `pseq` klCons (ApplC (wrapNamed "vector->" kl_vector_RB)) appl_179+                !appl_181 <- appl_180 `pseq` klCons (Core.Types.Atom (Core.Types.N (Core.Types.KI 1))) appl_180+                !appl_182 <- appl_181 `pseq` klCons (ApplC (wrapNamed "vector?" kl_vectorP)) appl_181+                !appl_183 <- appl_182 `pseq` klCons (Core.Types.Atom (Core.Types.N (Core.Types.KI 1))) appl_182+                !appl_184 <- appl_183 `pseq` klCons (ApplC (wrapNamed "vector" kl_vector)) appl_183+                !appl_185 <- appl_184 `pseq` klCons (Core.Types.Atom (Core.Types.N (Core.Types.KI 1))) appl_184+                !appl_186 <- appl_185 `pseq` klCons (ApplC (wrapNamed "undefmacro" kl_undefmacro)) appl_185+                !appl_187 <- appl_186 `pseq` klCons (Core.Types.Atom (Core.Types.N (Core.Types.KI 1))) appl_186+                !appl_188 <- appl_187 `pseq` klCons (ApplC (wrapNamed "unspecialise" kl_unspecialise)) appl_187+                !appl_189 <- appl_188 `pseq` klCons (Core.Types.Atom (Core.Types.N (Core.Types.KI 1))) appl_188+                !appl_190 <- appl_189 `pseq` klCons (ApplC (wrapNamed "untrack" kl_untrack)) appl_189+                !appl_191 <- appl_190 `pseq` klCons (Core.Types.Atom (Core.Types.N (Core.Types.KI 2))) appl_190+                !appl_192 <- appl_191 `pseq` klCons (ApplC (wrapNamed "union" kl_union)) appl_191+                !appl_193 <- appl_192 `pseq` klCons (Core.Types.Atom (Core.Types.N (Core.Types.KI 4))) appl_192+                !appl_194 <- appl_193 `pseq` klCons (ApplC (wrapNamed "unify!" kl_unifyExcl)) appl_193+                !appl_195 <- appl_194 `pseq` klCons (Core.Types.Atom (Core.Types.N (Core.Types.KI 4))) appl_194+                !appl_196 <- appl_195 `pseq` klCons (ApplC (wrapNamed "unify" kl_unify)) appl_195+                !appl_197 <- appl_196 `pseq` klCons (Core.Types.Atom (Core.Types.N (Core.Types.KI 1))) appl_196+                !appl_198 <- appl_197 `pseq` klCons (ApplC (wrapNamed "unprofile" kl_unprofile)) appl_197+                !appl_199 <- appl_198 `pseq` klCons (Core.Types.Atom (Core.Types.N (Core.Types.KI 3))) appl_198+                !appl_200 <- appl_199 `pseq` klCons (ApplC (wrapNamed "unput" kl_unput)) appl_199+                !appl_201 <- appl_200 `pseq` klCons (Core.Types.Atom (Core.Types.N (Core.Types.KI 1))) appl_200+                !appl_202 <- appl_201 `pseq` klCons (ApplC (wrapNamed "undefmacro" kl_undefmacro)) appl_201+                !appl_203 <- appl_202 `pseq` klCons (Core.Types.Atom (Core.Types.N (Core.Types.KI 3))) appl_202+                !appl_204 <- appl_203 `pseq` klCons (ApplC (wrapNamed "return" kl_return)) appl_203+                !appl_205 <- appl_204 `pseq` klCons (Core.Types.Atom (Core.Types.N (Core.Types.KI 2))) appl_204+                !appl_206 <- appl_205 `pseq` klCons (ApplC (wrapNamed "type" typeA)) appl_205+                !appl_207 <- appl_206 `pseq` klCons (Core.Types.Atom (Core.Types.N (Core.Types.KI 1))) appl_206+                !appl_208 <- appl_207 `pseq` klCons (ApplC (wrapNamed "tuple?" kl_tupleP)) appl_207+                !appl_209 <- appl_208 `pseq` klCons (Core.Types.Atom (Core.Types.N (Core.Types.KI 2))) appl_208+                !appl_210 <- appl_209 `pseq` klCons (Core.Types.Atom (Core.Types.UnboundSym "trap-error")) appl_209+                !appl_211 <- appl_210 `pseq` klCons (Core.Types.Atom (Core.Types.N (Core.Types.KI 1))) appl_210+                !appl_212 <- appl_211 `pseq` klCons (ApplC (wrapNamed "track" kl_track)) appl_211+                !appl_213 <- appl_212 `pseq` klCons (Core.Types.Atom (Core.Types.N (Core.Types.KI 1))) appl_212+                !appl_214 <- appl_213 `pseq` klCons (ApplC (wrapNamed "tlstr" tlstr)) appl_213+                !appl_215 <- appl_214 `pseq` klCons (Core.Types.Atom (Core.Types.N (Core.Types.KI 1))) appl_214+                !appl_216 <- appl_215 `pseq` klCons (ApplC (wrapNamed "thaw" kl_thaw)) appl_215+                !appl_217 <- appl_216 `pseq` klCons (Core.Types.Atom (Core.Types.N (Core.Types.KI 0))) appl_216+                !appl_218 <- appl_217 `pseq` klCons (ApplC (PL "tc?" kl_tcP)) appl_217+                !appl_219 <- appl_218 `pseq` klCons (Core.Types.Atom (Core.Types.N (Core.Types.KI 1))) appl_218+                !appl_220 <- appl_219 `pseq` klCons (ApplC (wrapNamed "tc" kl_tc)) appl_219+                !appl_221 <- appl_220 `pseq` klCons (Core.Types.Atom (Core.Types.N (Core.Types.KI 1))) appl_220+                !appl_222 <- appl_221 `pseq` klCons (ApplC (wrapNamed "tl" tl)) appl_221+                !appl_223 <- appl_222 `pseq` klCons (Core.Types.Atom (Core.Types.N (Core.Types.KI 1))) appl_222+                !appl_224 <- appl_223 `pseq` klCons (ApplC (wrapNamed "tail" kl_tail)) appl_223+                !appl_225 <- appl_224 `pseq` klCons (Core.Types.Atom (Core.Types.N (Core.Types.KI 1))) appl_224+                !appl_226 <- appl_225 `pseq` klCons (ApplC (wrapNamed "systemf" kl_systemf)) appl_225+                !appl_227 <- appl_226 `pseq` klCons (Core.Types.Atom (Core.Types.N (Core.Types.KI 1))) appl_226+                !appl_228 <- appl_227 `pseq` klCons (ApplC (wrapNamed "symbol?" kl_symbolP)) appl_227+                !appl_229 <- appl_228 `pseq` klCons (Core.Types.Atom (Core.Types.N (Core.Types.KI 1))) appl_228+                !appl_230 <- appl_229 `pseq` klCons (ApplC (wrapNamed "sum" kl_sum)) appl_229+                !appl_231 <- appl_230 `pseq` klCons (Core.Types.Atom (Core.Types.N (Core.Types.KI 3))) appl_230+                !appl_232 <- appl_231 `pseq` klCons (ApplC (wrapNamed "subst" kl_subst)) appl_231+                !appl_233 <- appl_232 `pseq` klCons (Core.Types.Atom (Core.Types.N (Core.Types.KI 1))) appl_232+                !appl_234 <- appl_233 `pseq` klCons (ApplC (wrapNamed "str" str)) appl_233+                !appl_235 <- appl_234 `pseq` klCons (Core.Types.Atom (Core.Types.N (Core.Types.KI 1))) appl_234+                !appl_236 <- appl_235 `pseq` klCons (ApplC (wrapNamed "string?" stringP)) appl_235+                !appl_237 <- appl_236 `pseq` klCons (Core.Types.Atom (Core.Types.N (Core.Types.KI 1))) appl_236+                !appl_238 <- appl_237 `pseq` klCons (ApplC (wrapNamed "string->symbol" kl_string_RBsymbol)) appl_237+                !appl_239 <- appl_238 `pseq` klCons (Core.Types.Atom (Core.Types.N (Core.Types.KI 1))) appl_238+                !appl_240 <- appl_239 `pseq` klCons (ApplC (wrapNamed "string->n" stringToN)) appl_239+                !appl_241 <- appl_240 `pseq` klCons (Core.Types.Atom (Core.Types.N (Core.Types.KI 0))) appl_240+                !appl_242 <- appl_241 `pseq` klCons (ApplC (PL "sterror" kl_sterror)) appl_241+                !appl_243 <- appl_242 `pseq` klCons (Core.Types.Atom (Core.Types.N (Core.Types.KI 0))) appl_242+                !appl_244 <- appl_243 `pseq` klCons (ApplC (PL "stoutput" kl_stoutput)) appl_243+                !appl_245 <- appl_244 `pseq` klCons (Core.Types.Atom (Core.Types.N (Core.Types.KI 0))) appl_244+                !appl_246 <- appl_245 `pseq` klCons (ApplC (PL "stinput" kl_stinput)) appl_245+                !appl_247 <- appl_246 `pseq` klCons (Core.Types.Atom (Core.Types.N (Core.Types.KI 1))) appl_246+                !appl_248 <- appl_247 `pseq` klCons (ApplC (wrapNamed "step" kl_step)) appl_247+                !appl_249 <- appl_248 `pseq` klCons (Core.Types.Atom (Core.Types.N (Core.Types.KI 1))) appl_248+                !appl_250 <- appl_249 `pseq` klCons (ApplC (wrapNamed "spy" kl_spy)) appl_249+                !appl_251 <- appl_250 `pseq` klCons (Core.Types.Atom (Core.Types.N (Core.Types.KI 1))) appl_250+                !appl_252 <- appl_251 `pseq` klCons (ApplC (wrapNamed "specialise" kl_specialise)) appl_251+                !appl_253 <- appl_252 `pseq` klCons (Core.Types.Atom (Core.Types.N (Core.Types.KI 1))) appl_252+                !appl_254 <- appl_253 `pseq` klCons (ApplC (wrapNamed "snd" kl_snd)) appl_253+                !appl_255 <- appl_254 `pseq` klCons (Core.Types.Atom (Core.Types.N (Core.Types.KI 1))) appl_254+                !appl_256 <- appl_255 `pseq` klCons (ApplC (wrapNamed "simple-error" simpleError)) appl_255+                !appl_257 <- appl_256 `pseq` klCons (Core.Types.Atom (Core.Types.N (Core.Types.KI 2))) appl_256+                !appl_258 <- appl_257 `pseq` klCons (ApplC (wrapNamed "set" klSet)) appl_257+                !appl_259 <- appl_258 `pseq` klCons (Core.Types.Atom (Core.Types.N (Core.Types.KI 1))) appl_258+                !appl_260 <- appl_259 `pseq` klCons (ApplC (wrapNamed "reverse" kl_reverse)) appl_259+                !appl_261 <- appl_260 `pseq` klCons (Core.Types.Atom (Core.Types.N (Core.Types.KI 3))) appl_260+                !appl_262 <- appl_261 `pseq` klCons (Core.Types.Atom (Core.Types.UnboundSym "shen.require")) appl_261+                !appl_263 <- appl_262 `pseq` klCons (Core.Types.Atom (Core.Types.N (Core.Types.KI 2))) appl_262+                !appl_264 <- appl_263 `pseq` klCons (ApplC (wrapNamed "remove" kl_remove)) appl_263+                !appl_265 <- appl_264 `pseq` klCons (Core.Types.Atom (Core.Types.N (Core.Types.KI 0))) appl_264+                !appl_266 <- appl_265 `pseq` klCons (ApplC (PL "release" kl_release)) appl_265+                !appl_267 <- appl_266 `pseq` klCons (Core.Types.Atom (Core.Types.N (Core.Types.KI 1))) appl_266+                !appl_268 <- appl_267 `pseq` klCons (Core.Types.Atom (Core.Types.UnboundSym "receive")) appl_267+                !appl_269 <- appl_268 `pseq` klCons (Core.Types.Atom (Core.Types.N (Core.Types.KI 1))) appl_268+                !appl_270 <- appl_269 `pseq` klCons (ApplC (wrapNamed "read-char-code" kl_read_char_code)) appl_269+                !appl_271 <- appl_270 `pseq` klCons (Core.Types.Atom (Core.Types.N (Core.Types.KI 1))) appl_270+                !appl_272 <- appl_271 `pseq` klCons (ApplC (wrapNamed "read-from-string" kl_read_from_string)) appl_271+                !appl_273 <- appl_272 `pseq` klCons (Core.Types.Atom (Core.Types.N (Core.Types.KI 1))) appl_272+                !appl_274 <- appl_273 `pseq` klCons (ApplC (wrapNamed "read-byte" readByte)) appl_273+                !appl_275 <- appl_274 `pseq` klCons (Core.Types.Atom (Core.Types.N (Core.Types.KI 1))) appl_274+                !appl_276 <- appl_275 `pseq` klCons (ApplC (wrapNamed "read" kl_read)) appl_275+                !appl_277 <- appl_276 `pseq` klCons (Core.Types.Atom (Core.Types.N (Core.Types.KI 1))) appl_276+                !appl_278 <- appl_277 `pseq` klCons (ApplC (wrapNamed "read-file-as-bytelist" kl_read_file_as_bytelist)) appl_277+                !appl_279 <- appl_278 `pseq` klCons (Core.Types.Atom (Core.Types.N (Core.Types.KI 1))) appl_278+                !appl_280 <- appl_279 `pseq` klCons (ApplC (wrapNamed "read-file-as-charlist" kl_read_file_as_charlist)) appl_279+                !appl_281 <- appl_280 `pseq` klCons (Core.Types.Atom (Core.Types.N (Core.Types.KI 1))) appl_280+                !appl_282 <- appl_281 `pseq` klCons (ApplC (wrapNamed "read-file" kl_read_file)) appl_281+                !appl_283 <- appl_282 `pseq` klCons (Core.Types.Atom (Core.Types.N (Core.Types.KI 1))) appl_282+                !appl_284 <- appl_283 `pseq` klCons (ApplC (wrapNamed "read-file-as-string" kl_read_file_as_string)) appl_283+                !appl_285 <- appl_284 `pseq` klCons (Core.Types.Atom (Core.Types.N (Core.Types.KI 2))) appl_284+                !appl_286 <- appl_285 `pseq` klCons (Core.Types.Atom (Core.Types.UnboundSym "shen.reassemble")) appl_285+                !appl_287 <- appl_286 `pseq` klCons (Core.Types.Atom (Core.Types.N (Core.Types.KI 4))) appl_286+                !appl_288 <- appl_287 `pseq` klCons (ApplC (wrapNamed "put" kl_put)) appl_287+                !appl_289 <- appl_288 `pseq` klCons (Core.Types.Atom (Core.Types.N (Core.Types.KI 3))) appl_288+                !appl_290 <- appl_289 `pseq` klCons (ApplC (wrapNamed "address->" addressTo)) appl_289+                !appl_291 <- appl_290 `pseq` klCons (Core.Types.Atom (Core.Types.N (Core.Types.KI 1))) appl_290+                !appl_292 <- appl_291 `pseq` klCons (ApplC (wrapNamed "protect" kl_protect)) appl_291+                !appl_293 <- appl_292 `pseq` klCons (Core.Types.Atom (Core.Types.N (Core.Types.KI 1))) appl_292+                !appl_294 <- appl_293 `pseq` klCons (ApplC (wrapNamed "preclude-all-but" kl_preclude_all_but)) appl_293+                !appl_295 <- appl_294 `pseq` klCons (Core.Types.Atom (Core.Types.N (Core.Types.KI 1))) appl_294+                !appl_296 <- appl_295 `pseq` klCons (ApplC (wrapNamed "preclude" kl_preclude)) appl_295+                !appl_297 <- appl_296 `pseq` klCons (Core.Types.Atom (Core.Types.N (Core.Types.KI 1))) appl_296+                !appl_298 <- appl_297 `pseq` klCons (ApplC (wrapNamed "ps" kl_ps)) appl_297+                !appl_299 <- appl_298 `pseq` klCons (Core.Types.Atom (Core.Types.N (Core.Types.KI 2))) appl_298+                !appl_300 <- appl_299 `pseq` klCons (ApplC (wrapNamed "pr" kl_pr)) appl_299+                !appl_301 <- appl_300 `pseq` klCons (Core.Types.Atom (Core.Types.N (Core.Types.KI 1))) appl_300+                !appl_302 <- appl_301 `pseq` klCons (ApplC (wrapNamed "profile-results" kl_profile_results)) appl_301+                !appl_303 <- appl_302 `pseq` klCons (Core.Types.Atom (Core.Types.N (Core.Types.KI 1))) appl_302+                !appl_304 <- appl_303 `pseq` klCons (ApplC (wrapNamed "profile" kl_profile)) appl_303+                !appl_305 <- appl_304 `pseq` klCons (Core.Types.Atom (Core.Types.N (Core.Types.KI 1))) appl_304+                !appl_306 <- appl_305 `pseq` klCons (ApplC (wrapNamed "print" kl_print)) appl_305+                !appl_307 <- appl_306 `pseq` klCons (Core.Types.Atom (Core.Types.N (Core.Types.KI 2))) appl_306+                !appl_308 <- appl_307 `pseq` klCons (ApplC (wrapNamed "pos" pos)) appl_307+                !appl_309 <- appl_308 `pseq` klCons (Core.Types.Atom (Core.Types.N (Core.Types.KI 0))) appl_308+                !appl_310 <- appl_309 `pseq` klCons (ApplC (PL "porters" kl_porters)) appl_309+                !appl_311 <- appl_310 `pseq` klCons (Core.Types.Atom (Core.Types.N (Core.Types.KI 0))) appl_310+                !appl_312 <- appl_311 `pseq` klCons (ApplC (PL "port" kl_port)) appl_311+                !appl_313 <- appl_312 `pseq` klCons (Core.Types.Atom (Core.Types.N (Core.Types.KI 1))) appl_312+                !appl_314 <- appl_313 `pseq` klCons (ApplC (wrapNamed "package?" kl_packageP)) appl_313+                !appl_315 <- appl_314 `pseq` klCons (Core.Types.Atom (Core.Types.N (Core.Types.KI 3))) appl_314+                !appl_316 <- appl_315 `pseq` klCons (Core.Types.Atom (Core.Types.UnboundSym "package")) appl_315+                !appl_317 <- appl_316 `pseq` klCons (Core.Types.Atom (Core.Types.N (Core.Types.KI 0))) appl_316+                !appl_318 <- appl_317 `pseq` klCons (ApplC (PL "os" kl_os)) appl_317+                !appl_319 <- appl_318 `pseq` klCons (Core.Types.Atom (Core.Types.N (Core.Types.KI 2))) appl_318+                !appl_320 <- appl_319 `pseq` klCons (Core.Types.Atom (Core.Types.UnboundSym "or")) appl_319+                !appl_321 <- appl_320 `pseq` klCons (Core.Types.Atom (Core.Types.N (Core.Types.KI 1))) appl_320+                !appl_322 <- appl_321 `pseq` klCons (ApplC (wrapNamed "optimise" kl_optimise)) appl_321+                !appl_323 <- appl_322 `pseq` klCons (Core.Types.Atom (Core.Types.N (Core.Types.KI 2))) appl_322+                !appl_324 <- appl_323 `pseq` klCons (ApplC (wrapNamed "open" openStream)) appl_323+                !appl_325 <- appl_324 `pseq` klCons (Core.Types.Atom (Core.Types.N (Core.Types.KI 1))) appl_324+                !appl_326 <- appl_325 `pseq` klCons (ApplC (wrapNamed "occurs-check" kl_occurs_check)) appl_325+                !appl_327 <- appl_326 `pseq` klCons (Core.Types.Atom (Core.Types.N (Core.Types.KI 2))) appl_326+                !appl_328 <- appl_327 `pseq` klCons (ApplC (wrapNamed "occurrences" kl_occurrences)) appl_327+                !appl_329 <- appl_328 `pseq` klCons (Core.Types.Atom (Core.Types.N (Core.Types.KI 1))) appl_328+                !appl_330 <- appl_329 `pseq` klCons (ApplC (wrapNamed "occurs-check" kl_occurs_check)) appl_329+                !appl_331 <- appl_330 `pseq` klCons (Core.Types.Atom (Core.Types.N (Core.Types.KI 1))) appl_330+                !appl_332 <- appl_331 `pseq` klCons (ApplC (wrapNamed "number?" numberP)) appl_331+                !appl_333 <- appl_332 `pseq` klCons (Core.Types.Atom (Core.Types.N (Core.Types.KI 1))) appl_332+                !appl_334 <- appl_333 `pseq` klCons (ApplC (wrapNamed "n->string" nToString)) appl_333+                !appl_335 <- appl_334 `pseq` klCons (Core.Types.Atom (Core.Types.N (Core.Types.KI 2))) appl_334+                !appl_336 <- appl_335 `pseq` klCons (ApplC (wrapNamed "nth" kl_nth)) appl_335+                !appl_337 <- appl_336 `pseq` klCons (Core.Types.Atom (Core.Types.N (Core.Types.KI 1))) appl_336+                !appl_338 <- appl_337 `pseq` klCons (ApplC (wrapNamed "not" kl_not)) appl_337+                !appl_339 <- appl_338 `pseq` klCons (Core.Types.Atom (Core.Types.N (Core.Types.KI 1))) appl_338+                !appl_340 <- appl_339 `pseq` klCons (ApplC (wrapNamed "nl" kl_nl)) appl_339+                !appl_341 <- appl_340 `pseq` klCons (Core.Types.Atom (Core.Types.N (Core.Types.KI 1))) appl_340+                !appl_342 <- appl_341 `pseq` klCons (ApplC (wrapNamed "maxinferences" kl_maxinferences)) appl_341+                !appl_343 <- appl_342 `pseq` klCons (Core.Types.Atom (Core.Types.N (Core.Types.KI 2))) appl_342+                !appl_344 <- appl_343 `pseq` klCons (ApplC (wrapNamed "mapcan" kl_mapcan)) appl_343+                !appl_345 <- appl_344 `pseq` klCons (Core.Types.Atom (Core.Types.N (Core.Types.KI 2))) appl_344+                !appl_346 <- appl_345 `pseq` klCons (ApplC (wrapNamed "map" kl_map)) appl_345+                !appl_347 <- appl_346 `pseq` klCons (Core.Types.Atom (Core.Types.N (Core.Types.KI 1))) appl_346+                !appl_348 <- appl_347 `pseq` klCons (ApplC (wrapNamed "macroexpand" kl_macroexpand)) appl_347+                !appl_349 <- appl_348 `pseq` klCons (Core.Types.Atom (Core.Types.N (Core.Types.KI 1))) appl_348+                !appl_350 <- appl_349 `pseq` klCons (ApplC (wrapNamed "vector" kl_vector)) appl_349+                !appl_351 <- appl_350 `pseq` klCons (Core.Types.Atom (Core.Types.N (Core.Types.KI 2))) appl_350+                !appl_352 <- appl_351 `pseq` klCons (ApplC (wrapNamed "<=" lessThanOrEqualTo)) appl_351+                !appl_353 <- appl_352 `pseq` klCons (Core.Types.Atom (Core.Types.N (Core.Types.KI 2))) appl_352+                !appl_354 <- appl_353 `pseq` klCons (ApplC (wrapNamed "<" lessThan)) appl_353+                !appl_355 <- appl_354 `pseq` klCons (Core.Types.Atom (Core.Types.N (Core.Types.KI 1))) appl_354+                !appl_356 <- appl_355 `pseq` klCons (ApplC (wrapNamed "load" kl_load)) appl_355+                !appl_357 <- appl_356 `pseq` klCons (Core.Types.Atom (Core.Types.N (Core.Types.KI 1))) appl_356+                !appl_358 <- appl_357 `pseq` klCons (ApplC (wrapNamed "lineread" kl_lineread)) appl_357+                !appl_359 <- appl_358 `pseq` klCons (Core.Types.Atom (Core.Types.N (Core.Types.KI 1))) appl_358+                !appl_360 <- appl_359 `pseq` klCons (ApplC (wrapNamed "limit" kl_limit)) appl_359+                !appl_361 <- appl_360 `pseq` klCons (Core.Types.Atom (Core.Types.N (Core.Types.KI 1))) appl_360+                !appl_362 <- appl_361 `pseq` klCons (ApplC (wrapNamed "length" kl_length)) appl_361+                !appl_363 <- appl_362 `pseq` klCons (Core.Types.Atom (Core.Types.N (Core.Types.KI 0))) appl_362+                !appl_364 <- appl_363 `pseq` klCons (ApplC (PL "language" kl_language)) appl_363+                !appl_365 <- appl_364 `pseq` klCons (Core.Types.Atom (Core.Types.N (Core.Types.KI 0))) appl_364+                !appl_366 <- appl_365 `pseq` klCons (ApplC (PL "kill" kl_kill)) appl_365+                !appl_367 <- appl_366 `pseq` klCons (Core.Types.Atom (Core.Types.N (Core.Types.KI 0))) appl_366+                !appl_368 <- appl_367 `pseq` klCons (ApplC (PL "it" kl_it)) appl_367+                !appl_369 <- appl_368 `pseq` klCons (Core.Types.Atom (Core.Types.N (Core.Types.KI 1))) appl_368+                !appl_370 <- appl_369 `pseq` klCons (ApplC (wrapNamed "internal" kl_internal)) appl_369+                !appl_371 <- appl_370 `pseq` klCons (Core.Types.Atom (Core.Types.N (Core.Types.KI 2))) appl_370+                !appl_372 <- appl_371 `pseq` klCons (ApplC (wrapNamed "intersection" kl_intersection)) appl_371+                !appl_373 <- appl_372 `pseq` klCons (Core.Types.Atom (Core.Types.N (Core.Types.KI 0))) appl_372+                !appl_374 <- appl_373 `pseq` klCons (ApplC (PL "implementation" kl_implementation)) appl_373+                !appl_375 <- appl_374 `pseq` klCons (Core.Types.Atom (Core.Types.N (Core.Types.KI 2))) appl_374+                !appl_376 <- appl_375 `pseq` klCons (ApplC (wrapNamed "input+" kl_inputPlus)) appl_375+                !appl_377 <- appl_376 `pseq` klCons (Core.Types.Atom (Core.Types.N (Core.Types.KI 1))) appl_376+                !appl_378 <- appl_377 `pseq` klCons (ApplC (wrapNamed "input" kl_input)) appl_377+                !appl_379 <- appl_378 `pseq` klCons (Core.Types.Atom (Core.Types.N (Core.Types.KI 0))) appl_378+                !appl_380 <- appl_379 `pseq` klCons (ApplC (PL "inferences" kl_inferences)) appl_379+                !appl_381 <- appl_380 `pseq` klCons (Core.Types.Atom (Core.Types.N (Core.Types.KI 4))) appl_380+                !appl_382 <- appl_381 `pseq` klCons (ApplC (wrapNamed "identical" kl_identical)) appl_381+                !appl_383 <- appl_382 `pseq` klCons (Core.Types.Atom (Core.Types.N (Core.Types.KI 1))) appl_382+                !appl_384 <- appl_383 `pseq` klCons (ApplC (wrapNamed "intern" intern)) appl_383+                !appl_385 <- appl_384 `pseq` klCons (Core.Types.Atom (Core.Types.N (Core.Types.KI 1))) appl_384+                !appl_386 <- appl_385 `pseq` klCons (ApplC (wrapNamed "integer?" kl_integerP)) appl_385+                !appl_387 <- appl_386 `pseq` klCons (Core.Types.Atom (Core.Types.N (Core.Types.KI 3))) appl_386+                !appl_388 <- appl_387 `pseq` klCons (Core.Types.Atom (Core.Types.UnboundSym "if")) appl_387+                !appl_389 <- appl_388 `pseq` klCons (Core.Types.Atom (Core.Types.N (Core.Types.KI 1))) appl_388+                !appl_390 <- appl_389 `pseq` klCons (ApplC (wrapNamed "head" kl_head)) appl_389+                !appl_391 <- appl_390 `pseq` klCons (Core.Types.Atom (Core.Types.N (Core.Types.KI 1))) appl_390+                !appl_392 <- appl_391 `pseq` klCons (ApplC (wrapNamed "hdstr" kl_hdstr)) appl_391+                !appl_393 <- appl_392 `pseq` klCons (Core.Types.Atom (Core.Types.N (Core.Types.KI 1))) appl_392+                !appl_394 <- appl_393 `pseq` klCons (ApplC (wrapNamed "hdv" kl_hdv)) appl_393+                !appl_395 <- appl_394 `pseq` klCons (Core.Types.Atom (Core.Types.N (Core.Types.KI 1))) appl_394+                !appl_396 <- appl_395 `pseq` klCons (ApplC (wrapNamed "hd" hd)) appl_395+                !appl_397 <- appl_396 `pseq` klCons (Core.Types.Atom (Core.Types.N (Core.Types.KI 2))) appl_396+                !appl_398 <- appl_397 `pseq` klCons (ApplC (wrapNamed "hash" kl_hash)) appl_397+                !appl_399 <- appl_398 `pseq` klCons (Core.Types.Atom (Core.Types.N (Core.Types.KI 2))) appl_398+                !appl_400 <- appl_399 `pseq` klCons (ApplC (wrapNamed "=" eq)) appl_399+                !appl_401 <- appl_400 `pseq` klCons (Core.Types.Atom (Core.Types.N (Core.Types.KI 2))) appl_400+                !appl_402 <- appl_401 `pseq` klCons (ApplC (wrapNamed ">=" greaterThanOrEqualTo)) appl_401+                !appl_403 <- appl_402 `pseq` klCons (Core.Types.Atom (Core.Types.N (Core.Types.KI 2))) appl_402+                !appl_404 <- appl_403 `pseq` klCons (ApplC (wrapNamed ">" greaterThan)) appl_403+                !appl_405 <- appl_404 `pseq` klCons (Core.Types.Atom (Core.Types.N (Core.Types.KI 3))) appl_404+                !appl_406 <- appl_405 `pseq` klCons (ApplC (wrapNamed "<-vector/or" kl_LB_vectorDivor)) appl_405+                !appl_407 <- appl_406 `pseq` klCons (Core.Types.Atom (Core.Types.N (Core.Types.KI 2))) appl_406+                !appl_408 <- appl_407 `pseq` klCons (ApplC (wrapNamed "<-vector" kl_LB_vector)) appl_407+                !appl_409 <- appl_408 `pseq` klCons (Core.Types.Atom (Core.Types.N (Core.Types.KI 3))) appl_408+                !appl_410 <- appl_409 `pseq` klCons (ApplC (wrapNamed "<-address/or" kl_LB_addressDivor)) appl_409+                !appl_411 <- appl_410 `pseq` klCons (Core.Types.Atom (Core.Types.N (Core.Types.KI 2))) appl_410+                !appl_412 <- appl_411 `pseq` klCons (ApplC (wrapNamed "<-address" addressFrom)) appl_411+                !appl_413 <- appl_412 `pseq` klCons (Core.Types.Atom (Core.Types.N (Core.Types.KI 3))) appl_412+                !appl_414 <- appl_413 `pseq` klCons (ApplC (wrapNamed "address->" addressTo)) appl_413+                !appl_415 <- appl_414 `pseq` klCons (Core.Types.Atom (Core.Types.N (Core.Types.KI 1))) appl_414+                !appl_416 <- appl_415 `pseq` klCons (ApplC (wrapNamed "get-time" getTime)) appl_415+                !appl_417 <- appl_416 `pseq` klCons (Core.Types.Atom (Core.Types.N (Core.Types.KI 4))) appl_416+                !appl_418 <- appl_417 `pseq` klCons (ApplC (wrapNamed "get/or" kl_getDivor)) appl_417+                !appl_419 <- appl_418 `pseq` klCons (Core.Types.Atom (Core.Types.N (Core.Types.KI 3))) appl_418+                !appl_420 <- appl_419 `pseq` klCons (ApplC (wrapNamed "get" kl_get)) appl_419+                !appl_421 <- appl_420 `pseq` klCons (Core.Types.Atom (Core.Types.N (Core.Types.KI 1))) appl_420+                !appl_422 <- appl_421 `pseq` klCons (ApplC (wrapNamed "gensym" kl_gensym)) appl_421+                !appl_423 <- appl_422 `pseq` klCons (Core.Types.Atom (Core.Types.N (Core.Types.KI 1))) appl_422+                !appl_424 <- appl_423 `pseq` klCons (ApplC (wrapNamed "fst" kl_fst)) appl_423+                !appl_425 <- appl_424 `pseq` klCons (Core.Types.Atom (Core.Types.N (Core.Types.KI 1))) appl_424+                !appl_426 <- appl_425 `pseq` klCons (Core.Types.Atom (Core.Types.UnboundSym "freeze")) appl_425+                !appl_427 <- appl_426 `pseq` klCons (Core.Types.Atom (Core.Types.N (Core.Types.KI 5))) appl_426+                !appl_428 <- appl_427 `pseq` klCons (Core.Types.Atom (Core.Types.UnboundSym "findall")) appl_427+                !appl_429 <- appl_428 `pseq` klCons (Core.Types.Atom (Core.Types.N (Core.Types.KI 2))) appl_428+                !appl_430 <- appl_429 `pseq` klCons (ApplC (wrapNamed "for-each" kl_for_each)) appl_429+                !appl_431 <- appl_430 `pseq` klCons (Core.Types.Atom (Core.Types.N (Core.Types.KI 2))) appl_430+                !appl_432 <- appl_431 `pseq` klCons (ApplC (wrapNamed "filter" kl_filter)) appl_431+                !appl_433 <- appl_432 `pseq` klCons (Core.Types.Atom (Core.Types.N (Core.Types.KI 3))) appl_432+                !appl_434 <- appl_433 `pseq` klCons (ApplC (wrapNamed "fold-right" kl_fold_right)) appl_433+                !appl_435 <- appl_434 `pseq` klCons (Core.Types.Atom (Core.Types.N (Core.Types.KI 3))) appl_434+                !appl_436 <- appl_435 `pseq` klCons (ApplC (wrapNamed "fold-left" kl_fold_left)) appl_435+                !appl_437 <- appl_436 `pseq` klCons (Core.Types.Atom (Core.Types.N (Core.Types.KI 2))) appl_436+                !appl_438 <- appl_437 `pseq` klCons (ApplC (wrapNamed "fix" kl_fix)) appl_437+                !appl_439 <- appl_438 `pseq` klCons (Core.Types.Atom (Core.Types.N (Core.Types.KI 0))) appl_438+                !appl_440 <- appl_439 `pseq` klCons (ApplC (PL "fail" kl_fail)) appl_439+                !appl_441 <- appl_440 `pseq` klCons (Core.Types.Atom (Core.Types.N (Core.Types.KI 2))) appl_440+                !appl_442 <- appl_441 `pseq` klCons (ApplC (wrapNamed "fail-if" kl_fail_if)) appl_441+                !appl_443 <- appl_442 `pseq` klCons (Core.Types.Atom (Core.Types.N (Core.Types.KI 1))) appl_442+                !appl_444 <- appl_443 `pseq` klCons (ApplC (wrapNamed "external" kl_external)) appl_443+                !appl_445 <- appl_444 `pseq` klCons (Core.Types.Atom (Core.Types.N (Core.Types.KI 1))) appl_444+                !appl_446 <- appl_445 `pseq` klCons (ApplC (wrapNamed "explode" kl_explode)) appl_445+                !appl_447 <- appl_446 `pseq` klCons (Core.Types.Atom (Core.Types.N (Core.Types.KI 1))) appl_446+                !appl_448 <- appl_447 `pseq` klCons (ApplC (wrapNamed "exit" kl_exit)) appl_447+                !appl_449 <- appl_448 `pseq` klCons (Core.Types.Atom (Core.Types.N (Core.Types.KI 1))) appl_448+                !appl_450 <- appl_449 `pseq` klCons (ApplC (wrapNamed "eval-kl" evalKL)) appl_449+                !appl_451 <- appl_450 `pseq` klCons (Core.Types.Atom (Core.Types.N (Core.Types.KI 1))) appl_450+                !appl_452 <- appl_451 `pseq` klCons (ApplC (wrapNamed "eval" kl_eval)) appl_451+                !appl_453 <- appl_452 `pseq` klCons (Core.Types.Atom (Core.Types.N (Core.Types.KI 2))) appl_452+                !appl_454 <- appl_453 `pseq` klCons (Core.Types.Atom (Core.Types.UnboundSym "shen.interror")) appl_453+                !appl_455 <- appl_454 `pseq` klCons (Core.Types.Atom (Core.Types.N (Core.Types.KI 1))) appl_454+                !appl_456 <- appl_455 `pseq` klCons (ApplC (wrapNamed "error-to-string" errorToString)) appl_455+                !appl_457 <- appl_456 `pseq` klCons (Core.Types.Atom (Core.Types.N (Core.Types.KI 1))) appl_456+                !appl_458 <- appl_457 `pseq` klCons (Core.Types.Atom (Core.Types.UnboundSym "enable-type-theory")) appl_457+                !appl_459 <- appl_458 `pseq` klCons (Core.Types.Atom (Core.Types.N (Core.Types.KI 1))) appl_458+                !appl_460 <- appl_459 `pseq` klCons (ApplC (wrapNamed "empty?" kl_emptyP)) appl_459+                !appl_461 <- appl_460 `pseq` klCons (Core.Types.Atom (Core.Types.N (Core.Types.KI 2))) appl_460+                !appl_462 <- appl_461 `pseq` klCons (ApplC (wrapNamed "element?" kl_elementP)) appl_461+                !appl_463 <- appl_462 `pseq` klCons (Core.Types.Atom (Core.Types.N (Core.Types.KI 2))) appl_462+                !appl_464 <- appl_463 `pseq` klCons (ApplC (wrapNamed "do" kl_do)) appl_463+                !appl_465 <- appl_464 `pseq` klCons (Core.Types.Atom (Core.Types.N (Core.Types.KI 2))) appl_464+                !appl_466 <- appl_465 `pseq` klCons (ApplC (wrapNamed "difference" kl_difference)) appl_465+                !appl_467 <- appl_466 `pseq` klCons (Core.Types.Atom (Core.Types.N (Core.Types.KI 1))) appl_466+                !appl_468 <- appl_467 `pseq` klCons (ApplC (wrapNamed "destroy" kl_destroy)) appl_467+                !appl_469 <- appl_468 `pseq` klCons (Core.Types.Atom (Core.Types.N (Core.Types.KI 2))) appl_468+                !appl_470 <- appl_469 `pseq` klCons (Core.Types.Atom (Core.Types.UnboundSym "declare")) appl_469+                !appl_471 <- appl_470 `pseq` klCons (Core.Types.Atom (Core.Types.N (Core.Types.KI 2))) appl_470+                !appl_472 <- appl_471 `pseq` klCons (ApplC (wrapNamed "cn" cn)) appl_471+                !appl_473 <- appl_472 `pseq` klCons (Core.Types.Atom (Core.Types.N (Core.Types.KI 1))) appl_472+                !appl_474 <- appl_473 `pseq` klCons (ApplC (wrapNamed "cons?" consP)) appl_473+                !appl_475 <- appl_474 `pseq` klCons (Core.Types.Atom (Core.Types.N (Core.Types.KI 2))) appl_474+                !appl_476 <- appl_475 `pseq` klCons (ApplC (wrapNamed "cons" klCons)) appl_475+                !appl_477 <- appl_476 `pseq` klCons (Core.Types.Atom (Core.Types.N (Core.Types.KI 2))) appl_476+                !appl_478 <- appl_477 `pseq` klCons (ApplC (wrapNamed "concat" kl_concat)) appl_477+                !appl_479 <- appl_478 `pseq` klCons (Core.Types.Atom (Core.Types.N (Core.Types.KI 3))) appl_478+                !appl_480 <- appl_479 `pseq` klCons (ApplC (wrapNamed "compile" kl_compile)) appl_479+                !appl_481 <- appl_480 `pseq` klCons (Core.Types.Atom (Core.Types.N (Core.Types.KI 1))) appl_480+                !appl_482 <- appl_481 `pseq` klCons (ApplC (wrapNamed "close" closeStream)) appl_481+                !appl_483 <- appl_482 `pseq` klCons (Core.Types.Atom (Core.Types.N (Core.Types.KI 1))) appl_482+                !appl_484 <- appl_483 `pseq` klCons (ApplC (wrapNamed "cd" kl_cd)) appl_483+                !appl_485 <- appl_484 `pseq` klCons (Core.Types.Atom (Core.Types.N (Core.Types.KI 1))) appl_484+                !appl_486 <- appl_485 `pseq` klCons (ApplC (wrapNamed "bound?" kl_boundP)) appl_485+                !appl_487 <- appl_486 `pseq` klCons (Core.Types.Atom (Core.Types.N (Core.Types.KI 1))) appl_486+                !appl_488 <- appl_487 `pseq` klCons (ApplC (wrapNamed "boolean?" kl_booleanP)) appl_487+                !appl_489 <- appl_488 `pseq` klCons (Core.Types.Atom (Core.Types.N (Core.Types.KI 2))) appl_488+                !appl_490 <- appl_489 `pseq` klCons (ApplC (wrapNamed "assoc" kl_assoc)) appl_489+                !appl_491 <- appl_490 `pseq` klCons (Core.Types.Atom (Core.Types.N (Core.Types.KI 1))) appl_490+                !appl_492 <- appl_491 `pseq` klCons (ApplC (wrapNamed "arity" kl_arity)) appl_491+                !appl_493 <- appl_492 `pseq` klCons (Core.Types.Atom (Core.Types.N (Core.Types.KI 2))) appl_492+                !appl_494 <- appl_493 `pseq` klCons (ApplC (wrapNamed "append" kl_append)) appl_493+                !appl_495 <- appl_494 `pseq` klCons (Core.Types.Atom (Core.Types.N (Core.Types.KI 2))) appl_494+                !appl_496 <- appl_495 `pseq` klCons (Core.Types.Atom (Core.Types.UnboundSym "and")) appl_495+                !appl_497 <- appl_496 `pseq` klCons (Core.Types.Atom (Core.Types.N (Core.Types.KI 2))) appl_496+                !appl_498 <- appl_497 `pseq` klCons (ApplC (wrapNamed "adjoin" kl_adjoin)) appl_497+                !appl_499 <- appl_498 `pseq` klCons (Core.Types.Atom (Core.Types.N (Core.Types.KI 1))) appl_498+                !appl_500 <- appl_499 `pseq` klCons (ApplC (wrapNamed "absvector" absvector)) appl_499+                !appl_501 <- appl_500 `pseq` klCons (Core.Types.Atom (Core.Types.N (Core.Types.KI 1))) appl_500+                !appl_502 <- appl_501 `pseq` klCons (ApplC (wrapNamed "absvector?" absvectorP)) appl_501+                !appl_503 <- appl_502 `pseq` klCons (Core.Types.Atom (Core.Types.N (Core.Types.KI 0))) appl_502+                !appl_504 <- appl_503 `pseq` klCons (ApplC (PL "abort" kl_abort)) appl_503+                appl_504 `pseq` kl_shen_initialise_arity_table appl_504) `catchError` (\(!kl_E) -> do return (Core.Types.Atom (Core.Types.Str "E")))+            (do !appl_505 <- intern (Core.Types.Atom (Core.Types.Str "shen"))+                !appl_506 <- kl_vector (Core.Types.Atom (Core.Types.N (Core.Types.KI 0)))+                let !appl_507 = Atom Nil+                !appl_508 <- appl_507 `pseq` klCons (ApplC (wrapNamed "dict-values" kl_dict_values)) appl_507+                !appl_509 <- appl_508 `pseq` klCons (ApplC (wrapNamed "dict-keys" kl_dict_keys)) appl_508+                !appl_510 <- appl_509 `pseq` klCons (ApplC (wrapNamed "dict-fold" kl_dict_fold)) appl_509+                !appl_511 <- appl_510 `pseq` klCons (ApplC (wrapNamed "dict-rm" kl_dict_rm)) appl_510+                !appl_512 <- appl_511 `pseq` klCons (ApplC (wrapNamed "<-dict" kl_LB_dict)) appl_511+                !appl_513 <- appl_512 `pseq` klCons (ApplC (wrapNamed "<-dict/or" kl_LB_dictDivor)) appl_512+                !appl_514 <- appl_513 `pseq` klCons (ApplC (wrapNamed "dict->" kl_dict_RB)) appl_513+                !appl_515 <- appl_514 `pseq` klCons (ApplC (wrapNamed "dict-count" kl_dict_count)) appl_514+                !appl_516 <- appl_515 `pseq` klCons (ApplC (wrapNamed "dict?" kl_dictP)) appl_515+                !appl_517 <- appl_516 `pseq` klCons (ApplC (wrapNamed "dict" kl_dict)) appl_516+                !appl_518 <- appl_517 `pseq` klCons (ApplC (wrapNamed "absvector" absvector)) appl_517+                !appl_519 <- appl_518 `pseq` klCons (ApplC (wrapNamed "absvector?" absvectorP)) appl_518+                !appl_520 <- appl_519 `pseq` klCons (ApplC (wrapNamed "address->" addressTo)) appl_519+                !appl_521 <- appl_520 `pseq` klCons (ApplC (wrapNamed "<-address/or" kl_LB_addressDivor)) appl_520+                !appl_522 <- appl_521 `pseq` klCons (ApplC (wrapNamed "<-address" addressFrom)) appl_521+                !appl_523 <- appl_522 `pseq` klCons (ApplC (wrapNamed "adjoin" kl_adjoin)) appl_522+                !appl_524 <- appl_523 `pseq` klCons (Core.Types.Atom (Core.Types.UnboundSym "and")) appl_523+                !appl_525 <- appl_524 `pseq` klCons (ApplC (wrapNamed "append" kl_append)) appl_524+                !appl_526 <- appl_525 `pseq` klCons (ApplC (PL "abort" kl_abort)) appl_525+                !appl_527 <- appl_526 `pseq` klCons (ApplC (wrapNamed "arity" kl_arity)) appl_526+                !appl_528 <- appl_527 `pseq` klCons (ApplC (wrapNamed "assoc" kl_assoc)) appl_527+                !appl_529 <- appl_528 `pseq` klCons (Core.Types.Atom (Core.Types.UnboundSym "bar!")) appl_528+                !appl_530 <- appl_529 `pseq` klCons (Core.Types.Atom (Core.Types.UnboundSym "boolean")) appl_529+                !appl_531 <- appl_530 `pseq` klCons (ApplC (wrapNamed "boolean?" kl_booleanP)) appl_530+                !appl_532 <- appl_531 `pseq` klCons (ApplC (wrapNamed "bound?" kl_boundP)) appl_531+                !appl_533 <- appl_532 `pseq` klCons (ApplC (wrapNamed "bind" kl_bind)) appl_532+                !appl_534 <- appl_533 `pseq` klCons (ApplC (wrapNamed "close" closeStream)) appl_533+                !appl_535 <- appl_534 `pseq` klCons (ApplC (wrapNamed "call" kl_call)) appl_534+                !appl_536 <- appl_535 `pseq` klCons (Core.Types.Atom (Core.Types.UnboundSym "cases")) appl_535+                !appl_537 <- appl_536 `pseq` klCons (ApplC (wrapNamed "cd" kl_cd)) appl_536+                !appl_538 <- appl_537 `pseq` klCons (ApplC (wrapNamed "compile" kl_compile)) appl_537+                !appl_539 <- appl_538 `pseq` klCons (ApplC (wrapNamed "concat" kl_concat)) appl_538+                !appl_540 <- appl_539 `pseq` klCons (Core.Types.Atom (Core.Types.UnboundSym "cond")) appl_539+                !appl_541 <- appl_540 `pseq` klCons (ApplC (wrapNamed "cons" klCons)) appl_540+                !appl_542 <- appl_541 `pseq` klCons (ApplC (wrapNamed "cons?" consP)) appl_541+                !appl_543 <- appl_542 `pseq` klCons (ApplC (wrapNamed "cn" cn)) appl_542+                !appl_544 <- appl_543 `pseq` klCons (ApplC (wrapNamed "cut" kl_cut)) appl_543+                !appl_545 <- appl_544 `pseq` klCons (Core.Types.Atom (Core.Types.UnboundSym "datatype")) appl_544+                !appl_546 <- appl_545 `pseq` klCons (Core.Types.Atom (Core.Types.UnboundSym "declare")) appl_545+                !appl_547 <- appl_546 `pseq` klCons (Core.Types.Atom (Core.Types.UnboundSym "defprolog")) appl_546+                !appl_548 <- appl_547 `pseq` klCons (Core.Types.Atom (Core.Types.UnboundSym "defcc")) appl_547+                !appl_549 <- appl_548 `pseq` klCons (Core.Types.Atom (Core.Types.UnboundSym "defmacro")) appl_548+                !appl_550 <- appl_549 `pseq` klCons (Core.Types.Atom (Core.Types.UnboundSym "define")) appl_549+                !appl_551 <- appl_550 `pseq` klCons (Core.Types.Atom (Core.Types.UnboundSym "defun")) appl_550+                !appl_552 <- appl_551 `pseq` klCons (ApplC (wrapNamed "destroy" kl_destroy)) appl_551+                !appl_553 <- appl_552 `pseq` klCons (ApplC (wrapNamed "difference" kl_difference)) appl_552+                !appl_554 <- appl_553 `pseq` klCons (ApplC (wrapNamed "do" kl_do)) appl_553+                !appl_555 <- appl_554 `pseq` klCons (ApplC (wrapNamed "element?" kl_elementP)) appl_554+                !appl_556 <- appl_555 `pseq` klCons (ApplC (wrapNamed "exit" kl_exit)) appl_555+                !appl_557 <- appl_556 `pseq` klCons (ApplC (wrapNamed "empty?" kl_emptyP)) appl_556+                !appl_558 <- appl_557 `pseq` klCons (Core.Types.Atom (Core.Types.UnboundSym "error")) appl_557+                !appl_559 <- appl_558 `pseq` klCons (ApplC (wrapNamed "error-to-string" errorToString)) appl_558+                !appl_560 <- appl_559 `pseq` klCons (ApplC (wrapNamed "eval" kl_eval)) appl_559+                !appl_561 <- appl_560 `pseq` klCons (ApplC (wrapNamed "eval-kl" evalKL)) appl_560+                !appl_562 <- appl_561 `pseq` klCons (Core.Types.Atom (Core.Types.UnboundSym "exception")) appl_561+                !appl_563 <- appl_562 `pseq` klCons (ApplC (wrapNamed "external" kl_external)) appl_562+                !appl_564 <- appl_563 `pseq` klCons (ApplC (wrapNamed "explode" kl_explode)) appl_563+                !appl_565 <- appl_564 `pseq` klCons (Core.Types.Atom (Core.Types.UnboundSym "enable-type-theory")) appl_564+                !appl_566 <- appl_565 `pseq` klCons (Atom (B False)) appl_565+                !appl_567 <- appl_566 `pseq` klCons (ApplC (wrapNamed "filter" kl_filter)) appl_566+                !appl_568 <- appl_567 `pseq` klCons (ApplC (wrapNamed "fold-left" kl_fold_left)) appl_567+                !appl_569 <- appl_568 `pseq` klCons (ApplC (wrapNamed "fold-right" kl_fold_right)) appl_568+                !appl_570 <- appl_569 `pseq` klCons (ApplC (wrapNamed "for-each" kl_for_each)) appl_569+                !appl_571 <- appl_570 `pseq` klCons (Core.Types.Atom (Core.Types.UnboundSym "findall")) appl_570+                !appl_572 <- appl_571 `pseq` klCons (ApplC (wrapNamed "fwhen" kl_fwhen)) appl_571+                !appl_573 <- appl_572 `pseq` klCons (ApplC (wrapNamed "fail-if" kl_fail_if)) appl_572+                !appl_574 <- appl_573 `pseq` klCons (ApplC (PL "fail" kl_fail)) appl_573+                !appl_575 <- appl_574 `pseq` klCons (Core.Types.Atom (Core.Types.UnboundSym "file")) appl_574+                !appl_576 <- appl_575 `pseq` klCons (ApplC (wrapNamed "fix" kl_fix)) appl_575+                !appl_577 <- appl_576 `pseq` klCons (Core.Types.Atom (Core.Types.UnboundSym "freeze")) appl_576+                !appl_578 <- appl_577 `pseq` klCons (ApplC (wrapNamed "fst" kl_fst)) appl_577+                !appl_579 <- appl_578 `pseq` klCons (ApplC (wrapNamed "function" kl_function)) appl_578+                !appl_580 <- appl_579 `pseq` klCons (ApplC (wrapNamed "gensym" kl_gensym)) appl_579+                !appl_581 <- appl_580 `pseq` klCons (ApplC (wrapNamed "get-time" getTime)) appl_580+                !appl_582 <- appl_581 `pseq` klCons (ApplC (wrapNamed "get/or" kl_getDivor)) appl_581+                !appl_583 <- appl_582 `pseq` klCons (ApplC (wrapNamed "get" kl_get)) appl_582+                !appl_584 <- appl_583 `pseq` klCons (ApplC (wrapNamed "hash" kl_hash)) appl_583+                !appl_585 <- appl_584 `pseq` klCons (ApplC (wrapNamed "hdstr" kl_hdstr)) appl_584+                !appl_586 <- appl_585 `pseq` klCons (ApplC (wrapNamed "hdv" kl_hdv)) appl_585+                !appl_587 <- appl_586 `pseq` klCons (ApplC (wrapNamed "hd" hd)) appl_586+                !appl_588 <- appl_587 `pseq` klCons (ApplC (wrapNamed "head" kl_head)) appl_587+                !appl_589 <- appl_588 `pseq` klCons (ApplC (wrapNamed "identical" kl_identical)) appl_588+                !appl_590 <- appl_589 `pseq` klCons (Core.Types.Atom (Core.Types.UnboundSym "if")) appl_589+                !appl_591 <- appl_590 `pseq` klCons (ApplC (PL "implementation" kl_implementation)) appl_590+                !appl_592 <- appl_591 `pseq` klCons (ApplC (wrapNamed "internal" kl_internal)) appl_591+                !appl_593 <- appl_592 `pseq` klCons (Core.Types.Atom (Core.Types.UnboundSym "in")) appl_592+                !appl_594 <- appl_593 `pseq` klCons (ApplC (PL "it" kl_it)) appl_593+                !appl_595 <- appl_594 `pseq` klCons (ApplC (wrapNamed "include-all-but" kl_include_all_but)) appl_594+                !appl_596 <- appl_595 `pseq` klCons (ApplC (wrapNamed "include" kl_include)) appl_595+                !appl_597 <- appl_596 `pseq` klCons (ApplC (wrapNamed "input+" kl_inputPlus)) appl_596+                !appl_598 <- appl_597 `pseq` klCons (ApplC (wrapNamed "input" kl_input)) appl_597+                !appl_599 <- appl_598 `pseq` klCons (ApplC (wrapNamed "integer?" kl_integerP)) appl_598+                !appl_600 <- appl_599 `pseq` klCons (ApplC (wrapNamed "intern" intern)) appl_599+                !appl_601 <- appl_600 `pseq` klCons (ApplC (PL "inferences" kl_inferences)) appl_600+                !appl_602 <- appl_601 `pseq` klCons (ApplC (wrapNamed "intersection" kl_intersection)) appl_601+                !appl_603 <- appl_602 `pseq` klCons (Core.Types.Atom (Core.Types.UnboundSym "is")) appl_602+                !appl_604 <- appl_603 `pseq` klCons (ApplC (PL "kill" kl_kill)) appl_603+                !appl_605 <- appl_604 `pseq` klCons (ApplC (PL "language" kl_language)) appl_604+                !appl_606 <- appl_605 `pseq` klCons (Core.Types.Atom (Core.Types.UnboundSym "lambda")) appl_605+                !appl_607 <- appl_606 `pseq` klCons (Core.Types.Atom (Core.Types.UnboundSym "lazy")) appl_606+                !appl_608 <- appl_607 `pseq` klCons (Core.Types.Atom (Core.Types.UnboundSym "let")) appl_607+                !appl_609 <- appl_608 `pseq` klCons (ApplC (wrapNamed "length" kl_length)) appl_608+                !appl_610 <- appl_609 `pseq` klCons (ApplC (wrapNamed "limit" kl_limit)) appl_609+                !appl_611 <- appl_610 `pseq` klCons (ApplC (wrapNamed "lineread" kl_lineread)) appl_610+                !appl_612 <- appl_611 `pseq` klCons (Core.Types.Atom (Core.Types.UnboundSym "list")) appl_611+                !appl_613 <- appl_612 `pseq` klCons (Core.Types.Atom (Core.Types.UnboundSym "loaded")) appl_612+                !appl_614 <- appl_613 `pseq` klCons (ApplC (wrapNamed "load" kl_load)) appl_613+                !appl_615 <- appl_614 `pseq` klCons (Core.Types.Atom (Core.Types.UnboundSym "make-string")) appl_614+                !appl_616 <- appl_615 `pseq` klCons (ApplC (wrapNamed "map" kl_map)) appl_615+                !appl_617 <- appl_616 `pseq` klCons (ApplC (wrapNamed "mapcan" kl_mapcan)) appl_616+                !appl_618 <- appl_617 `pseq` klCons (ApplC (wrapNamed "maxinferences" kl_maxinferences)) appl_617+                !appl_619 <- appl_618 `pseq` klCons (ApplC (wrapNamed "macroexpand" kl_macroexpand)) appl_618+                !appl_620 <- appl_619 `pseq` klCons (Core.Types.Atom (Core.Types.UnboundSym "mode")) appl_619+                !appl_621 <- appl_620 `pseq` klCons (ApplC (wrapNamed "nl" kl_nl)) appl_620+                !appl_622 <- appl_621 `pseq` klCons (ApplC (wrapNamed "not" kl_not)) appl_621+                !appl_623 <- appl_622 `pseq` klCons (ApplC (wrapNamed "nth" kl_nth)) appl_622+                !appl_624 <- appl_623 `pseq` klCons (Core.Types.Atom (Core.Types.UnboundSym "null")) appl_623+                !appl_625 <- appl_624 `pseq` klCons (Core.Types.Atom (Core.Types.UnboundSym "number")) appl_624+                !appl_626 <- appl_625 `pseq` klCons (ApplC (wrapNamed "number?" numberP)) appl_625+                !appl_627 <- appl_626 `pseq` klCons (ApplC (wrapNamed "n->string" nToString)) appl_626+                !appl_628 <- appl_627 `pseq` klCons (ApplC (wrapNamed "occurs-check" kl_occurs_check)) appl_627+                !appl_629 <- appl_628 `pseq` klCons (ApplC (wrapNamed "occurrences" kl_occurrences)) appl_628+                !appl_630 <- appl_629 `pseq` klCons (ApplC (wrapNamed "open" openStream)) appl_629+                !appl_631 <- appl_630 `pseq` klCons (ApplC (wrapNamed "optimise" kl_optimise)) appl_630+                !appl_632 <- appl_631 `pseq` klCons (Core.Types.Atom (Core.Types.UnboundSym "or")) appl_631+                !appl_633 <- appl_632 `pseq` klCons (ApplC (PL "os" kl_os)) appl_632+                !appl_634 <- appl_633 `pseq` klCons (Core.Types.Atom (Core.Types.UnboundSym "out")) appl_633+                !appl_635 <- appl_634 `pseq` klCons (Core.Types.Atom (Core.Types.UnboundSym "output")) appl_634+                !appl_636 <- appl_635 `pseq` klCons (Core.Types.Atom (Core.Types.UnboundSym "package")) appl_635+                !appl_637 <- appl_636 `pseq` klCons (ApplC (PL "port" kl_port)) appl_636+                !appl_638 <- appl_637 `pseq` klCons (ApplC (PL "porters" kl_porters)) appl_637+                !appl_639 <- appl_638 `pseq` klCons (ApplC (wrapNamed "pos" pos)) appl_638+                !appl_640 <- appl_639 `pseq` klCons (ApplC (wrapNamed "pr" kl_pr)) appl_639+                !appl_641 <- appl_640 `pseq` klCons (ApplC (wrapNamed "print" kl_print)) appl_640+                !appl_642 <- appl_641 `pseq` klCons (ApplC (wrapNamed "profile" kl_profile)) appl_641+                !appl_643 <- appl_642 `pseq` klCons (ApplC (wrapNamed "profile-results" kl_profile_results)) appl_642+                !appl_644 <- appl_643 `pseq` klCons (ApplC (wrapNamed "protect" kl_protect)) appl_643+                !appl_645 <- appl_644 `pseq` klCons (Core.Types.Atom (Core.Types.UnboundSym "prolog?")) appl_644+                !appl_646 <- appl_645 `pseq` klCons (ApplC (wrapNamed "ps" kl_ps)) appl_645+                !appl_647 <- appl_646 `pseq` klCons (ApplC (wrapNamed "preclude-all-but" kl_preclude_all_but)) appl_646+                !appl_648 <- appl_647 `pseq` klCons (ApplC (wrapNamed "preclude" kl_preclude)) appl_647+                !appl_649 <- appl_648 `pseq` klCons (ApplC (wrapNamed "put" kl_put)) appl_648+                !appl_650 <- appl_649 `pseq` klCons (ApplC (wrapNamed "package?" kl_packageP)) appl_649+                !appl_651 <- appl_650 `pseq` klCons (ApplC (wrapNamed "read-from-string" kl_read_from_string)) appl_650+                !appl_652 <- appl_651 `pseq` klCons (ApplC (wrapNamed "read-char-code" kl_read_char_code)) appl_651+                !appl_653 <- appl_652 `pseq` klCons (ApplC (wrapNamed "read-file-as-charlist" kl_read_file_as_charlist)) appl_652+                !appl_654 <- appl_653 `pseq` klCons (ApplC (wrapNamed "read-byte" readByte)) appl_653+                !appl_655 <- appl_654 `pseq` klCons (ApplC (wrapNamed "read-file-as-string" kl_read_file_as_string)) appl_654+                !appl_656 <- appl_655 `pseq` klCons (ApplC (wrapNamed "read-file-as-bytelist" kl_read_file_as_bytelist)) appl_655+                !appl_657 <- appl_656 `pseq` klCons (ApplC (wrapNamed "read-file" kl_read_file)) appl_656+                !appl_658 <- appl_657 `pseq` klCons (Core.Types.Atom (Core.Types.UnboundSym "receive")) appl_657+                !appl_659 <- appl_658 `pseq` klCons (ApplC (wrapNamed "read" kl_read)) appl_658+                !appl_660 <- appl_659 `pseq` klCons (ApplC (PL "release" kl_release)) appl_659+                !appl_661 <- appl_660 `pseq` klCons (ApplC (wrapNamed "remove" kl_remove)) appl_660+                !appl_662 <- appl_661 `pseq` klCons (ApplC (wrapNamed "reverse" kl_reverse)) appl_661+                !appl_663 <- appl_662 `pseq` klCons (Core.Types.Atom (Core.Types.UnboundSym "run")) appl_662+                !appl_664 <- appl_663 `pseq` klCons (ApplC (wrapNamed "str" str)) appl_663+                !appl_665 <- appl_664 `pseq` klCons (Core.Types.Atom (Core.Types.UnboundSym "save")) appl_664+                !appl_666 <- appl_665 `pseq` klCons (ApplC (wrapNamed "set" klSet)) appl_665+                !appl_667 <- appl_666 `pseq` klCons (ApplC (wrapNamed "simple-error" simpleError)) appl_666+                !appl_668 <- appl_667 `pseq` klCons (ApplC (wrapNamed "snd" kl_snd)) appl_667+                !appl_669 <- appl_668 `pseq` klCons (ApplC (wrapNamed "specialise" kl_specialise)) appl_668+                !appl_670 <- appl_669 `pseq` klCons (ApplC (wrapNamed "spy" kl_spy)) appl_669+                !appl_671 <- appl_670 `pseq` klCons (ApplC (wrapNamed "step" kl_step)) appl_670+                !appl_672 <- appl_671 `pseq` klCons (ApplC (PL "stoutput" kl_stoutput)) appl_671+                !appl_673 <- appl_672 `pseq` klCons (ApplC (PL "sterror" kl_sterror)) appl_672+                !appl_674 <- appl_673 `pseq` klCons (ApplC (PL "stinput" kl_stinput)) appl_673+                !appl_675 <- appl_674 `pseq` klCons (Core.Types.Atom (Core.Types.UnboundSym "string")) appl_674+                !appl_676 <- appl_675 `pseq` klCons (Core.Types.Atom (Core.Types.UnboundSym "stream")) appl_675+                !appl_677 <- appl_676 `pseq` klCons (ApplC (wrapNamed "string->n" stringToN)) appl_676+                !appl_678 <- appl_677 `pseq` klCons (ApplC (wrapNamed "string?" stringP)) appl_677+                !appl_679 <- appl_678 `pseq` klCons (ApplC (wrapNamed "subst" kl_subst)) appl_678+                !appl_680 <- appl_679 `pseq` klCons (ApplC (wrapNamed "sum" kl_sum)) appl_679+                !appl_681 <- appl_680 `pseq` klCons (ApplC (wrapNamed "string->symbol" kl_string_RBsymbol)) appl_680+                !appl_682 <- appl_681 `pseq` klCons (ApplC (wrapNamed "symbol?" kl_symbolP)) appl_681+                !appl_683 <- appl_682 `pseq` klCons (Core.Types.Atom (Core.Types.UnboundSym "symbol")) appl_682+                !appl_684 <- appl_683 `pseq` klCons (Core.Types.Atom (Core.Types.UnboundSym "synonyms")) appl_683+                !appl_685 <- appl_684 `pseq` klCons (ApplC (wrapNamed "systemf" kl_systemf)) appl_684+                !appl_686 <- appl_685 `pseq` klCons (ApplC (wrapNamed "tail" kl_tail)) appl_685+                !appl_687 <- appl_686 `pseq` klCons (ApplC (wrapNamed "tlv" kl_tlv)) appl_686+                !appl_688 <- appl_687 `pseq` klCons (ApplC (wrapNamed "tlstr" tlstr)) appl_687+                !appl_689 <- appl_688 `pseq` klCons (ApplC (wrapNamed "tl" tl)) appl_688+                !appl_690 <- appl_689 `pseq` klCons (ApplC (wrapNamed "tc" kl_tc)) appl_689+                !appl_691 <- appl_690 `pseq` klCons (ApplC (PL "tc?" kl_tcP)) appl_690+                !appl_692 <- appl_691 `pseq` klCons (ApplC (wrapNamed "thaw" kl_thaw)) appl_691+                !appl_693 <- appl_692 `pseq` klCons (Core.Types.Atom (Core.Types.UnboundSym "time")) appl_692+                !appl_694 <- appl_693 `pseq` klCons (ApplC (wrapNamed "track" kl_track)) appl_693+                !appl_695 <- appl_694 `pseq` klCons (Core.Types.Atom (Core.Types.UnboundSym "trap-error")) appl_694+                !appl_696 <- appl_695 `pseq` klCons (Atom (B True)) appl_695+                !appl_697 <- appl_696 `pseq` klCons (ApplC (wrapNamed "tuple?" kl_tupleP)) appl_696+                !appl_698 <- appl_697 `pseq` klCons (ApplC (wrapNamed "type" typeA)) appl_697+                !appl_699 <- appl_698 `pseq` klCons (ApplC (wrapNamed "return" kl_return)) appl_698+                !appl_700 <- appl_699 `pseq` klCons (ApplC (wrapNamed "undefmacro" kl_undefmacro)) appl_699+                !appl_701 <- appl_700 `pseq` klCons (ApplC (wrapNamed "unprofile" kl_unprofile)) appl_700+                !appl_702 <- appl_701 `pseq` klCons (ApplC (wrapNamed "unput" kl_unput)) appl_701+                !appl_703 <- appl_702 `pseq` klCons (ApplC (wrapNamed "unify!" kl_unifyExcl)) appl_702+                !appl_704 <- appl_703 `pseq` klCons (ApplC (wrapNamed "unify" kl_unify)) appl_703+                !appl_705 <- appl_704 `pseq` klCons (ApplC (wrapNamed "union" kl_union)) appl_704+                !appl_706 <- appl_705 `pseq` klCons (Core.Types.Atom (Core.Types.UnboundSym "shen.unix")) appl_705+                !appl_707 <- appl_706 `pseq` klCons (Core.Types.Atom (Core.Types.UnboundSym "unit")) appl_706+                !appl_708 <- appl_707 `pseq` klCons (ApplC (wrapNamed "untrack" kl_untrack)) appl_707+                !appl_709 <- appl_708 `pseq` klCons (ApplC (wrapNamed "unspecialise" kl_unspecialise)) appl_708+                !appl_710 <- appl_709 `pseq` klCons (ApplC (wrapNamed "vector?" kl_vectorP)) appl_709+                !appl_711 <- appl_710 `pseq` klCons (ApplC (wrapNamed "vector" kl_vector)) appl_710+                !appl_712 <- appl_711 `pseq` klCons (ApplC (wrapNamed "<-vector/or" kl_LB_vectorDivor)) appl_711+                !appl_713 <- appl_712 `pseq` klCons (ApplC (wrapNamed "<-vector" kl_LB_vector)) appl_712+                !appl_714 <- appl_713 `pseq` klCons (ApplC (wrapNamed "vector->" kl_vector_RB)) appl_713+                !appl_715 <- appl_714 `pseq` klCons (ApplC (wrapNamed "value/or" kl_valueDivor)) appl_714+                !appl_716 <- appl_715 `pseq` klCons (ApplC (wrapNamed "value" value)) appl_715+                !appl_717 <- appl_716 `pseq` klCons (ApplC (wrapNamed "variable?" kl_variableP)) appl_716+                !appl_718 <- appl_717 `pseq` klCons (Core.Types.Atom (Core.Types.UnboundSym "verified")) appl_717+                !appl_719 <- appl_718 `pseq` klCons (ApplC (PL "version" kl_version)) appl_718+                !appl_720 <- appl_719 `pseq` klCons (Core.Types.Atom (Core.Types.UnboundSym "warn")) appl_719+                !appl_721 <- appl_720 `pseq` klCons (Core.Types.Atom (Core.Types.UnboundSym "when")) appl_720+                !appl_722 <- appl_721 `pseq` klCons (Core.Types.Atom (Core.Types.UnboundSym "where")) appl_721+                !appl_723 <- appl_722 `pseq` klCons (ApplC (wrapNamed "write-byte" writeByte)) appl_722+                !appl_724 <- appl_723 `pseq` klCons (ApplC (wrapNamed "write-to-file" kl_write_to_file)) appl_723+                !appl_725 <- appl_724 `pseq` klCons (ApplC (wrapNamed "y-or-n?" kl_y_or_nP)) appl_724+                !appl_726 <- appl_506 `pseq` (appl_725 `pseq` klCons appl_506 appl_725)+                !appl_727 <- appl_726 `pseq` klCons (Core.Types.Atom (Core.Types.UnboundSym ">>")) appl_726+                !appl_728 <- appl_727 `pseq` klCons (ApplC (wrapNamed "<" lessThan)) appl_727+                !appl_729 <- appl_728 `pseq` klCons (ApplC (wrapNamed "<=" lessThanOrEqualTo)) appl_728+                !appl_730 <- appl_729 `pseq` klCons (ApplC (wrapNamed "+" add)) appl_729+                !appl_731 <- appl_730 `pseq` klCons (ApplC (wrapNamed "*" multiply)) appl_730+                !appl_732 <- appl_731 `pseq` klCons (ApplC (wrapNamed "/" divide)) appl_731+                !appl_733 <- appl_732 `pseq` klCons (ApplC (wrapNamed "-" Primitives.subtract)) appl_732+                !appl_734 <- appl_733 `pseq` klCons (Core.Types.Atom (Core.Types.UnboundSym "$")) appl_733+                !appl_735 <- appl_734 `pseq` klCons (Core.Types.Atom (Core.Types.UnboundSym "=!")) appl_734+                !appl_736 <- appl_735 `pseq` klCons (Core.Types.Atom (Core.Types.UnboundSym "/.")) appl_735+                !appl_737 <- appl_736 `pseq` klCons (ApplC (wrapNamed ">" greaterThan)) appl_736+                !appl_738 <- appl_737 `pseq` klCons (ApplC (wrapNamed ">=" greaterThanOrEqualTo)) appl_737+                !appl_739 <- appl_738 `pseq` klCons (ApplC (wrapNamed "=" eq)) appl_738+                !appl_740 <- appl_739 `pseq` klCons (ApplC (wrapNamed "==" kl_EqEq)) appl_739+                !appl_741 <- appl_740 `pseq` klCons (ApplC (wrapNamed "<!>" kl_LBExclRB)) appl_740+                !appl_742 <- appl_741 `pseq` klCons (ApplC (wrapNamed "<e>" kl_LBeRB)) appl_741+                !appl_743 <- appl_742 `pseq` klCons (Core.Types.Atom (Core.Types.UnboundSym "->")) appl_742+                !appl_744 <- appl_743 `pseq` klCons (Core.Types.Atom (Core.Types.UnboundSym "<-")) appl_743+                !appl_745 <- appl_744 `pseq` klCons (ApplC (wrapNamed "@s" kl_Ats)) appl_744+                !appl_746 <- appl_745 `pseq` klCons (ApplC (wrapNamed "@p" kl_Atp)) appl_745+                !appl_747 <- appl_746 `pseq` klCons (ApplC (wrapNamed "@v" kl_Atv)) appl_746+                !appl_748 <- appl_747 `pseq` klCons (Core.Types.Atom (Core.Types.UnboundSym "*hush*")) appl_747+                !appl_749 <- appl_748 `pseq` klCons (Core.Types.Atom (Core.Types.UnboundSym "*porters*")) appl_748+                !appl_750 <- appl_749 `pseq` klCons (Core.Types.Atom (Core.Types.UnboundSym "*port*")) appl_749+                !appl_751 <- appl_750 `pseq` klCons (Core.Types.Atom (Core.Types.UnboundSym "*property-vector*")) appl_750+                !appl_752 <- appl_751 `pseq` klCons (Core.Types.Atom (Core.Types.UnboundSym "*release*")) appl_751+                !appl_753 <- appl_752 `pseq` klCons (Core.Types.Atom (Core.Types.UnboundSym "*os*")) appl_752+                !appl_754 <- appl_753 `pseq` klCons (Core.Types.Atom (Core.Types.UnboundSym "*macros*")) appl_753+                !appl_755 <- appl_754 `pseq` klCons (Core.Types.Atom (Core.Types.UnboundSym "*maximum-print-sequence-size*")) appl_754+                !appl_756 <- appl_755 `pseq` klCons (Core.Types.Atom (Core.Types.UnboundSym "*version*")) appl_755+                !appl_757 <- appl_756 `pseq` klCons (Core.Types.Atom (Core.Types.UnboundSym "*home-directory*")) appl_756+                !appl_758 <- appl_757 `pseq` klCons (Core.Types.Atom (Core.Types.UnboundSym "shen.*sterror*")) appl_757+                !appl_759 <- appl_758 `pseq` klCons (Core.Types.Atom (Core.Types.UnboundSym "*stoutput*")) appl_758+                !appl_760 <- appl_759 `pseq` klCons (Core.Types.Atom (Core.Types.UnboundSym "*stinput*")) appl_759+                !appl_761 <- appl_760 `pseq` klCons (Core.Types.Atom (Core.Types.UnboundSym "*implementation*")) appl_760+                !appl_762 <- appl_761 `pseq` klCons (Core.Types.Atom (Core.Types.UnboundSym "*language*")) appl_761+                !appl_763 <- appl_762 `pseq` klCons (Core.Types.Atom (Core.Types.UnboundSym "_")) appl_762+                !appl_764 <- appl_763 `pseq` klCons (Core.Types.Atom (Core.Types.UnboundSym ":=")) appl_763+                !appl_765 <- appl_764 `pseq` klCons (Core.Types.Atom (Core.Types.UnboundSym ":-")) appl_764+                !appl_766 <- appl_765 `pseq` klCons (Core.Types.Atom (Core.Types.UnboundSym ";")) appl_765+                !appl_767 <- appl_766 `pseq` klCons (Core.Types.Atom (Core.Types.UnboundSym ":")) appl_766+                !appl_768 <- appl_767 `pseq` klCons (Core.Types.Atom (Core.Types.UnboundSym "&&")) appl_767+                !appl_769 <- appl_768 `pseq` klCons (Core.Types.Atom (Core.Types.UnboundSym "<--")) appl_768+                !appl_770 <- appl_769 `pseq` klCons (Core.Types.Atom (Core.Types.UnboundSym "-->")) appl_769+                !appl_771 <- appl_770 `pseq` klCons (Core.Types.Atom (Core.Types.UnboundSym "{")) appl_770+                !appl_772 <- appl_771 `pseq` klCons (Core.Types.Atom (Core.Types.UnboundSym "}")) appl_771+                !appl_773 <- appl_772 `pseq` klCons (Core.Types.Atom (Core.Types.UnboundSym "!")) appl_772+                !appl_774 <- value (Core.Types.Atom (Core.Types.UnboundSym "*property-vector*"))+                appl_505 `pseq` (appl_773 `pseq` (appl_774 `pseq` kl_put appl_505 (Core.Types.Atom (Core.Types.UnboundSym "shen.external-symbols")) appl_773 appl_774))) `catchError` (\(!kl_E) -> do return (Core.Types.Atom (Core.Types.Str "E")))+            (do let !appl_775 = ApplC (Func "lambda" (Context (\(!kl_Entry) -> do kl_Entry `pseq` kl_shen_set_lambda_form_entry kl_Entry)))+                let !appl_776 = ApplC (Func "lambda" (Context (\(!kl_X) -> do kl_X `pseq` kl_shen_datatype_error kl_X)))+                !appl_777 <- appl_776 `pseq` klCons (ApplC (wrapNamed "shen.datatype-error" kl_shen_datatype_error)) appl_776+                let !appl_778 = ApplC (Func "lambda" (Context (\(!kl_X) -> do kl_X `pseq` kl_shen_tuple kl_X)))+                !appl_779 <- appl_778 `pseq` klCons (ApplC (wrapNamed "shen.tuple" kl_shen_tuple)) appl_778+                let !appl_780 = ApplC (Func "lambda" (Context (\(!kl_X) -> do kl_X `pseq` kl_shen_pvar kl_X)))+                !appl_781 <- appl_780 `pseq` klCons (ApplC (wrapNamed "shen.pvar" kl_shen_pvar)) appl_780+                let !appl_782 = ApplC (Func "lambda" (Context (\(!kl_X) -> do kl_X `pseq` kl_shen_dictionary kl_X)))+                !appl_783 <- appl_782 `pseq` klCons (ApplC (wrapNamed "shen.dictionary" kl_shen_dictionary)) appl_782+                let !appl_784 = ApplC (Func "lambda" (Context (\(!kl_X) -> do kl_X `pseq` kl_shen_lambda_form_entry kl_X)))+                !appl_785 <- intern (Core.Types.Atom (Core.Types.Str "shen"))+                !appl_786 <- appl_785 `pseq` kl_external appl_785+                !appl_787 <- appl_784 `pseq` (appl_786 `pseq` kl_mapcan appl_784 appl_786)+                !appl_788 <- appl_783 `pseq` (appl_787 `pseq` klCons appl_783 appl_787)+                !appl_789 <- appl_781 `pseq` (appl_788 `pseq` klCons appl_781 appl_788)+                !appl_790 <- appl_779 `pseq` (appl_789 `pseq` klCons appl_779 appl_789)+                !appl_791 <- appl_777 `pseq` (appl_790 `pseq` klCons appl_777 appl_790)+                appl_775 `pseq` (appl_791 `pseq` kl_for_each appl_775 appl_791)) `catchError` (\(!kl_E) -> do return (Core.Types.Atom (Core.Types.Str "E")))
Shentong/Backend/FunctionTable.hs view
@@ -1,674 +1,708 @@-{-# LANGUAGE BangPatterns #-}
-{-# LANGUAGE OverloadedStrings #-}
-{-# LANGUAGE Strict #-}
-{-# LANGUAGE StrictData #-}
-
-module Backend.FunctionTable where
-
-import Control.Monad.Except
-import Control.Parallel
-import Environment
-import Primitives as Primitives
-import Backend.Utils
-import Types as Types
-import Utils
-import Wrap
-import Backend.Toplevel
-import Backend.Core
-import Backend.Sys
-import Backend.Sequent
-import Backend.Yacc
-import Backend.Reader
-import Backend.Prolog
-import Backend.Track
-import Backend.Load
-import Backend.Writer
-import Backend.Macros
-import Backend.Declarations
-import Backend.Types
-import Backend.TStar
-import Backend.PortInfo
-import Backend.LoadShen
-
-{-
-Copyright (c) 2015, Mark Tarver
-All rights reserved.
-
-Redistribution and use in source and binary forms, with or without
-modification, are permitted provided that the following conditions are met:
-
-1. Redistributions of source code must retain the above copyright
-   notice, this list of conditions and the following disclaimer.
-2. Redistributions in binary form must reproduce the above copyright
-   notice, this list of conditions and the following disclaimer in the
-   documentation and/or other materials provided with the distribution.
-3. The name of Mark Tarver may not be used to endorse or promote products
-   derived from this software without specific prior written permission.
-
-THIS SOFTWARE IS PROVIDED BY Mark Tarver ''AS IS'' AND ANY
-EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
-WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
-DISCLAIMED. IN NO EVENT SHALL Mark Tarver BE LIABLE FOR ANY
-DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
-(INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
-LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND
-ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
-(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
-SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
--}
-
-functions = do insertFunction "shen.shen" (PL "shen.shen" kl_shen_shen)
-               insertFunction "shen.loop" (PL "shen.loop" kl_shen_loop)
-               insertFunction "shen.credits" (PL "shen.credits" kl_shen_credits)
-               insertFunction "shen.initialise_environment" (PL "shen.initialise_environment" kl_shen_initialise_environment)
-               insertFunction "shen.multiple-set" (wrapNamed "shen.multiple-set" kl_shen_multiple_set)
-               insertFunction "destroy" (wrapNamed "destroy" kl_destroy)
-               insertFunction "shen.read-evaluate-print" (PL "shen.read-evaluate-print" kl_shen_read_evaluate_print)
-               insertFunction "shen.retrieve-from-history-if-needed" (wrapNamed "shen.retrieve-from-history-if-needed" kl_shen_retrieve_from_history_if_needed)
-               insertFunction "shen.percent" (PL "shen.percent" kl_shen_percent)
-               insertFunction "shen.exclamation" (PL "shen.exclamation" kl_shen_exclamation)
-               insertFunction "shen.prbytes" (wrapNamed "shen.prbytes" kl_shen_prbytes)
-               insertFunction "shen.update_history" (wrapNamed "shen.update_history" kl_shen_update_history)
-               insertFunction "shen.toplineread" (PL "shen.toplineread" kl_shen_toplineread)
-               insertFunction "shen.toplineread_loop" (wrapNamed "shen.toplineread_loop" kl_shen_toplineread_loop)
-               insertFunction "shen.hat" (PL "shen.hat" kl_shen_hat)
-               insertFunction "shen.newline" (PL "shen.newline" kl_shen_newline)
-               insertFunction "shen.carriage-return" (PL "shen.carriage-return" kl_shen_carriage_return)
-               insertFunction "tc" (wrapNamed "tc" kl_tc)
-               insertFunction "shen.prompt" (PL "shen.prompt" kl_shen_prompt)
-               insertFunction "shen.toplevel" (wrapNamed "shen.toplevel" kl_shen_toplevel)
-               insertFunction "shen.find-past-inputs" (wrapNamed "shen.find-past-inputs" kl_shen_find_past_inputs)
-               insertFunction "shen.make-key" (wrapNamed "shen.make-key" kl_shen_make_key)
-               insertFunction "shen.trim-gubbins" (wrapNamed "shen.trim-gubbins" kl_shen_trim_gubbins)
-               insertFunction "shen.space" (PL "shen.space" kl_shen_space)
-               insertFunction "shen.tab" (PL "shen.tab" kl_shen_tab)
-               insertFunction "shen.left-round" (PL "shen.left-round" kl_shen_left_round)
-               insertFunction "shen.find" (wrapNamed "shen.find" kl_shen_find)
-               insertFunction "shen.prefix?" (wrapNamed "shen.prefix?" kl_shen_prefixP)
-               insertFunction "shen.print-past-inputs" (wrapNamed "shen.print-past-inputs" kl_shen_print_past_inputs)
-               insertFunction "shen.toplevel_evaluate" (wrapNamed "shen.toplevel_evaluate" kl_shen_toplevel_evaluate)
-               insertFunction "shen.typecheck-and-evaluate" (wrapNamed "shen.typecheck-and-evaluate" kl_shen_typecheck_and_evaluate)
-               insertFunction "shen.pretty-type" (wrapNamed "shen.pretty-type" kl_shen_pretty_type)
-               insertFunction "shen.extract-pvars" (wrapNamed "shen.extract-pvars" kl_shen_extract_pvars)
-               insertFunction "shen.mult_subst" (wrapNamed "shen.mult_subst" kl_shen_mult_subst)
-               insertFunction "shen.shen->kl" (wrapNamed "shen.shen->kl" kl_shen_shen_RBkl)
-               insertFunction "shen.shen-syntax-error" (wrapNamed "shen.shen-syntax-error" kl_shen_shen_syntax_error)
-               insertFunction "shen.<define>" (wrapNamed "shen.<define>" kl_shen_LBdefineRB)
-               insertFunction "shen.<name>" (wrapNamed "shen.<name>" kl_shen_LBnameRB)
-               insertFunction "shen.sysfunc?" (wrapNamed "shen.sysfunc?" kl_shen_sysfuncP)
-               insertFunction "shen.<signature>" (wrapNamed "shen.<signature>" kl_shen_LBsignatureRB)
-               insertFunction "shen.curry-type" (wrapNamed "shen.curry-type" kl_shen_curry_type)
-               insertFunction "shen.<signature-help>" (wrapNamed "shen.<signature-help>" kl_shen_LBsignature_helpRB)
-               insertFunction "shen.<rules>" (wrapNamed "shen.<rules>" kl_shen_LBrulesRB)
-               insertFunction "shen.<rule>" (wrapNamed "shen.<rule>" kl_shen_LBruleRB)
-               insertFunction "shen.fail_if" (wrapNamed "shen.fail_if" kl_shen_fail_if)
-               insertFunction "shen.succeeds?" (wrapNamed "shen.succeeds?" kl_shen_succeedsP)
-               insertFunction "shen.<patterns>" (wrapNamed "shen.<patterns>" kl_shen_LBpatternsRB)
-               insertFunction "shen.<pattern>" (wrapNamed "shen.<pattern>" kl_shen_LBpatternRB)
-               insertFunction "shen.constructor-error" (wrapNamed "shen.constructor-error" kl_shen_constructor_error)
-               insertFunction "shen.<simple_pattern>" (wrapNamed "shen.<simple_pattern>" kl_shen_LBsimple_patternRB)
-               insertFunction "shen.<pattern1>" (wrapNamed "shen.<pattern1>" kl_shen_LBpattern1RB)
-               insertFunction "shen.<pattern2>" (wrapNamed "shen.<pattern2>" kl_shen_LBpattern2RB)
-               insertFunction "shen.<action>" (wrapNamed "shen.<action>" kl_shen_LBactionRB)
-               insertFunction "shen.<guard>" (wrapNamed "shen.<guard>" kl_shen_LBguardRB)
-               insertFunction "shen.compile_to_machine_code" (wrapNamed "shen.compile_to_machine_code" kl_shen_compile_to_machine_code)
-               insertFunction "shen.record-source" (wrapNamed "shen.record-source" kl_shen_record_source)
-               insertFunction "shen.compile_to_lambda+" (wrapNamed "shen.compile_to_lambda+" kl_shen_compile_to_lambdaPlus)
-               insertFunction "shen.update-symbol-table" (wrapNamed "shen.update-symbol-table" kl_shen_update_symbol_table)
-               insertFunction "shen.update-symbol-table-h" (wrapNamed "shen.update-symbol-table-h" kl_shen_update_symbol_table_h)
-               insertFunction "shen.free_variable_check" (wrapNamed "shen.free_variable_check" kl_shen_free_variable_check)
-               insertFunction "shen.extract_vars" (wrapNamed "shen.extract_vars" kl_shen_extract_vars)
-               insertFunction "shen.extract_free_vars" (wrapNamed "shen.extract_free_vars" kl_shen_extract_free_vars)
-               insertFunction "shen.free_variable_warnings" (wrapNamed "shen.free_variable_warnings" kl_shen_free_variable_warnings)
-               insertFunction "shen.list_variables" (wrapNamed "shen.list_variables" kl_shen_list_variables)
-               insertFunction "shen.strip-protect" (wrapNamed "shen.strip-protect" kl_shen_strip_protect)
-               insertFunction "shen.linearise" (wrapNamed "shen.linearise" kl_shen_linearise)
-               insertFunction "shen.flatten" (wrapNamed "shen.flatten" kl_shen_flatten)
-               insertFunction "shen.linearise_help" (wrapNamed "shen.linearise_help" kl_shen_linearise_help)
-               insertFunction "shen.linearise_X" (wrapNamed "shen.linearise_X" kl_shen_linearise_X)
-               insertFunction "shen.aritycheck" (wrapNamed "shen.aritycheck" kl_shen_aritycheck)
-               insertFunction "shen.aritycheck-name" (wrapNamed "shen.aritycheck-name" kl_shen_aritycheck_name)
-               insertFunction "shen.aritycheck-action" (wrapNamed "shen.aritycheck-action" kl_shen_aritycheck_action)
-               insertFunction "shen.aah" (wrapNamed "shen.aah" kl_shen_aah)
-               insertFunction "shen.abstract_rule" (wrapNamed "shen.abstract_rule" kl_shen_abstract_rule)
-               insertFunction "shen.abstraction_build" (wrapNamed "shen.abstraction_build" kl_shen_abstraction_build)
-               insertFunction "shen.parameters" (wrapNamed "shen.parameters" kl_shen_parameters)
-               insertFunction "shen.application_build" (wrapNamed "shen.application_build" kl_shen_application_build)
-               insertFunction "shen.compile_to_kl" (wrapNamed "shen.compile_to_kl" kl_shen_compile_to_kl)
-               insertFunction "shen.get-type" (wrapNamed "shen.get-type" kl_shen_get_type)
-               insertFunction "shen.typextable" (wrapNamed "shen.typextable" kl_shen_typextable)
-               insertFunction "shen.assign-types" (wrapNamed "shen.assign-types" kl_shen_assign_types)
-               insertFunction "shen.atom-type" (wrapNamed "shen.atom-type" kl_shen_atom_type)
-               insertFunction "shen.store-arity" (wrapNamed "shen.store-arity" kl_shen_store_arity)
-               insertFunction "shen.reduce" (wrapNamed "shen.reduce" kl_shen_reduce)
-               insertFunction "shen.reduce_help" (wrapNamed "shen.reduce_help" kl_shen_reduce_help)
-               insertFunction "shen.+string?" (wrapNamed "shen.+string?" kl_shen_PlusstringP)
-               insertFunction "shen.+vector" (wrapNamed "shen.+vector" kl_shen_Plusvector)
-               insertFunction "shen.ebr" (wrapNamed "shen.ebr" kl_shen_ebr)
-               insertFunction "shen.add_test" (wrapNamed "shen.add_test" kl_shen_add_test)
-               insertFunction "shen.cond-expression" (wrapNamed "shen.cond-expression" kl_shen_cond_expression)
-               insertFunction "shen.cond-form" (wrapNamed "shen.cond-form" kl_shen_cond_form)
-               insertFunction "shen.encode-choices" (wrapNamed "shen.encode-choices" kl_shen_encode_choices)
-               insertFunction "shen.case-form" (wrapNamed "shen.case-form" kl_shen_case_form)
-               insertFunction "shen.embed-and" (wrapNamed "shen.embed-and" kl_shen_embed_and)
-               insertFunction "shen.err-condition" (wrapNamed "shen.err-condition" kl_shen_err_condition)
-               insertFunction "shen.sys-error" (wrapNamed "shen.sys-error" kl_shen_sys_error)
-               insertFunction "thaw" (wrapNamed "thaw" kl_thaw)
-               insertFunction "eval" (wrapNamed "eval" kl_eval)
-               insertFunction "shen.eval-without-macros" (wrapNamed "shen.eval-without-macros" kl_shen_eval_without_macros)
-               insertFunction "shen.proc-input+" (wrapNamed "shen.proc-input+" kl_shen_proc_inputPlus)
-               insertFunction "shen.elim-def" (wrapNamed "shen.elim-def" kl_shen_elim_def)
-               insertFunction "shen.add-macro" (wrapNamed "shen.add-macro" kl_shen_add_macro)
-               insertFunction "shen.packaged?" (wrapNamed "shen.packaged?" kl_shen_packagedP)
-               insertFunction "external" (wrapNamed "external" kl_external)
-               insertFunction "shen.package-contents" (wrapNamed "shen.package-contents" kl_shen_package_contents)
-               insertFunction "shen.walk" (wrapNamed "shen.walk" kl_shen_walk)
-               insertFunction "compile" (wrapNamed "compile" kl_compile)
-               insertFunction "fail-if" (wrapNamed "fail-if" kl_fail_if)
-               insertFunction "@s" (wrapNamed "@s" kl_Ats)
-               insertFunction "tc?" (PL "tc?" kl_tcP)
-               insertFunction "ps" (wrapNamed "ps" kl_ps)
-               insertFunction "stinput" (PL "stinput" kl_stinput)
-               insertFunction "shen.+vector?" (wrapNamed "shen.+vector?" kl_shen_PlusvectorP)
-               insertFunction "vector" (wrapNamed "vector" kl_vector)
-               insertFunction "shen.fillvector" (wrapNamed "shen.fillvector" kl_shen_fillvector)
-               insertFunction "vector?" (wrapNamed "vector?" kl_vectorP)
-               insertFunction "vector->" (wrapNamed "vector->" kl_vector_RB)
-               insertFunction "<-vector" (wrapNamed "<-vector" kl_LB_vector)
-               insertFunction "shen.posint?" (wrapNamed "shen.posint?" kl_shen_posintP)
-               insertFunction "limit" (wrapNamed "limit" kl_limit)
-               insertFunction "symbol?" (wrapNamed "symbol?" kl_symbolP)
-               insertFunction "shen.analyse-symbol?" (wrapNamed "shen.analyse-symbol?" kl_shen_analyse_symbolP)
-               insertFunction "shen.alpha?" (wrapNamed "shen.alpha?" kl_shen_alphaP)
-               insertFunction "shen.alphanums?" (wrapNamed "shen.alphanums?" kl_shen_alphanumsP)
-               insertFunction "shen.alphanum?" (wrapNamed "shen.alphanum?" kl_shen_alphanumP)
-               insertFunction "shen.digit?" (wrapNamed "shen.digit?" kl_shen_digitP)
-               insertFunction "variable?" (wrapNamed "variable?" kl_variableP)
-               insertFunction "shen.analyse-variable?" (wrapNamed "shen.analyse-variable?" kl_shen_analyse_variableP)
-               insertFunction "shen.uppercase?" (wrapNamed "shen.uppercase?" kl_shen_uppercaseP)
-               insertFunction "gensym" (wrapNamed "gensym" kl_gensym)
-               insertFunction "concat" (wrapNamed "concat" kl_concat)
-               insertFunction "@p" (wrapNamed "@p" kl_Atp)
-               insertFunction "fst" (wrapNamed "fst" kl_fst)
-               insertFunction "snd" (wrapNamed "snd" kl_snd)
-               insertFunction "tuple?" (wrapNamed "tuple?" kl_tupleP)
-               insertFunction "append" (wrapNamed "append" kl_append)
-               insertFunction "@v" (wrapNamed "@v" kl_Atv)
-               insertFunction "shen.@v-help" (wrapNamed "shen.@v-help" kl_shen_Atv_help)
-               insertFunction "shen.copyfromvector" (wrapNamed "shen.copyfromvector" kl_shen_copyfromvector)
-               insertFunction "hdv" (wrapNamed "hdv" kl_hdv)
-               insertFunction "tlv" (wrapNamed "tlv" kl_tlv)
-               insertFunction "shen.tlv-help" (wrapNamed "shen.tlv-help" kl_shen_tlv_help)
-               insertFunction "assoc" (wrapNamed "assoc" kl_assoc)
-               insertFunction "boolean?" (wrapNamed "boolean?" kl_booleanP)
-               insertFunction "nl" (wrapNamed "nl" kl_nl)
-               insertFunction "difference" (wrapNamed "difference" kl_difference)
-               insertFunction "do" (wrapNamed "do" kl_do)
-               insertFunction "element?" (wrapNamed "element?" kl_elementP)
-               insertFunction "empty?" (wrapNamed "empty?" kl_emptyP)
-               insertFunction "fix" (wrapNamed "fix" kl_fix)
-               insertFunction "shen.fix-help" (wrapNamed "shen.fix-help" kl_shen_fix_help)
-               insertFunction "put" (wrapNamed "put" kl_put)
-               insertFunction "unput" (wrapNamed "unput" kl_unput)
-               insertFunction "shen.remove-pointer" (wrapNamed "shen.remove-pointer" kl_shen_remove_pointer)
-               insertFunction "shen.change-pointer-value" (wrapNamed "shen.change-pointer-value" kl_shen_change_pointer_value)
-               insertFunction "get" (wrapNamed "get" kl_get)
-               insertFunction "hash" (wrapNamed "hash" kl_hash)
-               insertFunction "shen.mod" (wrapNamed "shen.mod" kl_shen_mod)
-               insertFunction "shen.multiples" (wrapNamed "shen.multiples" kl_shen_multiples)
-               insertFunction "shen.modh" (wrapNamed "shen.modh" kl_shen_modh)
-               insertFunction "sum" (wrapNamed "sum" kl_sum)
-               insertFunction "head" (wrapNamed "head" kl_head)
-               insertFunction "tail" (wrapNamed "tail" kl_tail)
-               insertFunction "hdstr" (wrapNamed "hdstr" kl_hdstr)
-               insertFunction "intersection" (wrapNamed "intersection" kl_intersection)
-               insertFunction "reverse" (wrapNamed "reverse" kl_reverse)
-               insertFunction "shen.reverse_help" (wrapNamed "shen.reverse_help" kl_shen_reverse_help)
-               insertFunction "union" (wrapNamed "union" kl_union)
-               insertFunction "y-or-n?" (wrapNamed "y-or-n?" kl_y_or_nP)
-               insertFunction "not" (wrapNamed "not" kl_not)
-               insertFunction "subst" (wrapNamed "subst" kl_subst)
-               insertFunction "explode" (wrapNamed "explode" kl_explode)
-               insertFunction "shen.explode-h" (wrapNamed "shen.explode-h" kl_shen_explode_h)
-               insertFunction "cd" (wrapNamed "cd" kl_cd)
-               insertFunction "map" (wrapNamed "map" kl_map)
-               insertFunction "shen.map-h" (wrapNamed "shen.map-h" kl_shen_map_h)
-               insertFunction "length" (wrapNamed "length" kl_length)
-               insertFunction "shen.length-h" (wrapNamed "shen.length-h" kl_shen_length_h)
-               insertFunction "occurrences" (wrapNamed "occurrences" kl_occurrences)
-               insertFunction "nth" (wrapNamed "nth" kl_nth)
-               insertFunction "integer?" (wrapNamed "integer?" kl_integerP)
-               insertFunction "shen.abs" (wrapNamed "shen.abs" kl_shen_abs)
-               insertFunction "shen.magless" (wrapNamed "shen.magless" kl_shen_magless)
-               insertFunction "shen.integer-test?" (wrapNamed "shen.integer-test?" kl_shen_integer_testP)
-               insertFunction "mapcan" (wrapNamed "mapcan" kl_mapcan)
-               insertFunction "==" (wrapNamed "==" kl_EqEq)
-               insertFunction "abort" (PL "abort" kl_abort)
-               insertFunction "bound?" (wrapNamed "bound?" kl_boundP)
-               insertFunction "shen.string->bytes" (wrapNamed "shen.string->bytes" kl_shen_string_RBbytes)
-               insertFunction "maxinferences" (wrapNamed "maxinferences" kl_maxinferences)
-               insertFunction "inferences" (PL "inferences" kl_inferences)
-               insertFunction "protect" (wrapNamed "protect" kl_protect)
-               insertFunction "stoutput" (PL "stoutput" kl_stoutput)
-               insertFunction "string->symbol" (wrapNamed "string->symbol" kl_string_RBsymbol)
-               insertFunction "optimise" (wrapNamed "optimise" kl_optimise)
-               insertFunction "os" (PL "os" kl_os)
-               insertFunction "language" (PL "language" kl_language)
-               insertFunction "version" (PL "version" kl_version)
-               insertFunction "port" (PL "port" kl_port)
-               insertFunction "porters" (PL "porters" kl_porters)
-               insertFunction "implementation" (PL "implementation" kl_implementation)
-               insertFunction "release" (PL "release" kl_release)
-               insertFunction "package?" (wrapNamed "package?" kl_packageP)
-               insertFunction "function" (wrapNamed "function" kl_function)
-               insertFunction "shen.lookup-func" (wrapNamed "shen.lookup-func" kl_shen_lookup_func)
-               insertFunction "shen.datatype-error" (wrapNamed "shen.datatype-error" kl_shen_datatype_error)
-               insertFunction "shen.<datatype-rules>" (wrapNamed "shen.<datatype-rules>" kl_shen_LBdatatype_rulesRB)
-               insertFunction "shen.<datatype-rule>" (wrapNamed "shen.<datatype-rule>" kl_shen_LBdatatype_ruleRB)
-               insertFunction "shen.<side-conditions>" (wrapNamed "shen.<side-conditions>" kl_shen_LBside_conditionsRB)
-               insertFunction "shen.<side-condition>" (wrapNamed "shen.<side-condition>" kl_shen_LBside_conditionRB)
-               insertFunction "shen.<variable?>" (wrapNamed "shen.<variable?>" kl_shen_LBvariablePRB)
-               insertFunction "shen.<expr>" (wrapNamed "shen.<expr>" kl_shen_LBexprRB)
-               insertFunction "shen.remove-bar" (wrapNamed "shen.remove-bar" kl_shen_remove_bar)
-               insertFunction "shen.<premises>" (wrapNamed "shen.<premises>" kl_shen_LBpremisesRB)
-               insertFunction "shen.<semicolon-symbol>" (wrapNamed "shen.<semicolon-symbol>" kl_shen_LBsemicolon_symbolRB)
-               insertFunction "shen.<premise>" (wrapNamed "shen.<premise>" kl_shen_LBpremiseRB)
-               insertFunction "shen.<conclusion>" (wrapNamed "shen.<conclusion>" kl_shen_LBconclusionRB)
-               insertFunction "shen.sequent" (wrapNamed "shen.sequent" kl_shen_sequent)
-               insertFunction "shen.<formulae>" (wrapNamed "shen.<formulae>" kl_shen_LBformulaeRB)
-               insertFunction "shen.<comma-symbol>" (wrapNamed "shen.<comma-symbol>" kl_shen_LBcomma_symbolRB)
-               insertFunction "shen.<formula>" (wrapNamed "shen.<formula>" kl_shen_LBformulaRB)
-               insertFunction "shen.<type>" (wrapNamed "shen.<type>" kl_shen_LBtypeRB)
-               insertFunction "shen.<doubleunderline>" (wrapNamed "shen.<doubleunderline>" kl_shen_LBdoubleunderlineRB)
-               insertFunction "shen.<singleunderline>" (wrapNamed "shen.<singleunderline>" kl_shen_LBsingleunderlineRB)
-               insertFunction "shen.singleunderline?" (wrapNamed "shen.singleunderline?" kl_shen_singleunderlineP)
-               insertFunction "shen.sh?" (wrapNamed "shen.sh?" kl_shen_shP)
-               insertFunction "shen.doubleunderline?" (wrapNamed "shen.doubleunderline?" kl_shen_doubleunderlineP)
-               insertFunction "shen.dh?" (wrapNamed "shen.dh?" kl_shen_dhP)
-               insertFunction "shen.process-datatype" (wrapNamed "shen.process-datatype" kl_shen_process_datatype)
-               insertFunction "shen.remember-datatype" (wrapNamed "shen.remember-datatype" kl_shen_remember_datatype)
-               insertFunction "shen.rules->horn-clauses" (wrapNamed "shen.rules->horn-clauses" kl_shen_rules_RBhorn_clauses)
-               insertFunction "shen.double->singles" (wrapNamed "shen.double->singles" kl_shen_double_RBsingles)
-               insertFunction "shen.right-rule" (wrapNamed "shen.right-rule" kl_shen_right_rule)
-               insertFunction "shen.left-rule" (wrapNamed "shen.left-rule" kl_shen_left_rule)
-               insertFunction "shen.right->left" (wrapNamed "shen.right->left" kl_shen_right_RBleft)
-               insertFunction "shen.rule->horn-clause" (wrapNamed "shen.rule->horn-clause" kl_shen_rule_RBhorn_clause)
-               insertFunction "shen.rule->horn-clause-head" (wrapNamed "shen.rule->horn-clause-head" kl_shen_rule_RBhorn_clause_head)
-               insertFunction "shen.mode-ify" (wrapNamed "shen.mode-ify" kl_shen_mode_ify)
-               insertFunction "shen.rule->horn-clause-body" (wrapNamed "shen.rule->horn-clause-body" kl_shen_rule_RBhorn_clause_body)
-               insertFunction "shen.construct-search-literals" (wrapNamed "shen.construct-search-literals" kl_shen_construct_search_literals)
-               insertFunction "shen.csl-help" (wrapNamed "shen.csl-help" kl_shen_csl_help)
-               insertFunction "shen.construct-search-clauses" (wrapNamed "shen.construct-search-clauses" kl_shen_construct_search_clauses)
-               insertFunction "shen.construct-search-clause" (wrapNamed "shen.construct-search-clause" kl_shen_construct_search_clause)
-               insertFunction "shen.construct-base-search-clause" (wrapNamed "shen.construct-base-search-clause" kl_shen_construct_base_search_clause)
-               insertFunction "shen.construct-recursive-search-clause" (wrapNamed "shen.construct-recursive-search-clause" kl_shen_construct_recursive_search_clause)
-               insertFunction "shen.construct-side-literals" (wrapNamed "shen.construct-side-literals" kl_shen_construct_side_literals)
-               insertFunction "shen.construct-premiss-literal" (wrapNamed "shen.construct-premiss-literal" kl_shen_construct_premiss_literal)
-               insertFunction "shen.construct-context" (wrapNamed "shen.construct-context" kl_shen_construct_context)
-               insertFunction "shen.recursive_cons_form" (wrapNamed "shen.recursive_cons_form" kl_shen_recursive_cons_form)
-               insertFunction "preclude" (wrapNamed "preclude" kl_preclude)
-               insertFunction "shen.preclude-h" (wrapNamed "shen.preclude-h" kl_shen_preclude_h)
-               insertFunction "include" (wrapNamed "include" kl_include)
-               insertFunction "shen.include-h" (wrapNamed "shen.include-h" kl_shen_include_h)
-               insertFunction "preclude-all-but" (wrapNamed "preclude-all-but" kl_preclude_all_but)
-               insertFunction "include-all-but" (wrapNamed "include-all-but" kl_include_all_but)
-               insertFunction "shen.synonyms-help" (wrapNamed "shen.synonyms-help" kl_shen_synonyms_help)
-               insertFunction "shen.pushnew" (wrapNamed "shen.pushnew" kl_shen_pushnew)
-               insertFunction "shen.demod-rule" (wrapNamed "shen.demod-rule" kl_shen_demod_rule)
-               insertFunction "shen.demodulation-function" (wrapNamed "shen.demodulation-function" kl_shen_demodulation_function)
-               insertFunction "shen.default-rule" (PL "shen.default-rule" kl_shen_default_rule)
-               insertFunction "shen.yacc" (wrapNamed "shen.yacc" kl_shen_yacc)
-               insertFunction "shen.yacc->shen" (wrapNamed "shen.yacc->shen" kl_shen_yacc_RBshen)
-               insertFunction "shen.kill-code" (wrapNamed "shen.kill-code" kl_shen_kill_code)
-               insertFunction "kill" (PL "kill" kl_kill)
-               insertFunction "shen.analyse-kill" (wrapNamed "shen.analyse-kill" kl_shen_analyse_kill)
-               insertFunction "shen.split_cc_rules" (wrapNamed "shen.split_cc_rules" kl_shen_split_cc_rules)
-               insertFunction "shen.split_cc_rule" (wrapNamed "shen.split_cc_rule" kl_shen_split_cc_rule)
-               insertFunction "shen.semantic-completion-warning" (wrapNamed "shen.semantic-completion-warning" kl_shen_semantic_completion_warning)
-               insertFunction "shen.default_semantics" (wrapNamed "shen.default_semantics" kl_shen_default_semantics)
-               insertFunction "shen.grammar_symbol?" (wrapNamed "shen.grammar_symbol?" kl_shen_grammar_symbolP)
-               insertFunction "shen.yacc_cases" (wrapNamed "shen.yacc_cases" kl_shen_yacc_cases)
-               insertFunction "shen.cc_body" (wrapNamed "shen.cc_body" kl_shen_cc_body)
-               insertFunction "shen.syntax" (wrapNamed "shen.syntax" kl_shen_syntax)
-               insertFunction "shen.list-stream" (wrapNamed "shen.list-stream" kl_shen_list_stream)
-               insertFunction "shen.decons" (wrapNamed "shen.decons" kl_shen_decons)
-               insertFunction "shen.insert-runon" (wrapNamed "shen.insert-runon" kl_shen_insert_runon)
-               insertFunction "shen.strip-pathname" (wrapNamed "shen.strip-pathname" kl_shen_strip_pathname)
-               insertFunction "shen.recursive_descent" (wrapNamed "shen.recursive_descent" kl_shen_recursive_descent)
-               insertFunction "shen.variable-match" (wrapNamed "shen.variable-match" kl_shen_variable_match)
-               insertFunction "shen.terminal?" (wrapNamed "shen.terminal?" kl_shen_terminalP)
-               insertFunction "shen.jump_stream?" (wrapNamed "shen.jump_stream?" kl_shen_jump_streamP)
-               insertFunction "shen.check_stream" (wrapNamed "shen.check_stream" kl_shen_check_stream)
-               insertFunction "shen.jump_stream" (wrapNamed "shen.jump_stream" kl_shen_jump_stream)
-               insertFunction "shen.semantics" (wrapNamed "shen.semantics" kl_shen_semantics)
-               insertFunction "shen.snd-or-fail" (wrapNamed "shen.snd-or-fail" kl_shen_snd_or_fail)
-               insertFunction "fail" (PL "fail" kl_fail)
-               insertFunction "shen.pair" (wrapNamed "shen.pair" kl_shen_pair)
-               insertFunction "shen.hdtl" (wrapNamed "shen.hdtl" kl_shen_hdtl)
-               insertFunction "shen.<!>" (wrapNamed "shen.<!>" kl_shen_LBExclRB)
-               insertFunction "<e>" (wrapNamed "<e>" kl_LBeRB)
-               insertFunction "read-file-as-bytelist" (wrapNamed "read-file-as-bytelist" kl_read_file_as_bytelist)
-               insertFunction "shen.read-file-as-bytelist-help" (wrapNamed "shen.read-file-as-bytelist-help" kl_shen_read_file_as_bytelist_help)
-               insertFunction "read-file-as-string" (wrapNamed "read-file-as-string" kl_read_file_as_string)
-               insertFunction "shen.rfas-h" (wrapNamed "shen.rfas-h" kl_shen_rfas_h)
-               insertFunction "input" (wrapNamed "input" kl_input)
-               insertFunction "input+" (wrapNamed "input+" kl_inputPlus)
-               insertFunction "shen.monotype" (wrapNamed "shen.monotype" kl_shen_monotype)
-               insertFunction "read" (wrapNamed "read" kl_read)
-               insertFunction "it" (PL "it" kl_it)
-               insertFunction "shen.read-loop" (wrapNamed "shen.read-loop" kl_shen_read_loop)
-               insertFunction "shen.terminator?" (wrapNamed "shen.terminator?" kl_shen_terminatorP)
-               insertFunction "lineread" (wrapNamed "lineread" kl_lineread)
-               insertFunction "shen.lineread-loop" (wrapNamed "shen.lineread-loop" kl_shen_lineread_loop)
-               insertFunction "shen.record-it" (wrapNamed "shen.record-it" kl_shen_record_it)
-               insertFunction "shen.trim-whitespace" (wrapNamed "shen.trim-whitespace" kl_shen_trim_whitespace)
-               insertFunction "shen.record-it-h" (wrapNamed "shen.record-it-h" kl_shen_record_it_h)
-               insertFunction "shen.cn-all" (wrapNamed "shen.cn-all" kl_shen_cn_all)
-               insertFunction "read-file" (wrapNamed "read-file" kl_read_file)
-               insertFunction "read-from-string" (wrapNamed "read-from-string" kl_read_from_string)
-               insertFunction "shen.read-error" (wrapNamed "shen.read-error" kl_shen_read_error)
-               insertFunction "shen.compress-50" (wrapNamed "shen.compress-50" kl_shen_compress_50)
-               insertFunction "shen.<st_input>" (wrapNamed "shen.<st_input>" kl_shen_LBst_inputRB)
-               insertFunction "shen.<lsb>" (wrapNamed "shen.<lsb>" kl_shen_LBlsbRB)
-               insertFunction "shen.<rsb>" (wrapNamed "shen.<rsb>" kl_shen_LBrsbRB)
-               insertFunction "shen.<lcurly>" (wrapNamed "shen.<lcurly>" kl_shen_LBlcurlyRB)
-               insertFunction "shen.<rcurly>" (wrapNamed "shen.<rcurly>" kl_shen_LBrcurlyRB)
-               insertFunction "shen.<bar>" (wrapNamed "shen.<bar>" kl_shen_LBbarRB)
-               insertFunction "shen.<semicolon>" (wrapNamed "shen.<semicolon>" kl_shen_LBsemicolonRB)
-               insertFunction "shen.<colon>" (wrapNamed "shen.<colon>" kl_shen_LBcolonRB)
-               insertFunction "shen.<comma>" (wrapNamed "shen.<comma>" kl_shen_LBcommaRB)
-               insertFunction "shen.<equal>" (wrapNamed "shen.<equal>" kl_shen_LBequalRB)
-               insertFunction "shen.<minus>" (wrapNamed "shen.<minus>" kl_shen_LBminusRB)
-               insertFunction "shen.<lrb>" (wrapNamed "shen.<lrb>" kl_shen_LBlrbRB)
-               insertFunction "shen.<rrb>" (wrapNamed "shen.<rrb>" kl_shen_LBrrbRB)
-               insertFunction "shen.<atom>" (wrapNamed "shen.<atom>" kl_shen_LBatomRB)
-               insertFunction "shen.control-chars" (wrapNamed "shen.control-chars" kl_shen_control_chars)
-               insertFunction "shen.code-point" (wrapNamed "shen.code-point" kl_shen_code_point)
-               insertFunction "shen.after-codepoint" (wrapNamed "shen.after-codepoint" kl_shen_after_codepoint)
-               insertFunction "shen.decimalise" (wrapNamed "shen.decimalise" kl_shen_decimalise)
-               insertFunction "shen.digits->integers" (wrapNamed "shen.digits->integers" kl_shen_digits_RBintegers)
-               insertFunction "shen.<sym>" (wrapNamed "shen.<sym>" kl_shen_LBsymRB)
-               insertFunction "shen.<alphanums>" (wrapNamed "shen.<alphanums>" kl_shen_LBalphanumsRB)
-               insertFunction "shen.<alphanum>" (wrapNamed "shen.<alphanum>" kl_shen_LBalphanumRB)
-               insertFunction "shen.<num>" (wrapNamed "shen.<num>" kl_shen_LBnumRB)
-               insertFunction "shen.numbyte?" (wrapNamed "shen.numbyte?" kl_shen_numbyteP)
-               insertFunction "shen.<alpha>" (wrapNamed "shen.<alpha>" kl_shen_LBalphaRB)
-               insertFunction "shen.symbol-code?" (wrapNamed "shen.symbol-code?" kl_shen_symbol_codeP)
-               insertFunction "shen.<str>" (wrapNamed "shen.<str>" kl_shen_LBstrRB)
-               insertFunction "shen.<dbq>" (wrapNamed "shen.<dbq>" kl_shen_LBdbqRB)
-               insertFunction "shen.<strcontents>" (wrapNamed "shen.<strcontents>" kl_shen_LBstrcontentsRB)
-               insertFunction "shen.<byte>" (wrapNamed "shen.<byte>" kl_shen_LBbyteRB)
-               insertFunction "shen.<strc>" (wrapNamed "shen.<strc>" kl_shen_LBstrcRB)
-               insertFunction "shen.<number>" (wrapNamed "shen.<number>" kl_shen_LBnumberRB)
-               insertFunction "shen.<E>" (wrapNamed "shen.<E>" kl_shen_LBERB)
-               insertFunction "shen.<log10>" (wrapNamed "shen.<log10>" kl_shen_LBlog10RB)
-               insertFunction "shen.<plus>" (wrapNamed "shen.<plus>" kl_shen_LBplusRB)
-               insertFunction "shen.<stop>" (wrapNamed "shen.<stop>" kl_shen_LBstopRB)
-               insertFunction "shen.<predigits>" (wrapNamed "shen.<predigits>" kl_shen_LBpredigitsRB)
-               insertFunction "shen.<postdigits>" (wrapNamed "shen.<postdigits>" kl_shen_LBpostdigitsRB)
-               insertFunction "shen.<digits>" (wrapNamed "shen.<digits>" kl_shen_LBdigitsRB)
-               insertFunction "shen.<digit>" (wrapNamed "shen.<digit>" kl_shen_LBdigitRB)
-               insertFunction "shen.byte->digit" (wrapNamed "shen.byte->digit" kl_shen_byte_RBdigit)
-               insertFunction "shen.pre" (wrapNamed "shen.pre" kl_shen_pre)
-               insertFunction "shen.post" (wrapNamed "shen.post" kl_shen_post)
-               insertFunction "shen.expt" (wrapNamed "shen.expt" kl_shen_expt)
-               insertFunction "shen.<st_input1>" (wrapNamed "shen.<st_input1>" kl_shen_LBst_input1RB)
-               insertFunction "shen.<st_input2>" (wrapNamed "shen.<st_input2>" kl_shen_LBst_input2RB)
-               insertFunction "shen.<comment>" (wrapNamed "shen.<comment>" kl_shen_LBcommentRB)
-               insertFunction "shen.<singleline>" (wrapNamed "shen.<singleline>" kl_shen_LBsinglelineRB)
-               insertFunction "shen.<backslash>" (wrapNamed "shen.<backslash>" kl_shen_LBbackslashRB)
-               insertFunction "shen.<anysingle>" (wrapNamed "shen.<anysingle>" kl_shen_LBanysingleRB)
-               insertFunction "shen.<non-return>" (wrapNamed "shen.<non-return>" kl_shen_LBnon_returnRB)
-               insertFunction "shen.<return>" (wrapNamed "shen.<return>" kl_shen_LBreturnRB)
-               insertFunction "shen.<multiline>" (wrapNamed "shen.<multiline>" kl_shen_LBmultilineRB)
-               insertFunction "shen.<times>" (wrapNamed "shen.<times>" kl_shen_LBtimesRB)
-               insertFunction "shen.<anymulti>" (wrapNamed "shen.<anymulti>" kl_shen_LBanymultiRB)
-               insertFunction "shen.<whitespaces>" (wrapNamed "shen.<whitespaces>" kl_shen_LBwhitespacesRB)
-               insertFunction "shen.<whitespace>" (wrapNamed "shen.<whitespace>" kl_shen_LBwhitespaceRB)
-               insertFunction "shen.cons_form" (wrapNamed "shen.cons_form" kl_shen_cons_form)
-               insertFunction "shen.package-macro" (wrapNamed "shen.package-macro" kl_shen_package_macro)
-               insertFunction "shen.record-exceptions" (wrapNamed "shen.record-exceptions" kl_shen_record_exceptions)
-               insertFunction "shen.packageh" (wrapNamed "shen.packageh" kl_shen_packageh)
-               insertFunction "shen.<defprolog>" (wrapNamed "shen.<defprolog>" kl_shen_LBdefprologRB)
-               insertFunction "shen.prolog-error" (wrapNamed "shen.prolog-error" kl_shen_prolog_error)
-               insertFunction "shen.next-50" (wrapNamed "shen.next-50" kl_shen_next_50)
-               insertFunction "shen.decons-string" (wrapNamed "shen.decons-string" kl_shen_decons_string)
-               insertFunction "shen.insert-predicate" (wrapNamed "shen.insert-predicate" kl_shen_insert_predicate)
-               insertFunction "shen.<predicate*>" (wrapNamed "shen.<predicate*>" kl_shen_LBpredicateMultRB)
-               insertFunction "shen.<clauses*>" (wrapNamed "shen.<clauses*>" kl_shen_LBclausesMultRB)
-               insertFunction "shen.<clause*>" (wrapNamed "shen.<clause*>" kl_shen_LBclauseMultRB)
-               insertFunction "shen.<head*>" (wrapNamed "shen.<head*>" kl_shen_LBheadMultRB)
-               insertFunction "shen.<term*>" (wrapNamed "shen.<term*>" kl_shen_LBtermMultRB)
-               insertFunction "shen.legitimate-term?" (wrapNamed "shen.legitimate-term?" kl_shen_legitimate_termP)
-               insertFunction "shen.eval-cons" (wrapNamed "shen.eval-cons" kl_shen_eval_cons)
-               insertFunction "shen.<body*>" (wrapNamed "shen.<body*>" kl_shen_LBbodyMultRB)
-               insertFunction "shen.<literal*>" (wrapNamed "shen.<literal*>" kl_shen_LBliteralMultRB)
-               insertFunction "shen.<end*>" (wrapNamed "shen.<end*>" kl_shen_LBendMultRB)
-               insertFunction "cut" (wrapNamed "cut" kl_cut)
-               insertFunction "shen.insert_modes" (wrapNamed "shen.insert_modes" kl_shen_insert_modes)
-               insertFunction "shen.s-prolog" (wrapNamed "shen.s-prolog" kl_shen_s_prolog)
-               insertFunction "shen.prolog->shen" (wrapNamed "shen.prolog->shen" kl_shen_prolog_RBshen)
-               insertFunction "shen.s-prolog_clause" (wrapNamed "shen.s-prolog_clause" kl_shen_s_prolog_clause)
-               insertFunction "shen.head_abstraction" (wrapNamed "shen.head_abstraction" kl_shen_head_abstraction)
-               insertFunction "shen.complexity_head" (wrapNamed "shen.complexity_head" kl_shen_complexity_head)
-               insertFunction "shen.complexity" (wrapNamed "shen.complexity" kl_shen_complexity)
-               insertFunction "shen.product" (wrapNamed "shen.product" kl_shen_product)
-               insertFunction "shen.s-prolog_literal" (wrapNamed "shen.s-prolog_literal" kl_shen_s_prolog_literal)
-               insertFunction "shen.insert_deref" (wrapNamed "shen.insert_deref" kl_shen_insert_deref)
-               insertFunction "shen.insert_lazyderef" (wrapNamed "shen.insert_lazyderef" kl_shen_insert_lazyderef)
-               insertFunction "shen.group_clauses" (wrapNamed "shen.group_clauses" kl_shen_group_clauses)
-               insertFunction "shen.collect" (wrapNamed "shen.collect" kl_shen_collect)
-               insertFunction "shen.same_predicate?" (wrapNamed "shen.same_predicate?" kl_shen_same_predicateP)
-               insertFunction "shen.compile_prolog_procedure" (wrapNamed "shen.compile_prolog_procedure" kl_shen_compile_prolog_procedure)
-               insertFunction "shen.procedure_name" (wrapNamed "shen.procedure_name" kl_shen_procedure_name)
-               insertFunction "shen.clauses-to-shen" (wrapNamed "shen.clauses-to-shen" kl_shen_clauses_to_shen)
-               insertFunction "shen.catch-cut" (wrapNamed "shen.catch-cut" kl_shen_catch_cut)
-               insertFunction "shen.catchpoint" (PL "shen.catchpoint" kl_shen_catchpoint)
-               insertFunction "shen.cutpoint" (wrapNamed "shen.cutpoint" kl_shen_cutpoint)
-               insertFunction "shen.nest-disjunct" (wrapNamed "shen.nest-disjunct" kl_shen_nest_disjunct)
-               insertFunction "shen.lisp-or" (wrapNamed "shen.lisp-or" kl_shen_lisp_or)
-               insertFunction "shen.prolog-aritycheck" (wrapNamed "shen.prolog-aritycheck" kl_shen_prolog_aritycheck)
-               insertFunction "shen.linearise-clause" (wrapNamed "shen.linearise-clause" kl_shen_linearise_clause)
-               insertFunction "shen.clause_form" (wrapNamed "shen.clause_form" kl_shen_clause_form)
-               insertFunction "shen.explicit_modes" (wrapNamed "shen.explicit_modes" kl_shen_explicit_modes)
-               insertFunction "shen.em_help" (wrapNamed "shen.em_help" kl_shen_em_help)
-               insertFunction "shen.cf_help" (wrapNamed "shen.cf_help" kl_shen_cf_help)
-               insertFunction "occurs-check" (wrapNamed "occurs-check" kl_occurs_check)
-               insertFunction "shen.aum" (wrapNamed "shen.aum" kl_shen_aum)
-               insertFunction "shen.continuation_call" (wrapNamed "shen.continuation_call" kl_shen_continuation_call)
-               insertFunction "remove" (wrapNamed "remove" kl_remove)
-               insertFunction "shen.remove-h" (wrapNamed "shen.remove-h" kl_shen_remove_h)
-               insertFunction "shen.cc_help" (wrapNamed "shen.cc_help" kl_shen_cc_help)
-               insertFunction "shen.make_mu_application" (wrapNamed "shen.make_mu_application" kl_shen_make_mu_application)
-               insertFunction "shen.mu_reduction" (wrapNamed "shen.mu_reduction" kl_shen_mu_reduction)
-               insertFunction "shen.rcons_form" (wrapNamed "shen.rcons_form" kl_shen_rcons_form)
-               insertFunction "shen.remove_modes" (wrapNamed "shen.remove_modes" kl_shen_remove_modes)
-               insertFunction "shen.ephemeral_variable?" (wrapNamed "shen.ephemeral_variable?" kl_shen_ephemeral_variableP)
-               insertFunction "shen.prolog_constant?" (wrapNamed "shen.prolog_constant?" kl_shen_prolog_constantP)
-               insertFunction "shen.aum_to_shen" (wrapNamed "shen.aum_to_shen" kl_shen_aum_to_shen)
-               insertFunction "shen.chwild" (wrapNamed "shen.chwild" kl_shen_chwild)
-               insertFunction "shen.newpv" (wrapNamed "shen.newpv" kl_shen_newpv)
-               insertFunction "shen.resizeprocessvector" (wrapNamed "shen.resizeprocessvector" kl_shen_resizeprocessvector)
-               insertFunction "shen.resize-vector" (wrapNamed "shen.resize-vector" kl_shen_resize_vector)
-               insertFunction "shen.copy-vector" (wrapNamed "shen.copy-vector" kl_shen_copy_vector)
-               insertFunction "shen.copy-vector-stage-1" (wrapNamed "shen.copy-vector-stage-1" kl_shen_copy_vector_stage_1)
-               insertFunction "shen.copy-vector-stage-2" (wrapNamed "shen.copy-vector-stage-2" kl_shen_copy_vector_stage_2)
-               insertFunction "shen.mk-pvar" (wrapNamed "shen.mk-pvar" kl_shen_mk_pvar)
-               insertFunction "shen.pvar?" (wrapNamed "shen.pvar?" kl_shen_pvarP)
-               insertFunction "shen.bindv" (wrapNamed "shen.bindv" kl_shen_bindv)
-               insertFunction "shen.unbindv" (wrapNamed "shen.unbindv" kl_shen_unbindv)
-               insertFunction "shen.incinfs" (PL "shen.incinfs" kl_shen_incinfs)
-               insertFunction "shen.call_the_continuation" (wrapNamed "shen.call_the_continuation" kl_shen_call_the_continuation)
-               insertFunction "shen.newcontinuation" (wrapNamed "shen.newcontinuation" kl_shen_newcontinuation)
-               insertFunction "return" (wrapNamed "return" kl_return)
-               insertFunction "shen.measure&return" (wrapNamed "shen.measure&return" kl_shen_measureAndreturn)
-               insertFunction "unify" (wrapNamed "unify" kl_unify)
-               insertFunction "shen.lzy=" (wrapNamed "shen.lzy=" kl_shen_lzyEq)
-               insertFunction "shen.deref" (wrapNamed "shen.deref" kl_shen_deref)
-               insertFunction "shen.lazyderef" (wrapNamed "shen.lazyderef" kl_shen_lazyderef)
-               insertFunction "shen.valvector" (wrapNamed "shen.valvector" kl_shen_valvector)
-               insertFunction "unify!" (wrapNamed "unify!" kl_unifyExcl)
-               insertFunction "shen.lzy=!" (wrapNamed "shen.lzy=!" kl_shen_lzyEqExcl)
-               insertFunction "shen.occurs?" (wrapNamed "shen.occurs?" kl_shen_occursP)
-               insertFunction "identical" (wrapNamed "identical" kl_identical)
-               insertFunction "shen.lzy==" (wrapNamed "shen.lzy==" kl_shen_lzyEqEq)
-               insertFunction "shen.pvar" (wrapNamed "shen.pvar" kl_shen_pvar)
-               insertFunction "bind" (wrapNamed "bind" kl_bind)
-               insertFunction "fwhen" (wrapNamed "fwhen" kl_fwhen)
-               insertFunction "call" (wrapNamed "call" kl_call)
-               insertFunction "shen.call-help" (wrapNamed "shen.call-help" kl_shen_call_help)
-               insertFunction "shen.intprolog" (wrapNamed "shen.intprolog" kl_shen_intprolog)
-               insertFunction "shen.intprolog-help" (wrapNamed "shen.intprolog-help" kl_shen_intprolog_help)
-               insertFunction "shen.intprolog-help-help" (wrapNamed "shen.intprolog-help-help" kl_shen_intprolog_help_help)
-               insertFunction "shen.call-rest" (wrapNamed "shen.call-rest" kl_shen_call_rest)
-               insertFunction "shen.start-new-prolog-process" (PL "shen.start-new-prolog-process" kl_shen_start_new_prolog_process)
-               insertFunction "shen.insert-prolog-variables" (wrapNamed "shen.insert-prolog-variables" kl_shen_insert_prolog_variables)
-               insertFunction "shen.insert-prolog-variables-help" (wrapNamed "shen.insert-prolog-variables-help" kl_shen_insert_prolog_variables_help)
-               insertFunction "shen.initialise-prolog" (wrapNamed "shen.initialise-prolog" kl_shen_initialise_prolog)
-               insertFunction "shen.f_error" (wrapNamed "shen.f_error" kl_shen_f_error)
-               insertFunction "shen.tracked?" (wrapNamed "shen.tracked?" kl_shen_trackedP)
-               insertFunction "track" (wrapNamed "track" kl_track)
-               insertFunction "shen.track-function" (wrapNamed "shen.track-function" kl_shen_track_function)
-               insertFunction "shen.insert-tracking-code" (wrapNamed "shen.insert-tracking-code" kl_shen_insert_tracking_code)
-               insertFunction "step" (wrapNamed "step" kl_step)
-               insertFunction "spy" (wrapNamed "spy" kl_spy)
-               insertFunction "shen.terpri-or-read-char" (PL "shen.terpri-or-read-char" kl_shen_terpri_or_read_char)
-               insertFunction "shen.check-byte" (wrapNamed "shen.check-byte" kl_shen_check_byte)
-               insertFunction "shen.input-track" (wrapNamed "shen.input-track" kl_shen_input_track)
-               insertFunction "shen.recursively-print" (wrapNamed "shen.recursively-print" kl_shen_recursively_print)
-               insertFunction "shen.spaces" (wrapNamed "shen.spaces" kl_shen_spaces)
-               insertFunction "shen.output-track" (wrapNamed "shen.output-track" kl_shen_output_track)
-               insertFunction "untrack" (wrapNamed "untrack" kl_untrack)
-               insertFunction "profile" (wrapNamed "profile" kl_profile)
-               insertFunction "shen.profile-help" (wrapNamed "shen.profile-help" kl_shen_profile_help)
-               insertFunction "unprofile" (wrapNamed "unprofile" kl_unprofile)
-               insertFunction "shen.profile-func" (wrapNamed "shen.profile-func" kl_shen_profile_func)
-               insertFunction "profile-results" (wrapNamed "profile-results" kl_profile_results)
-               insertFunction "shen.get-profile" (wrapNamed "shen.get-profile" kl_shen_get_profile)
-               insertFunction "shen.put-profile" (wrapNamed "shen.put-profile" kl_shen_put_profile)
-               insertFunction "load" (wrapNamed "load" kl_load)
-               insertFunction "shen.load-help" (wrapNamed "shen.load-help" kl_shen_load_help)
-               insertFunction "shen.remove-synonyms" (wrapNamed "shen.remove-synonyms" kl_shen_remove_synonyms)
-               insertFunction "shen.typecheck-and-load" (wrapNamed "shen.typecheck-and-load" kl_shen_typecheck_and_load)
-               insertFunction "shen.typetable" (wrapNamed "shen.typetable" kl_shen_typetable)
-               insertFunction "shen.assumetype" (wrapNamed "shen.assumetype" kl_shen_assumetype)
-               insertFunction "shen.unwind-types" (wrapNamed "shen.unwind-types" kl_shen_unwind_types)
-               insertFunction "shen.remtype" (wrapNamed "shen.remtype" kl_shen_remtype)
-               insertFunction "shen.removetype" (wrapNamed "shen.removetype" kl_shen_removetype)
-               insertFunction "shen.<sig+rest>" (wrapNamed "shen.<sig+rest>" kl_shen_LBsigPlusrestRB)
-               insertFunction "write-to-file" (wrapNamed "write-to-file" kl_write_to_file)
-               insertFunction "pr" (wrapNamed "pr" kl_pr)
-               insertFunction "shen.prh" (wrapNamed "shen.prh" kl_shen_prh)
-               insertFunction "shen.write-char-and-inc" (wrapNamed "shen.write-char-and-inc" kl_shen_write_char_and_inc)
-               insertFunction "print" (wrapNamed "print" kl_print)
-               insertFunction "shen.prhush" (wrapNamed "shen.prhush" kl_shen_prhush)
-               insertFunction "shen.mkstr" (wrapNamed "shen.mkstr" kl_shen_mkstr)
-               insertFunction "shen.mkstr-l" (wrapNamed "shen.mkstr-l" kl_shen_mkstr_l)
-               insertFunction "shen.insert-l" (wrapNamed "shen.insert-l" kl_shen_insert_l)
-               insertFunction "shen.factor-cn" (wrapNamed "shen.factor-cn" kl_shen_factor_cn)
-               insertFunction "shen.proc-nl" (wrapNamed "shen.proc-nl" kl_shen_proc_nl)
-               insertFunction "shen.mkstr-r" (wrapNamed "shen.mkstr-r" kl_shen_mkstr_r)
-               insertFunction "shen.insert" (wrapNamed "shen.insert" kl_shen_insert)
-               insertFunction "shen.insert-h" (wrapNamed "shen.insert-h" kl_shen_insert_h)
-               insertFunction "shen.app" (wrapNamed "shen.app" kl_shen_app)
-               insertFunction "shen.arg->str" (wrapNamed "shen.arg->str" kl_shen_arg_RBstr)
-               insertFunction "shen.list->str" (wrapNamed "shen.list->str" kl_shen_list_RBstr)
-               insertFunction "shen.maxseq" (PL "shen.maxseq" kl_shen_maxseq)
-               insertFunction "shen.iter-list" (wrapNamed "shen.iter-list" kl_shen_iter_list)
-               insertFunction "shen.str->str" (wrapNamed "shen.str->str" kl_shen_str_RBstr)
-               insertFunction "shen.vector->str" (wrapNamed "shen.vector->str" kl_shen_vector_RBstr)
-               insertFunction "shen.print-vector?" (wrapNamed "shen.print-vector?" kl_shen_print_vectorP)
-               insertFunction "shen.fbound?" (wrapNamed "shen.fbound?" kl_shen_fboundP)
-               insertFunction "shen.tuple" (wrapNamed "shen.tuple" kl_shen_tuple)
-               insertFunction "shen.iter-vector" (wrapNamed "shen.iter-vector" kl_shen_iter_vector)
-               insertFunction "shen.atom->str" (wrapNamed "shen.atom->str" kl_shen_atom_RBstr)
-               insertFunction "shen.funexstring" (PL "shen.funexstring" kl_shen_funexstring)
-               insertFunction "shen.list?" (wrapNamed "shen.list?" kl_shen_listP)
-               insertFunction "macroexpand" (wrapNamed "macroexpand" kl_macroexpand)
-               insertFunction "shen.error-macro" (wrapNamed "shen.error-macro" kl_shen_error_macro)
-               insertFunction "shen.output-macro" (wrapNamed "shen.output-macro" kl_shen_output_macro)
-               insertFunction "shen.make-string-macro" (wrapNamed "shen.make-string-macro" kl_shen_make_string_macro)
-               insertFunction "shen.input-macro" (wrapNamed "shen.input-macro" kl_shen_input_macro)
-               insertFunction "shen.compose" (wrapNamed "shen.compose" kl_shen_compose)
-               insertFunction "shen.compile-macro" (wrapNamed "shen.compile-macro" kl_shen_compile_macro)
-               insertFunction "shen.prolog-macro" (wrapNamed "shen.prolog-macro" kl_shen_prolog_macro)
-               insertFunction "shen.receive-terms" (wrapNamed "shen.receive-terms" kl_shen_receive_terms)
-               insertFunction "shen.pass-literals" (wrapNamed "shen.pass-literals" kl_shen_pass_literals)
-               insertFunction "shen.defprolog-macro" (wrapNamed "shen.defprolog-macro" kl_shen_defprolog_macro)
-               insertFunction "shen.datatype-macro" (wrapNamed "shen.datatype-macro" kl_shen_datatype_macro)
-               insertFunction "shen.intern-type" (wrapNamed "shen.intern-type" kl_shen_intern_type)
-               insertFunction "shen.@s-macro" (wrapNamed "shen.@s-macro" kl_shen_Ats_macro)
-               insertFunction "shen.synonyms-macro" (wrapNamed "shen.synonyms-macro" kl_shen_synonyms_macro)
-               insertFunction "shen.curry-synonyms" (wrapNamed "shen.curry-synonyms" kl_shen_curry_synonyms)
-               insertFunction "shen.nl-macro" (wrapNamed "shen.nl-macro" kl_shen_nl_macro)
-               insertFunction "shen.assoc-macro" (wrapNamed "shen.assoc-macro" kl_shen_assoc_macro)
-               insertFunction "shen.let-macro" (wrapNamed "shen.let-macro" kl_shen_let_macro)
-               insertFunction "shen.abs-macro" (wrapNamed "shen.abs-macro" kl_shen_abs_macro)
-               insertFunction "shen.cases-macro" (wrapNamed "shen.cases-macro" kl_shen_cases_macro)
-               insertFunction "shen.timer-macro" (wrapNamed "shen.timer-macro" kl_shen_timer_macro)
-               insertFunction "shen.tuple-up" (wrapNamed "shen.tuple-up" kl_shen_tuple_up)
-               insertFunction "shen.put/get-macro" (wrapNamed "shen.put/get-macro" kl_shen_putDivget_macro)
-               insertFunction "shen.function-macro" (wrapNamed "shen.function-macro" kl_shen_function_macro)
-               insertFunction "shen.function-abstraction" (wrapNamed "shen.function-abstraction" kl_shen_function_abstraction)
-               insertFunction "shen.function-abstraction-help" (wrapNamed "shen.function-abstraction-help" kl_shen_function_abstraction_help)
-               insertFunction "undefmacro" (wrapNamed "undefmacro" kl_undefmacro)
-               insertFunction "shen.findpos" (wrapNamed "shen.findpos" kl_shen_findpos)
-               insertFunction "shen.remove-nth" (wrapNamed "shen.remove-nth" kl_shen_remove_nth)
-               insertFunction "shen.initialise_arity_table" (wrapNamed "shen.initialise_arity_table" kl_shen_initialise_arity_table)
-               insertFunction "arity" (wrapNamed "arity" kl_arity)
-               insertFunction "systemf" (wrapNamed "systemf" kl_systemf)
-               insertFunction "adjoin" (wrapNamed "adjoin" kl_adjoin)
-               insertFunction "shen.symbol-table-entry" (wrapNamed "shen.symbol-table-entry" kl_shen_symbol_table_entry)
-               insertFunction "shen.lambda-form" (wrapNamed "shen.lambda-form" kl_shen_lambda_form)
-               insertFunction "shen.add-end" (wrapNamed "shen.add-end" kl_shen_add_end)
-               insertFunction "specialise" (wrapNamed "specialise" kl_specialise)
-               insertFunction "unspecialise" (wrapNamed "unspecialise" kl_unspecialise)
-               insertFunction "declare" (wrapNamed "declare" kl_declare)
-               insertFunction "shen.demodulate" (wrapNamed "shen.demodulate" kl_shen_demodulate)
-               insertFunction "shen.variancy-test" (wrapNamed "shen.variancy-test" kl_shen_variancy_test)
-               insertFunction "shen.variant?" (wrapNamed "shen.variant?" kl_shen_variantP)
-               insertFunction "shen.typecheck" (wrapNamed "shen.typecheck" kl_shen_typecheck)
-               insertFunction "shen.curry" (wrapNamed "shen.curry" kl_shen_curry)
-               insertFunction "shen.special?" (wrapNamed "shen.special?" kl_shen_specialP)
-               insertFunction "shen.extraspecial?" (wrapNamed "shen.extraspecial?" kl_shen_extraspecialP)
-               insertFunction "shen.t*" (wrapNamed "shen.t*" kl_shen_tMult)
-               insertFunction "shen.type-theory-enabled?" (PL "shen.type-theory-enabled?" kl_shen_type_theory_enabledP)
-               insertFunction "enable-type-theory" (wrapNamed "enable-type-theory" kl_enable_type_theory)
-               insertFunction "shen.prolog-failure" (wrapNamed "shen.prolog-failure" kl_shen_prolog_failure)
-               insertFunction "shen.maxinfexceeded?" (PL "shen.maxinfexceeded?" kl_shen_maxinfexceededP)
-               insertFunction "shen.errormaxinfs" (PL "shen.errormaxinfs" kl_shen_errormaxinfs)
-               insertFunction "shen.udefs*" (wrapNamed "shen.udefs*" kl_shen_udefsMult)
-               insertFunction "shen.th*" (wrapNamed "shen.th*" kl_shen_thMult)
-               insertFunction "shen.t*-hyps" (wrapNamed "shen.t*-hyps" kl_shen_tMult_hyps)
-               insertFunction "shen.show" (wrapNamed "shen.show" kl_shen_show)
-               insertFunction "shen.line" (PL "shen.line" kl_shen_line)
-               insertFunction "shen.show-p" (wrapNamed "shen.show-p" kl_shen_show_p)
-               insertFunction "shen.show-assumptions" (wrapNamed "shen.show-assumptions" kl_shen_show_assumptions)
-               insertFunction "shen.pause-for-user" (PL "shen.pause-for-user" kl_shen_pause_for_user)
-               insertFunction "shen.typedf?" (wrapNamed "shen.typedf?" kl_shen_typedfP)
-               insertFunction "shen.sigf" (wrapNamed "shen.sigf" kl_shen_sigf)
-               insertFunction "shen.placeholder" (PL "shen.placeholder" kl_shen_placeholder)
-               insertFunction "shen.base" (wrapNamed "shen.base" kl_shen_base)
-               insertFunction "shen.by_hypothesis" (wrapNamed "shen.by_hypothesis" kl_shen_by_hypothesis)
-               insertFunction "shen.t*-def" (wrapNamed "shen.t*-def" kl_shen_tMult_def)
-               insertFunction "shen.t*-defh" (wrapNamed "shen.t*-defh" kl_shen_tMult_defh)
-               insertFunction "shen.t*-defhh" (wrapNamed "shen.t*-defhh" kl_shen_tMult_defhh)
-               insertFunction "shen.memo" (wrapNamed "shen.memo" kl_shen_memo)
-               insertFunction "shen.<sig+rules>" (wrapNamed "shen.<sig+rules>" kl_shen_LBsigPlusrulesRB)
-               insertFunction "shen.<non-ll-rules>" (wrapNamed "shen.<non-ll-rules>" kl_shen_LBnon_ll_rulesRB)
-               insertFunction "shen.ue" (wrapNamed "shen.ue" kl_shen_ue)
-               insertFunction "shen.ue-sig" (wrapNamed "shen.ue-sig" kl_shen_ue_sig)
-               insertFunction "shen.ues" (wrapNamed "shen.ues" kl_shen_ues)
-               insertFunction "shen.ue?" (wrapNamed "shen.ue?" kl_shen_ueP)
-               insertFunction "shen.ue-h?" (wrapNamed "shen.ue-h?" kl_shen_ue_hP)
-               insertFunction "shen.t*-rules" (wrapNamed "shen.t*-rules" kl_shen_tMult_rules)
-               insertFunction "shen.t*-rule" (wrapNamed "shen.t*-rule" kl_shen_tMult_rule)
-               insertFunction "shen.placeholders" (wrapNamed "shen.placeholders" kl_shen_placeholders)
-               insertFunction "shen.newhyps" (wrapNamed "shen.newhyps" kl_shen_newhyps)
-               insertFunction "shen.patthyps" (wrapNamed "shen.patthyps" kl_shen_patthyps)
-               insertFunction "shen.result-type" (wrapNamed "shen.result-type" kl_shen_result_type)
-               insertFunction "shen.t*-patterns" (wrapNamed "shen.t*-patterns" kl_shen_tMult_patterns)
-               insertFunction "shen.t*-action" (wrapNamed "shen.t*-action" kl_shen_tMult_action)
-               insertFunction "findall" (wrapNamed "findall" kl_findall)
-               insertFunction "shen.findallhelp" (wrapNamed "shen.findallhelp" kl_shen_findallhelp)
-               insertFunction "shen.remember" (wrapNamed "shen.remember" kl_shen_remember)
+{-# LANGUAGE BangPatterns #-}+{-# LANGUAGE OverloadedStrings #-}+{-# LANGUAGE Strict #-}+{-# LANGUAGE StrictData #-}+{-# LANGUAGE ViewPatterns #-}++module Backend.FunctionTable where++import Control.Monad.Except+import Control.Parallel+import Environment+import Core.Primitives as Primitives+import Backend.Utils+import Core.Types+import Core.Utils+import Wrap+import Backend.Toplevel+import Backend.Core+import Backend.Sys+import Backend.Sequent+import Backend.Yacc+import Backend.Reader+import Backend.Prolog+import Backend.Track+import Backend.Load+import Backend.Writer+import Backend.Macros+import Backend.Declarations+import Backend.Types+import Backend.TStar++{-+Copyright (c) 2015, Mark Tarver+All rights reserved.++Redistribution and use in source and binary forms, with or without+modification, are permitted provided that the following conditions are met:++1. Redistributions of source code must retain the above copyright+   notice, this list of conditions and the following disclaimer.+2. Redistributions in binary form must reproduce the above copyright+   notice, this list of conditions and the following disclaimer in the+   documentation and/or other materials provided with the distribution.+3. The name of Mark Tarver may not be used to endorse or promote products+   derived from this software without specific prior written permission.++THIS SOFTWARE IS PROVIDED BY Mark Tarver ''AS IS'' AND ANY+EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED+WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE+DISCLAIMED. IN NO EVENT SHALL Mark Tarver BE LIABLE FOR ANY+DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES+(INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;+LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND+ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT+(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS+SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.+-}++functions = do insertFunction "shen.shen" (PL "shen.shen" kl_shen_shen)+               insertFunction "exit" (wrapNamed "exit" kl_exit)+               insertFunction "shen.loop" (PL "shen.loop" kl_shen_loop)+               insertFunction "shen.credits" (PL "shen.credits" kl_shen_credits)+               insertFunction "shen.initialise_environment" (PL "shen.initialise_environment" kl_shen_initialise_environment)+               insertFunction "shen.multiple-set" (wrapNamed "shen.multiple-set" kl_shen_multiple_set)+               insertFunction "destroy" (wrapNamed "destroy" kl_destroy)+               insertFunction "shen.read-evaluate-print" (PL "shen.read-evaluate-print" kl_shen_read_evaluate_print)+               insertFunction "shen.retrieve-from-history-if-needed" (wrapNamed "shen.retrieve-from-history-if-needed" kl_shen_retrieve_from_history_if_needed)+               insertFunction "shen.percent" (PL "shen.percent" kl_shen_percent)+               insertFunction "shen.exclamation" (PL "shen.exclamation" kl_shen_exclamation)+               insertFunction "shen.prbytes" (wrapNamed "shen.prbytes" kl_shen_prbytes)+               insertFunction "shen.update_history" (wrapNamed "shen.update_history" kl_shen_update_history)+               insertFunction "shen.toplineread" (PL "shen.toplineread" kl_shen_toplineread)+               insertFunction "shen.toplineread_loop" (wrapNamed "shen.toplineread_loop" kl_shen_toplineread_loop)+               insertFunction "shen.hat" (PL "shen.hat" kl_shen_hat)+               insertFunction "shen.newline" (PL "shen.newline" kl_shen_newline)+               insertFunction "shen.carriage-return" (PL "shen.carriage-return" kl_shen_carriage_return)+               insertFunction "tc" (wrapNamed "tc" kl_tc)+               insertFunction "shen.prompt" (PL "shen.prompt" kl_shen_prompt)+               insertFunction "shen.toplevel" (wrapNamed "shen.toplevel" kl_shen_toplevel)+               insertFunction "shen.find-past-inputs" (wrapNamed "shen.find-past-inputs" kl_shen_find_past_inputs)+               insertFunction "shen.make-key" (wrapNamed "shen.make-key" kl_shen_make_key)+               insertFunction "shen.trim-gubbins" (wrapNamed "shen.trim-gubbins" kl_shen_trim_gubbins)+               insertFunction "shen.space" (PL "shen.space" kl_shen_space)+               insertFunction "shen.tab" (PL "shen.tab" kl_shen_tab)+               insertFunction "shen.left-round" (PL "shen.left-round" kl_shen_left_round)+               insertFunction "shen.find" (wrapNamed "shen.find" kl_shen_find)+               insertFunction "shen.prefix?" (wrapNamed "shen.prefix?" kl_shen_prefixP)+               insertFunction "shen.print-past-inputs" (wrapNamed "shen.print-past-inputs" kl_shen_print_past_inputs)+               insertFunction "shen.toplevel_evaluate" (wrapNamed "shen.toplevel_evaluate" kl_shen_toplevel_evaluate)+               insertFunction "shen.typecheck-and-evaluate" (wrapNamed "shen.typecheck-and-evaluate" kl_shen_typecheck_and_evaluate)+               insertFunction "shen.pretty-type" (wrapNamed "shen.pretty-type" kl_shen_pretty_type)+               insertFunction "shen.extract-pvars" (wrapNamed "shen.extract-pvars" kl_shen_extract_pvars)+               insertFunction "shen.mult_subst" (wrapNamed "shen.mult_subst" kl_shen_mult_subst)+               insertFunction "shen->kl" (wrapNamed "shen->kl" kl_shen_RBkl)+               insertFunction "shen-syntax-error" (wrapNamed "shen-syntax-error" kl_shen_syntax_error)+               insertFunction "shen.<define>" (wrapNamed "shen.<define>" kl_shen_LBdefineRB)+               insertFunction "shen.<name>" (wrapNamed "shen.<name>" kl_shen_LBnameRB)+               insertFunction "shen.sysfunc?" (wrapNamed "shen.sysfunc?" kl_shen_sysfuncP)+               insertFunction "shen.<signature>" (wrapNamed "shen.<signature>" kl_shen_LBsignatureRB)+               insertFunction "shen.curry-type" (wrapNamed "shen.curry-type" kl_shen_curry_type)+               insertFunction "shen.<signature-help>" (wrapNamed "shen.<signature-help>" kl_shen_LBsignature_helpRB)+               insertFunction "shen.<rules>" (wrapNamed "shen.<rules>" kl_shen_LBrulesRB)+               insertFunction "shen.<rule>" (wrapNamed "shen.<rule>" kl_shen_LBruleRB)+               insertFunction "shen.fail_if" (wrapNamed "shen.fail_if" kl_shen_fail_if)+               insertFunction "shen.succeeds?" (wrapNamed "shen.succeeds?" kl_shen_succeedsP)+               insertFunction "shen.<patterns>" (wrapNamed "shen.<patterns>" kl_shen_LBpatternsRB)+               insertFunction "shen.<pattern>" (wrapNamed "shen.<pattern>" kl_shen_LBpatternRB)+               insertFunction "shen.constructor-error" (wrapNamed "shen.constructor-error" kl_shen_constructor_error)+               insertFunction "shen.<simple_pattern>" (wrapNamed "shen.<simple_pattern>" kl_shen_LBsimple_patternRB)+               insertFunction "shen.<pattern1>" (wrapNamed "shen.<pattern1>" kl_shen_LBpattern1RB)+               insertFunction "shen.<pattern2>" (wrapNamed "shen.<pattern2>" kl_shen_LBpattern2RB)+               insertFunction "shen.<action>" (wrapNamed "shen.<action>" kl_shen_LBactionRB)+               insertFunction "shen.<guard>" (wrapNamed "shen.<guard>" kl_shen_LBguardRB)+               insertFunction "shen.compile_to_machine_code" (wrapNamed "shen.compile_to_machine_code" kl_shen_compile_to_machine_code)+               insertFunction "shen.record-source" (wrapNamed "shen.record-source" kl_shen_record_source)+               insertFunction "shen.compile_to_lambda+" (wrapNamed "shen.compile_to_lambda+" kl_shen_compile_to_lambdaPlus)+               insertFunction "shen.update-symbol-table" (wrapNamed "shen.update-symbol-table" kl_shen_update_symbol_table)+               insertFunction "shen.free_variable_check" (wrapNamed "shen.free_variable_check" kl_shen_free_variable_check)+               insertFunction "shen.extract_vars" (wrapNamed "shen.extract_vars" kl_shen_extract_vars)+               insertFunction "shen.extract_free_vars" (wrapNamed "shen.extract_free_vars" kl_shen_extract_free_vars)+               insertFunction "shen.free_variable_warnings" (wrapNamed "shen.free_variable_warnings" kl_shen_free_variable_warnings)+               insertFunction "shen.list_variables" (wrapNamed "shen.list_variables" kl_shen_list_variables)+               insertFunction "shen.strip-protect" (wrapNamed "shen.strip-protect" kl_shen_strip_protect)+               insertFunction "shen.linearise" (wrapNamed "shen.linearise" kl_shen_linearise)+               insertFunction "shen.flatten" (wrapNamed "shen.flatten" kl_shen_flatten)+               insertFunction "shen.linearise_help" (wrapNamed "shen.linearise_help" kl_shen_linearise_help)+               insertFunction "shen.linearise_X" (wrapNamed "shen.linearise_X" kl_shen_linearise_X)+               insertFunction "shen.aritycheck" (wrapNamed "shen.aritycheck" kl_shen_aritycheck)+               insertFunction "shen.aritycheck-name" (wrapNamed "shen.aritycheck-name" kl_shen_aritycheck_name)+               insertFunction "shen.aritycheck-action" (wrapNamed "shen.aritycheck-action" kl_shen_aritycheck_action)+               insertFunction "shen.aah" (wrapNamed "shen.aah" kl_shen_aah)+               insertFunction "shen.abstract_rule" (wrapNamed "shen.abstract_rule" kl_shen_abstract_rule)+               insertFunction "shen.abstraction_build" (wrapNamed "shen.abstraction_build" kl_shen_abstraction_build)+               insertFunction "shen.parameters" (wrapNamed "shen.parameters" kl_shen_parameters)+               insertFunction "shen.application_build" (wrapNamed "shen.application_build" kl_shen_application_build)+               insertFunction "shen.compile_to_kl" (wrapNamed "shen.compile_to_kl" kl_shen_compile_to_kl)+               insertFunction "shen.get-type" (wrapNamed "shen.get-type" kl_shen_get_type)+               insertFunction "shen.typextable" (wrapNamed "shen.typextable" kl_shen_typextable)+               insertFunction "shen.assign-types" (wrapNamed "shen.assign-types" kl_shen_assign_types)+               insertFunction "shen.atom-type" (wrapNamed "shen.atom-type" kl_shen_atom_type)+               insertFunction "shen.store-arity" (wrapNamed "shen.store-arity" kl_shen_store_arity)+               insertFunction "shen.reduce" (wrapNamed "shen.reduce" kl_shen_reduce)+               insertFunction "shen.reduce_help" (wrapNamed "shen.reduce_help" kl_shen_reduce_help)+               insertFunction "shen.+string?" (wrapNamed "shen.+string?" kl_shen_PlusstringP)+               insertFunction "shen.+vector?" (wrapNamed "shen.+vector?" kl_shen_PlusvectorP)+               insertFunction "shen.ebr" (wrapNamed "shen.ebr" kl_shen_ebr)+               insertFunction "shen.add_test" (wrapNamed "shen.add_test" kl_shen_add_test)+               insertFunction "shen.cond-expression" (wrapNamed "shen.cond-expression" kl_shen_cond_expression)+               insertFunction "shen.cond-form" (wrapNamed "shen.cond-form" kl_shen_cond_form)+               insertFunction "shen.encode-choices" (wrapNamed "shen.encode-choices" kl_shen_encode_choices)+               insertFunction "shen.case-form" (wrapNamed "shen.case-form" kl_shen_case_form)+               insertFunction "shen.embed-and" (wrapNamed "shen.embed-and" kl_shen_embed_and)+               insertFunction "shen.err-condition" (wrapNamed "shen.err-condition" kl_shen_err_condition)+               insertFunction "shen.sys-error" (wrapNamed "shen.sys-error" kl_shen_sys_error)+               insertFunction "thaw" (wrapNamed "thaw" kl_thaw)+               insertFunction "eval" (wrapNamed "eval" kl_eval)+               insertFunction "shen.eval-without-macros" (wrapNamed "shen.eval-without-macros" kl_shen_eval_without_macros)+               insertFunction "shen.proc-input+" (wrapNamed "shen.proc-input+" kl_shen_proc_inputPlus)+               insertFunction "shen.elim-def" (wrapNamed "shen.elim-def" kl_shen_elim_def)+               insertFunction "shen.add-macro" (wrapNamed "shen.add-macro" kl_shen_add_macro)+               insertFunction "shen.packaged?" (wrapNamed "shen.packaged?" kl_shen_packagedP)+               insertFunction "external" (wrapNamed "external" kl_external)+               insertFunction "internal" (wrapNamed "internal" kl_internal)+               insertFunction "shen.package-contents" (wrapNamed "shen.package-contents" kl_shen_package_contents)+               insertFunction "shen.walk" (wrapNamed "shen.walk" kl_shen_walk)+               insertFunction "compile" (wrapNamed "compile" kl_compile)+               insertFunction "fail-if" (wrapNamed "fail-if" kl_fail_if)+               insertFunction "@s" (wrapNamed "@s" kl_Ats)+               insertFunction "tc?" (PL "tc?" kl_tcP)+               insertFunction "ps" (wrapNamed "ps" kl_ps)+               insertFunction "stinput" (PL "stinput" kl_stinput)+               insertFunction "<-address/or" (wrapNamed "<-address/or" kl_LB_addressDivor)+               insertFunction "value/or" (wrapNamed "value/or" kl_valueDivor)+               insertFunction "vector" (wrapNamed "vector" kl_vector)+               insertFunction "shen.fillvector" (wrapNamed "shen.fillvector" kl_shen_fillvector)+               insertFunction "vector?" (wrapNamed "vector?" kl_vectorP)+               insertFunction "vector->" (wrapNamed "vector->" kl_vector_RB)+               insertFunction "<-vector" (wrapNamed "<-vector" kl_LB_vector)+               insertFunction "<-vector/or" (wrapNamed "<-vector/or" kl_LB_vectorDivor)+               insertFunction "shen.posint?" (wrapNamed "shen.posint?" kl_shen_posintP)+               insertFunction "limit" (wrapNamed "limit" kl_limit)+               insertFunction "symbol?" (wrapNamed "symbol?" kl_symbolP)+               insertFunction "shen.analyse-symbol?" (wrapNamed "shen.analyse-symbol?" kl_shen_analyse_symbolP)+               insertFunction "shen.alpha?" (wrapNamed "shen.alpha?" kl_shen_alphaP)+               insertFunction "shen.alphanums?" (wrapNamed "shen.alphanums?" kl_shen_alphanumsP)+               insertFunction "shen.alphanum?" (wrapNamed "shen.alphanum?" kl_shen_alphanumP)+               insertFunction "shen.digit?" (wrapNamed "shen.digit?" kl_shen_digitP)+               insertFunction "variable?" (wrapNamed "variable?" kl_variableP)+               insertFunction "shen.analyse-variable?" (wrapNamed "shen.analyse-variable?" kl_shen_analyse_variableP)+               insertFunction "shen.uppercase?" (wrapNamed "shen.uppercase?" kl_shen_uppercaseP)+               insertFunction "gensym" (wrapNamed "gensym" kl_gensym)+               insertFunction "concat" (wrapNamed "concat" kl_concat)+               insertFunction "@p" (wrapNamed "@p" kl_Atp)+               insertFunction "fst" (wrapNamed "fst" kl_fst)+               insertFunction "snd" (wrapNamed "snd" kl_snd)+               insertFunction "tuple?" (wrapNamed "tuple?" kl_tupleP)+               insertFunction "append" (wrapNamed "append" kl_append)+               insertFunction "@v" (wrapNamed "@v" kl_Atv)+               insertFunction "shen.@v-help" (wrapNamed "shen.@v-help" kl_shen_Atv_help)+               insertFunction "shen.copyfromvector" (wrapNamed "shen.copyfromvector" kl_shen_copyfromvector)+               insertFunction "hdv" (wrapNamed "hdv" kl_hdv)+               insertFunction "tlv" (wrapNamed "tlv" kl_tlv)+               insertFunction "shen.tlv-help" (wrapNamed "shen.tlv-help" kl_shen_tlv_help)+               insertFunction "assoc" (wrapNamed "assoc" kl_assoc)+               insertFunction "boolean?" (wrapNamed "boolean?" kl_booleanP)+               insertFunction "nl" (wrapNamed "nl" kl_nl)+               insertFunction "difference" (wrapNamed "difference" kl_difference)+               insertFunction "do" (wrapNamed "do" kl_do)+               insertFunction "element?" (wrapNamed "element?" kl_elementP)+               insertFunction "empty?" (wrapNamed "empty?" kl_emptyP)+               insertFunction "fix" (wrapNamed "fix" kl_fix)+               insertFunction "shen.fix-help" (wrapNamed "shen.fix-help" kl_shen_fix_help)+               insertFunction "dict" (wrapNamed "dict" kl_dict)+               insertFunction "dict?" (wrapNamed "dict?" kl_dictP)+               insertFunction "shen.dict-capacity" (wrapNamed "shen.dict-capacity" kl_shen_dict_capacity)+               insertFunction "dict-count" (wrapNamed "dict-count" kl_dict_count)+               insertFunction "shen.dict-count->" (wrapNamed "shen.dict-count->" kl_shen_dict_count_RB)+               insertFunction "shen.<-dict-bucket" (wrapNamed "shen.<-dict-bucket" kl_shen_LB_dict_bucket)+               insertFunction "shen.dict-bucket->" (wrapNamed "shen.dict-bucket->" kl_shen_dict_bucket_RB)+               insertFunction "shen.set-key-entry-value" (wrapNamed "shen.set-key-entry-value" kl_shen_set_key_entry_value)+               insertFunction "shen.remove-key-entry-value" (wrapNamed "shen.remove-key-entry-value" kl_shen_remove_key_entry_value)+               insertFunction "shen.dict-update-count" (wrapNamed "shen.dict-update-count" kl_shen_dict_update_count)+               insertFunction "dict->" (wrapNamed "dict->" kl_dict_RB)+               insertFunction "<-dict/or" (wrapNamed "<-dict/or" kl_LB_dictDivor)+               insertFunction "<-dict" (wrapNamed "<-dict" kl_LB_dict)+               insertFunction "dict-rm" (wrapNamed "dict-rm" kl_dict_rm)+               insertFunction "dict-fold" (wrapNamed "dict-fold" kl_dict_fold)+               insertFunction "shen.dict-fold-h" (wrapNamed "shen.dict-fold-h" kl_shen_dict_fold_h)+               insertFunction "shen.bucket-fold" (wrapNamed "shen.bucket-fold" kl_shen_bucket_fold)+               insertFunction "dict-keys" (wrapNamed "dict-keys" kl_dict_keys)+               insertFunction "dict-values" (wrapNamed "dict-values" kl_dict_values)+               insertFunction "put" (wrapNamed "put" kl_put)+               insertFunction "unput" (wrapNamed "unput" kl_unput)+               insertFunction "get/or" (wrapNamed "get/or" kl_getDivor)+               insertFunction "get" (wrapNamed "get" kl_get)+               insertFunction "hash" (wrapNamed "hash" kl_hash)+               insertFunction "shen.mod" (wrapNamed "shen.mod" kl_shen_mod)+               insertFunction "shen.multiples" (wrapNamed "shen.multiples" kl_shen_multiples)+               insertFunction "shen.modh" (wrapNamed "shen.modh" kl_shen_modh)+               insertFunction "sum" (wrapNamed "sum" kl_sum)+               insertFunction "head" (wrapNamed "head" kl_head)+               insertFunction "tail" (wrapNamed "tail" kl_tail)+               insertFunction "hdstr" (wrapNamed "hdstr" kl_hdstr)+               insertFunction "intersection" (wrapNamed "intersection" kl_intersection)+               insertFunction "reverse" (wrapNamed "reverse" kl_reverse)+               insertFunction "shen.reverse_help" (wrapNamed "shen.reverse_help" kl_shen_reverse_help)+               insertFunction "union" (wrapNamed "union" kl_union)+               insertFunction "y-or-n?" (wrapNamed "y-or-n?" kl_y_or_nP)+               insertFunction "not" (wrapNamed "not" kl_not)+               insertFunction "subst" (wrapNamed "subst" kl_subst)+               insertFunction "explode" (wrapNamed "explode" kl_explode)+               insertFunction "shen.explode-h" (wrapNamed "shen.explode-h" kl_shen_explode_h)+               insertFunction "cd" (wrapNamed "cd" kl_cd)+               insertFunction "for-each" (wrapNamed "for-each" kl_for_each)+               insertFunction "fold-right" (wrapNamed "fold-right" kl_fold_right)+               insertFunction "fold-left" (wrapNamed "fold-left" kl_fold_left)+               insertFunction "filter" (wrapNamed "filter" kl_filter)+               insertFunction "shen.filter-h" (wrapNamed "shen.filter-h" kl_shen_filter_h)+               insertFunction "map" (wrapNamed "map" kl_map)+               insertFunction "shen.map-h" (wrapNamed "shen.map-h" kl_shen_map_h)+               insertFunction "length" (wrapNamed "length" kl_length)+               insertFunction "shen.length-h" (wrapNamed "shen.length-h" kl_shen_length_h)+               insertFunction "occurrences" (wrapNamed "occurrences" kl_occurrences)+               insertFunction "nth" (wrapNamed "nth" kl_nth)+               insertFunction "integer?" (wrapNamed "integer?" kl_integerP)+               insertFunction "shen.abs" (wrapNamed "shen.abs" kl_shen_abs)+               insertFunction "shen.magless" (wrapNamed "shen.magless" kl_shen_magless)+               insertFunction "shen.integer-test?" (wrapNamed "shen.integer-test?" kl_shen_integer_testP)+               insertFunction "mapcan" (wrapNamed "mapcan" kl_mapcan)+               insertFunction "==" (wrapNamed "==" kl_EqEq)+               insertFunction "abort" (PL "abort" kl_abort)+               insertFunction "bound?" (wrapNamed "bound?" kl_boundP)+               insertFunction "shen.string->bytes" (wrapNamed "shen.string->bytes" kl_shen_string_RBbytes)+               insertFunction "maxinferences" (wrapNamed "maxinferences" kl_maxinferences)+               insertFunction "inferences" (PL "inferences" kl_inferences)+               insertFunction "protect" (wrapNamed "protect" kl_protect)+               insertFunction "stoutput" (PL "stoutput" kl_stoutput)+               insertFunction "sterror" (PL "sterror" kl_sterror)+               insertFunction "string->symbol" (wrapNamed "string->symbol" kl_string_RBsymbol)+               insertFunction "optimise" (wrapNamed "optimise" kl_optimise)+               insertFunction "os" (PL "os" kl_os)+               insertFunction "language" (PL "language" kl_language)+               insertFunction "version" (PL "version" kl_version)+               insertFunction "port" (PL "port" kl_port)+               insertFunction "porters" (PL "porters" kl_porters)+               insertFunction "implementation" (PL "implementation" kl_implementation)+               insertFunction "release" (PL "release" kl_release)+               insertFunction "package?" (wrapNamed "package?" kl_packageP)+               insertFunction "function" (wrapNamed "function" kl_function)+               insertFunction "shen.lookup-func" (wrapNamed "shen.lookup-func" kl_shen_lookup_func)+               insertFunction "shen.datatype-error" (wrapNamed "shen.datatype-error" kl_shen_datatype_error)+               insertFunction "shen.<datatype-rules>" (wrapNamed "shen.<datatype-rules>" kl_shen_LBdatatype_rulesRB)+               insertFunction "shen.<datatype-rule>" (wrapNamed "shen.<datatype-rule>" kl_shen_LBdatatype_ruleRB)+               insertFunction "shen.<side-conditions>" (wrapNamed "shen.<side-conditions>" kl_shen_LBside_conditionsRB)+               insertFunction "shen.<side-condition>" (wrapNamed "shen.<side-condition>" kl_shen_LBside_conditionRB)+               insertFunction "shen.<variable?>" (wrapNamed "shen.<variable?>" kl_shen_LBvariablePRB)+               insertFunction "shen.<expr>" (wrapNamed "shen.<expr>" kl_shen_LBexprRB)+               insertFunction "shen.remove-bar" (wrapNamed "shen.remove-bar" kl_shen_remove_bar)+               insertFunction "shen.<premises>" (wrapNamed "shen.<premises>" kl_shen_LBpremisesRB)+               insertFunction "shen.<semicolon-symbol>" (wrapNamed "shen.<semicolon-symbol>" kl_shen_LBsemicolon_symbolRB)+               insertFunction "shen.<premise>" (wrapNamed "shen.<premise>" kl_shen_LBpremiseRB)+               insertFunction "shen.<conclusion>" (wrapNamed "shen.<conclusion>" kl_shen_LBconclusionRB)+               insertFunction "shen.sequent" (wrapNamed "shen.sequent" kl_shen_sequent)+               insertFunction "shen.<formulae>" (wrapNamed "shen.<formulae>" kl_shen_LBformulaeRB)+               insertFunction "shen.<comma-symbol>" (wrapNamed "shen.<comma-symbol>" kl_shen_LBcomma_symbolRB)+               insertFunction "shen.<formula>" (wrapNamed "shen.<formula>" kl_shen_LBformulaRB)+               insertFunction "shen.<type>" (wrapNamed "shen.<type>" kl_shen_LBtypeRB)+               insertFunction "shen.<doubleunderline>" (wrapNamed "shen.<doubleunderline>" kl_shen_LBdoubleunderlineRB)+               insertFunction "shen.<singleunderline>" (wrapNamed "shen.<singleunderline>" kl_shen_LBsingleunderlineRB)+               insertFunction "shen.singleunderline?" (wrapNamed "shen.singleunderline?" kl_shen_singleunderlineP)+               insertFunction "shen.sh?" (wrapNamed "shen.sh?" kl_shen_shP)+               insertFunction "shen.doubleunderline?" (wrapNamed "shen.doubleunderline?" kl_shen_doubleunderlineP)+               insertFunction "shen.dh?" (wrapNamed "shen.dh?" kl_shen_dhP)+               insertFunction "shen.process-datatype" (wrapNamed "shen.process-datatype" kl_shen_process_datatype)+               insertFunction "shen.remember-datatype" (wrapNamed "shen.remember-datatype" kl_shen_remember_datatype)+               insertFunction "shen.rules->horn-clauses" (wrapNamed "shen.rules->horn-clauses" kl_shen_rules_RBhorn_clauses)+               insertFunction "shen.double->singles" (wrapNamed "shen.double->singles" kl_shen_double_RBsingles)+               insertFunction "shen.right-rule" (wrapNamed "shen.right-rule" kl_shen_right_rule)+               insertFunction "shen.left-rule" (wrapNamed "shen.left-rule" kl_shen_left_rule)+               insertFunction "shen.right->left" (wrapNamed "shen.right->left" kl_shen_right_RBleft)+               insertFunction "shen.rule->horn-clause" (wrapNamed "shen.rule->horn-clause" kl_shen_rule_RBhorn_clause)+               insertFunction "shen.rule->horn-clause-head" (wrapNamed "shen.rule->horn-clause-head" kl_shen_rule_RBhorn_clause_head)+               insertFunction "shen.mode-ify" (wrapNamed "shen.mode-ify" kl_shen_mode_ify)+               insertFunction "shen.rule->horn-clause-body" (wrapNamed "shen.rule->horn-clause-body" kl_shen_rule_RBhorn_clause_body)+               insertFunction "shen.construct-search-literals" (wrapNamed "shen.construct-search-literals" kl_shen_construct_search_literals)+               insertFunction "shen.csl-help" (wrapNamed "shen.csl-help" kl_shen_csl_help)+               insertFunction "shen.construct-search-clauses" (wrapNamed "shen.construct-search-clauses" kl_shen_construct_search_clauses)+               insertFunction "shen.construct-search-clause" (wrapNamed "shen.construct-search-clause" kl_shen_construct_search_clause)+               insertFunction "shen.construct-base-search-clause" (wrapNamed "shen.construct-base-search-clause" kl_shen_construct_base_search_clause)+               insertFunction "shen.construct-recursive-search-clause" (wrapNamed "shen.construct-recursive-search-clause" kl_shen_construct_recursive_search_clause)+               insertFunction "shen.construct-side-literals" (wrapNamed "shen.construct-side-literals" kl_shen_construct_side_literals)+               insertFunction "shen.construct-premiss-literal" (wrapNamed "shen.construct-premiss-literal" kl_shen_construct_premiss_literal)+               insertFunction "shen.construct-context" (wrapNamed "shen.construct-context" kl_shen_construct_context)+               insertFunction "shen.recursive_cons_form" (wrapNamed "shen.recursive_cons_form" kl_shen_recursive_cons_form)+               insertFunction "preclude" (wrapNamed "preclude" kl_preclude)+               insertFunction "shen.preclude-h" (wrapNamed "shen.preclude-h" kl_shen_preclude_h)+               insertFunction "include" (wrapNamed "include" kl_include)+               insertFunction "shen.include-h" (wrapNamed "shen.include-h" kl_shen_include_h)+               insertFunction "preclude-all-but" (wrapNamed "preclude-all-but" kl_preclude_all_but)+               insertFunction "include-all-but" (wrapNamed "include-all-but" kl_include_all_but)+               insertFunction "shen.synonyms-help" (wrapNamed "shen.synonyms-help" kl_shen_synonyms_help)+               insertFunction "shen.pushnew" (wrapNamed "shen.pushnew" kl_shen_pushnew)+               insertFunction "shen.demod-rule" (wrapNamed "shen.demod-rule" kl_shen_demod_rule)+               insertFunction "shen.lambda-of-defun" (wrapNamed "shen.lambda-of-defun" kl_shen_lambda_of_defun)+               insertFunction "shen.update-demodulation-function" (wrapNamed "shen.update-demodulation-function" kl_shen_update_demodulation_function)+               insertFunction "shen.default-rule" (PL "shen.default-rule" kl_shen_default_rule)+               insertFunction "shen.yacc" (wrapNamed "shen.yacc" kl_shen_yacc)+               insertFunction "shen.yacc->shen" (wrapNamed "shen.yacc->shen" kl_shen_yacc_RBshen)+               insertFunction "shen.kill-code" (wrapNamed "shen.kill-code" kl_shen_kill_code)+               insertFunction "kill" (PL "kill" kl_kill)+               insertFunction "shen.analyse-kill" (wrapNamed "shen.analyse-kill" kl_shen_analyse_kill)+               insertFunction "shen.split_cc_rules" (wrapNamed "shen.split_cc_rules" kl_shen_split_cc_rules)+               insertFunction "shen.split_cc_rule" (wrapNamed "shen.split_cc_rule" kl_shen_split_cc_rule)+               insertFunction "shen.semantic-completion-warning" (wrapNamed "shen.semantic-completion-warning" kl_shen_semantic_completion_warning)+               insertFunction "shen.default_semantics" (wrapNamed "shen.default_semantics" kl_shen_default_semantics)+               insertFunction "shen.grammar_symbol?" (wrapNamed "shen.grammar_symbol?" kl_shen_grammar_symbolP)+               insertFunction "shen.yacc_cases" (wrapNamed "shen.yacc_cases" kl_shen_yacc_cases)+               insertFunction "shen.cc_body" (wrapNamed "shen.cc_body" kl_shen_cc_body)+               insertFunction "shen.syntax" (wrapNamed "shen.syntax" kl_shen_syntax)+               insertFunction "shen.list-stream" (wrapNamed "shen.list-stream" kl_shen_list_stream)+               insertFunction "shen.decons" (wrapNamed "shen.decons" kl_shen_decons)+               insertFunction "shen.insert-runon" (wrapNamed "shen.insert-runon" kl_shen_insert_runon)+               insertFunction "shen.strip-pathname" (wrapNamed "shen.strip-pathname" kl_shen_strip_pathname)+               insertFunction "shen.recursive_descent" (wrapNamed "shen.recursive_descent" kl_shen_recursive_descent)+               insertFunction "shen.variable-match" (wrapNamed "shen.variable-match" kl_shen_variable_match)+               insertFunction "shen.terminal?" (wrapNamed "shen.terminal?" kl_shen_terminalP)+               insertFunction "shen.jump_stream?" (wrapNamed "shen.jump_stream?" kl_shen_jump_streamP)+               insertFunction "shen.check_stream" (wrapNamed "shen.check_stream" kl_shen_check_stream)+               insertFunction "shen.jump_stream" (wrapNamed "shen.jump_stream" kl_shen_jump_stream)+               insertFunction "shen.semantics" (wrapNamed "shen.semantics" kl_shen_semantics)+               insertFunction "shen.snd-or-fail" (wrapNamed "shen.snd-or-fail" kl_shen_snd_or_fail)+               insertFunction "fail" (PL "fail" kl_fail)+               insertFunction "shen.pair" (wrapNamed "shen.pair" kl_shen_pair)+               insertFunction "shen.hdtl" (wrapNamed "shen.hdtl" kl_shen_hdtl)+               insertFunction "<!>" (wrapNamed "<!>" kl_LBExclRB)+               insertFunction "<e>" (wrapNamed "<e>" kl_LBeRB)+               insertFunction "read-char-code" (wrapNamed "read-char-code" kl_read_char_code)+               insertFunction "read-file-as-bytelist" (wrapNamed "read-file-as-bytelist" kl_read_file_as_bytelist)+               insertFunction "read-file-as-charlist" (wrapNamed "read-file-as-charlist" kl_read_file_as_charlist)+               insertFunction "shen.read-file-as-Xlist" (wrapNamed "shen.read-file-as-Xlist" kl_shen_read_file_as_Xlist)+               insertFunction "shen.read-file-as-Xlist-help" (wrapNamed "shen.read-file-as-Xlist-help" kl_shen_read_file_as_Xlist_help)+               insertFunction "read-file-as-string" (wrapNamed "read-file-as-string" kl_read_file_as_string)+               insertFunction "shen.rfas-h" (wrapNamed "shen.rfas-h" kl_shen_rfas_h)+               insertFunction "input" (wrapNamed "input" kl_input)+               insertFunction "input+" (wrapNamed "input+" kl_inputPlus)+               insertFunction "shen.monotype" (wrapNamed "shen.monotype" kl_shen_monotype)+               insertFunction "read" (wrapNamed "read" kl_read)+               insertFunction "it" (PL "it" kl_it)+               insertFunction "shen.read-loop" (wrapNamed "shen.read-loop" kl_shen_read_loop)+               insertFunction "shen.terminator?" (wrapNamed "shen.terminator?" kl_shen_terminatorP)+               insertFunction "lineread" (wrapNamed "lineread" kl_lineread)+               insertFunction "shen.lineread-loop" (wrapNamed "shen.lineread-loop" kl_shen_lineread_loop)+               insertFunction "shen.record-it" (wrapNamed "shen.record-it" kl_shen_record_it)+               insertFunction "shen.trim-whitespace" (wrapNamed "shen.trim-whitespace" kl_shen_trim_whitespace)+               insertFunction "shen.record-it-h" (wrapNamed "shen.record-it-h" kl_shen_record_it_h)+               insertFunction "shen.cn-all" (wrapNamed "shen.cn-all" kl_shen_cn_all)+               insertFunction "read-file" (wrapNamed "read-file" kl_read_file)+               insertFunction "read-from-string" (wrapNamed "read-from-string" kl_read_from_string)+               insertFunction "shen.read-error" (wrapNamed "shen.read-error" kl_shen_read_error)+               insertFunction "shen.compress-50" (wrapNamed "shen.compress-50" kl_shen_compress_50)+               insertFunction "shen.<st_input>" (wrapNamed "shen.<st_input>" kl_shen_LBst_inputRB)+               insertFunction "shen.<lsb>" (wrapNamed "shen.<lsb>" kl_shen_LBlsbRB)+               insertFunction "shen.<rsb>" (wrapNamed "shen.<rsb>" kl_shen_LBrsbRB)+               insertFunction "shen.<lcurly>" (wrapNamed "shen.<lcurly>" kl_shen_LBlcurlyRB)+               insertFunction "shen.<rcurly>" (wrapNamed "shen.<rcurly>" kl_shen_LBrcurlyRB)+               insertFunction "shen.<bar>" (wrapNamed "shen.<bar>" kl_shen_LBbarRB)+               insertFunction "shen.<semicolon>" (wrapNamed "shen.<semicolon>" kl_shen_LBsemicolonRB)+               insertFunction "shen.<colon>" (wrapNamed "shen.<colon>" kl_shen_LBcolonRB)+               insertFunction "shen.<comma>" (wrapNamed "shen.<comma>" kl_shen_LBcommaRB)+               insertFunction "shen.<equal>" (wrapNamed "shen.<equal>" kl_shen_LBequalRB)+               insertFunction "shen.<minus>" (wrapNamed "shen.<minus>" kl_shen_LBminusRB)+               insertFunction "shen.<lrb>" (wrapNamed "shen.<lrb>" kl_shen_LBlrbRB)+               insertFunction "shen.<rrb>" (wrapNamed "shen.<rrb>" kl_shen_LBrrbRB)+               insertFunction "shen.<atom>" (wrapNamed "shen.<atom>" kl_shen_LBatomRB)+               insertFunction "shen.control-chars" (wrapNamed "shen.control-chars" kl_shen_control_chars)+               insertFunction "shen.code-point" (wrapNamed "shen.code-point" kl_shen_code_point)+               insertFunction "shen.after-codepoint" (wrapNamed "shen.after-codepoint" kl_shen_after_codepoint)+               insertFunction "shen.decimalise" (wrapNamed "shen.decimalise" kl_shen_decimalise)+               insertFunction "shen.digits->integers" (wrapNamed "shen.digits->integers" kl_shen_digits_RBintegers)+               insertFunction "shen.<sym>" (wrapNamed "shen.<sym>" kl_shen_LBsymRB)+               insertFunction "shen.<alphanums>" (wrapNamed "shen.<alphanums>" kl_shen_LBalphanumsRB)+               insertFunction "shen.<alphanum>" (wrapNamed "shen.<alphanum>" kl_shen_LBalphanumRB)+               insertFunction "shen.<num>" (wrapNamed "shen.<num>" kl_shen_LBnumRB)+               insertFunction "shen.numbyte?" (wrapNamed "shen.numbyte?" kl_shen_numbyteP)+               insertFunction "shen.<alpha>" (wrapNamed "shen.<alpha>" kl_shen_LBalphaRB)+               insertFunction "shen.symbol-code?" (wrapNamed "shen.symbol-code?" kl_shen_symbol_codeP)+               insertFunction "shen.<str>" (wrapNamed "shen.<str>" kl_shen_LBstrRB)+               insertFunction "shen.<dbq>" (wrapNamed "shen.<dbq>" kl_shen_LBdbqRB)+               insertFunction "shen.<strcontents>" (wrapNamed "shen.<strcontents>" kl_shen_LBstrcontentsRB)+               insertFunction "shen.<byte>" (wrapNamed "shen.<byte>" kl_shen_LBbyteRB)+               insertFunction "shen.<strc>" (wrapNamed "shen.<strc>" kl_shen_LBstrcRB)+               insertFunction "shen.<number>" (wrapNamed "shen.<number>" kl_shen_LBnumberRB)+               insertFunction "shen.<E>" (wrapNamed "shen.<E>" kl_shen_LBERB)+               insertFunction "shen.<log10>" (wrapNamed "shen.<log10>" kl_shen_LBlog10RB)+               insertFunction "shen.<plus>" (wrapNamed "shen.<plus>" kl_shen_LBplusRB)+               insertFunction "shen.<stop>" (wrapNamed "shen.<stop>" kl_shen_LBstopRB)+               insertFunction "shen.<predigits>" (wrapNamed "shen.<predigits>" kl_shen_LBpredigitsRB)+               insertFunction "shen.<postdigits>" (wrapNamed "shen.<postdigits>" kl_shen_LBpostdigitsRB)+               insertFunction "shen.<digits>" (wrapNamed "shen.<digits>" kl_shen_LBdigitsRB)+               insertFunction "shen.<digit>" (wrapNamed "shen.<digit>" kl_shen_LBdigitRB)+               insertFunction "shen.byte->digit" (wrapNamed "shen.byte->digit" kl_shen_byte_RBdigit)+               insertFunction "shen.pre" (wrapNamed "shen.pre" kl_shen_pre)+               insertFunction "shen.post" (wrapNamed "shen.post" kl_shen_post)+               insertFunction "shen.expt" (wrapNamed "shen.expt" kl_shen_expt)+               insertFunction "shen.<st_input1>" (wrapNamed "shen.<st_input1>" kl_shen_LBst_input1RB)+               insertFunction "shen.<st_input2>" (wrapNamed "shen.<st_input2>" kl_shen_LBst_input2RB)+               insertFunction "shen.<comment>" (wrapNamed "shen.<comment>" kl_shen_LBcommentRB)+               insertFunction "shen.<singleline>" (wrapNamed "shen.<singleline>" kl_shen_LBsinglelineRB)+               insertFunction "shen.<backslash>" (wrapNamed "shen.<backslash>" kl_shen_LBbackslashRB)+               insertFunction "shen.<anysingle>" (wrapNamed "shen.<anysingle>" kl_shen_LBanysingleRB)+               insertFunction "shen.<non-return>" (wrapNamed "shen.<non-return>" kl_shen_LBnon_returnRB)+               insertFunction "shen.<return>" (wrapNamed "shen.<return>" kl_shen_LBreturnRB)+               insertFunction "shen.<multiline>" (wrapNamed "shen.<multiline>" kl_shen_LBmultilineRB)+               insertFunction "shen.<times>" (wrapNamed "shen.<times>" kl_shen_LBtimesRB)+               insertFunction "shen.<anymulti>" (wrapNamed "shen.<anymulti>" kl_shen_LBanymultiRB)+               insertFunction "shen.<whitespaces>" (wrapNamed "shen.<whitespaces>" kl_shen_LBwhitespacesRB)+               insertFunction "shen.<whitespace>" (wrapNamed "shen.<whitespace>" kl_shen_LBwhitespaceRB)+               insertFunction "shen.cons_form" (wrapNamed "shen.cons_form" kl_shen_cons_form)+               insertFunction "shen.package-macro" (wrapNamed "shen.package-macro" kl_shen_package_macro)+               insertFunction "shen.record-exceptions" (wrapNamed "shen.record-exceptions" kl_shen_record_exceptions)+               insertFunction "shen.record-internal" (wrapNamed "shen.record-internal" kl_shen_record_internal)+               insertFunction "shen.internal-symbols" (wrapNamed "shen.internal-symbols" kl_shen_internal_symbols)+               insertFunction "shen.packageh" (wrapNamed "shen.packageh" kl_shen_packageh)+               insertFunction "shen.<defprolog>" (wrapNamed "shen.<defprolog>" kl_shen_LBdefprologRB)+               insertFunction "shen.prolog-error" (wrapNamed "shen.prolog-error" kl_shen_prolog_error)+               insertFunction "shen.next-50" (wrapNamed "shen.next-50" kl_shen_next_50)+               insertFunction "shen.decons-string" (wrapNamed "shen.decons-string" kl_shen_decons_string)+               insertFunction "shen.insert-predicate" (wrapNamed "shen.insert-predicate" kl_shen_insert_predicate)+               insertFunction "shen.<predicate*>" (wrapNamed "shen.<predicate*>" kl_shen_LBpredicateMultRB)+               insertFunction "shen.<clauses*>" (wrapNamed "shen.<clauses*>" kl_shen_LBclausesMultRB)+               insertFunction "shen.<clause*>" (wrapNamed "shen.<clause*>" kl_shen_LBclauseMultRB)+               insertFunction "shen.<head*>" (wrapNamed "shen.<head*>" kl_shen_LBheadMultRB)+               insertFunction "shen.<term*>" (wrapNamed "shen.<term*>" kl_shen_LBtermMultRB)+               insertFunction "shen.legitimate-term?" (wrapNamed "shen.legitimate-term?" kl_shen_legitimate_termP)+               insertFunction "shen.eval-cons" (wrapNamed "shen.eval-cons" kl_shen_eval_cons)+               insertFunction "shen.<body*>" (wrapNamed "shen.<body*>" kl_shen_LBbodyMultRB)+               insertFunction "shen.<literal*>" (wrapNamed "shen.<literal*>" kl_shen_LBliteralMultRB)+               insertFunction "shen.<end*>" (wrapNamed "shen.<end*>" kl_shen_LBendMultRB)+               insertFunction "cut" (wrapNamed "cut" kl_cut)+               insertFunction "shen.insert_modes" (wrapNamed "shen.insert_modes" kl_shen_insert_modes)+               insertFunction "shen.s-prolog" (wrapNamed "shen.s-prolog" kl_shen_s_prolog)+               insertFunction "shen.prolog->shen" (wrapNamed "shen.prolog->shen" kl_shen_prolog_RBshen)+               insertFunction "shen.s-prolog_clause" (wrapNamed "shen.s-prolog_clause" kl_shen_s_prolog_clause)+               insertFunction "shen.head_abstraction" (wrapNamed "shen.head_abstraction" kl_shen_head_abstraction)+               insertFunction "shen.complexity_head" (wrapNamed "shen.complexity_head" kl_shen_complexity_head)+               insertFunction "shen.complexity" (wrapNamed "shen.complexity" kl_shen_complexity)+               insertFunction "shen.product" (wrapNamed "shen.product" kl_shen_product)+               insertFunction "shen.s-prolog_literal" (wrapNamed "shen.s-prolog_literal" kl_shen_s_prolog_literal)+               insertFunction "shen.insert_deref" (wrapNamed "shen.insert_deref" kl_shen_insert_deref)+               insertFunction "shen.insert_lazyderef" (wrapNamed "shen.insert_lazyderef" kl_shen_insert_lazyderef)+               insertFunction "shen.group_clauses" (wrapNamed "shen.group_clauses" kl_shen_group_clauses)+               insertFunction "shen.collect" (wrapNamed "shen.collect" kl_shen_collect)+               insertFunction "shen.same_predicate?" (wrapNamed "shen.same_predicate?" kl_shen_same_predicateP)+               insertFunction "shen.compile_prolog_procedure" (wrapNamed "shen.compile_prolog_procedure" kl_shen_compile_prolog_procedure)+               insertFunction "shen.procedure_name" (wrapNamed "shen.procedure_name" kl_shen_procedure_name)+               insertFunction "shen.clauses-to-shen" (wrapNamed "shen.clauses-to-shen" kl_shen_clauses_to_shen)+               insertFunction "shen.catch-cut" (wrapNamed "shen.catch-cut" kl_shen_catch_cut)+               insertFunction "shen.catchpoint" (PL "shen.catchpoint" kl_shen_catchpoint)+               insertFunction "shen.cutpoint" (wrapNamed "shen.cutpoint" kl_shen_cutpoint)+               insertFunction "shen.nest-disjunct" (wrapNamed "shen.nest-disjunct" kl_shen_nest_disjunct)+               insertFunction "shen.lisp-or" (wrapNamed "shen.lisp-or" kl_shen_lisp_or)+               insertFunction "shen.prolog-aritycheck" (wrapNamed "shen.prolog-aritycheck" kl_shen_prolog_aritycheck)+               insertFunction "shen.linearise-clause" (wrapNamed "shen.linearise-clause" kl_shen_linearise_clause)+               insertFunction "shen.clause_form" (wrapNamed "shen.clause_form" kl_shen_clause_form)+               insertFunction "shen.explicit_modes" (wrapNamed "shen.explicit_modes" kl_shen_explicit_modes)+               insertFunction "shen.em_help" (wrapNamed "shen.em_help" kl_shen_em_help)+               insertFunction "shen.cf_help" (wrapNamed "shen.cf_help" kl_shen_cf_help)+               insertFunction "occurs-check" (wrapNamed "occurs-check" kl_occurs_check)+               insertFunction "shen.aum" (wrapNamed "shen.aum" kl_shen_aum)+               insertFunction "shen.continuation_call" (wrapNamed "shen.continuation_call" kl_shen_continuation_call)+               insertFunction "remove" (wrapNamed "remove" kl_remove)+               insertFunction "shen.remove-h" (wrapNamed "shen.remove-h" kl_shen_remove_h)+               insertFunction "shen.cc_help" (wrapNamed "shen.cc_help" kl_shen_cc_help)+               insertFunction "shen.make_mu_application" (wrapNamed "shen.make_mu_application" kl_shen_make_mu_application)+               insertFunction "shen.mu_reduction" (wrapNamed "shen.mu_reduction" kl_shen_mu_reduction)+               insertFunction "shen.rcons_form" (wrapNamed "shen.rcons_form" kl_shen_rcons_form)+               insertFunction "shen.remove_modes" (wrapNamed "shen.remove_modes" kl_shen_remove_modes)+               insertFunction "shen.ephemeral_variable?" (wrapNamed "shen.ephemeral_variable?" kl_shen_ephemeral_variableP)+               insertFunction "shen.prolog_constant?" (wrapNamed "shen.prolog_constant?" kl_shen_prolog_constantP)+               insertFunction "shen.aum_to_shen" (wrapNamed "shen.aum_to_shen" kl_shen_aum_to_shen)+               insertFunction "shen.chwild" (wrapNamed "shen.chwild" kl_shen_chwild)+               insertFunction "shen.newpv" (wrapNamed "shen.newpv" kl_shen_newpv)+               insertFunction "shen.resizeprocessvector" (wrapNamed "shen.resizeprocessvector" kl_shen_resizeprocessvector)+               insertFunction "shen.resize-vector" (wrapNamed "shen.resize-vector" kl_shen_resize_vector)+               insertFunction "shen.copy-vector" (wrapNamed "shen.copy-vector" kl_shen_copy_vector)+               insertFunction "shen.copy-vector-stage-1" (wrapNamed "shen.copy-vector-stage-1" kl_shen_copy_vector_stage_1)+               insertFunction "shen.copy-vector-stage-2" (wrapNamed "shen.copy-vector-stage-2" kl_shen_copy_vector_stage_2)+               insertFunction "shen.mk-pvar" (wrapNamed "shen.mk-pvar" kl_shen_mk_pvar)+               insertFunction "shen.pvar?" (wrapNamed "shen.pvar?" kl_shen_pvarP)+               insertFunction "shen.bindv" (wrapNamed "shen.bindv" kl_shen_bindv)+               insertFunction "shen.unbindv" (wrapNamed "shen.unbindv" kl_shen_unbindv)+               insertFunction "shen.incinfs" (PL "shen.incinfs" kl_shen_incinfs)+               insertFunction "shen.call_the_continuation" (wrapNamed "shen.call_the_continuation" kl_shen_call_the_continuation)+               insertFunction "shen.newcontinuation" (wrapNamed "shen.newcontinuation" kl_shen_newcontinuation)+               insertFunction "return" (wrapNamed "return" kl_return)+               insertFunction "shen.measure&return" (wrapNamed "shen.measure&return" kl_shen_measureAndreturn)+               insertFunction "unify" (wrapNamed "unify" kl_unify)+               insertFunction "shen.lzy=" (wrapNamed "shen.lzy=" kl_shen_lzyEq)+               insertFunction "shen.deref" (wrapNamed "shen.deref" kl_shen_deref)+               insertFunction "shen.lazyderef" (wrapNamed "shen.lazyderef" kl_shen_lazyderef)+               insertFunction "shen.valvector" (wrapNamed "shen.valvector" kl_shen_valvector)+               insertFunction "unify!" (wrapNamed "unify!" kl_unifyExcl)+               insertFunction "shen.lzy=!" (wrapNamed "shen.lzy=!" kl_shen_lzyEqExcl)+               insertFunction "shen.occurs?" (wrapNamed "shen.occurs?" kl_shen_occursP)+               insertFunction "identical" (wrapNamed "identical" kl_identical)+               insertFunction "shen.lzy==" (wrapNamed "shen.lzy==" kl_shen_lzyEqEq)+               insertFunction "shen.pvar" (wrapNamed "shen.pvar" kl_shen_pvar)+               insertFunction "bind" (wrapNamed "bind" kl_bind)+               insertFunction "fwhen" (wrapNamed "fwhen" kl_fwhen)+               insertFunction "call" (wrapNamed "call" kl_call)+               insertFunction "shen.call-help" (wrapNamed "shen.call-help" kl_shen_call_help)+               insertFunction "shen.intprolog" (wrapNamed "shen.intprolog" kl_shen_intprolog)+               insertFunction "shen.intprolog-help" (wrapNamed "shen.intprolog-help" kl_shen_intprolog_help)+               insertFunction "shen.intprolog-help-help" (wrapNamed "shen.intprolog-help-help" kl_shen_intprolog_help_help)+               insertFunction "shen.call-rest" (wrapNamed "shen.call-rest" kl_shen_call_rest)+               insertFunction "shen.start-new-prolog-process" (PL "shen.start-new-prolog-process" kl_shen_start_new_prolog_process)+               insertFunction "shen.insert-prolog-variables" (wrapNamed "shen.insert-prolog-variables" kl_shen_insert_prolog_variables)+               insertFunction "shen.insert-prolog-variables-help" (wrapNamed "shen.insert-prolog-variables-help" kl_shen_insert_prolog_variables_help)+               insertFunction "shen.initialise-prolog" (wrapNamed "shen.initialise-prolog" kl_shen_initialise_prolog)+               insertFunction "shen.f_error" (wrapNamed "shen.f_error" kl_shen_f_error)+               insertFunction "shen.tracked?" (wrapNamed "shen.tracked?" kl_shen_trackedP)+               insertFunction "track" (wrapNamed "track" kl_track)+               insertFunction "shen.track-function" (wrapNamed "shen.track-function" kl_shen_track_function)+               insertFunction "shen.insert-tracking-code" (wrapNamed "shen.insert-tracking-code" kl_shen_insert_tracking_code)+               insertFunction "step" (wrapNamed "step" kl_step)+               insertFunction "spy" (wrapNamed "spy" kl_spy)+               insertFunction "shen.terpri-or-read-char" (PL "shen.terpri-or-read-char" kl_shen_terpri_or_read_char)+               insertFunction "shen.check-byte" (wrapNamed "shen.check-byte" kl_shen_check_byte)+               insertFunction "shen.input-track" (wrapNamed "shen.input-track" kl_shen_input_track)+               insertFunction "shen.recursively-print" (wrapNamed "shen.recursively-print" kl_shen_recursively_print)+               insertFunction "shen.spaces" (wrapNamed "shen.spaces" kl_shen_spaces)+               insertFunction "shen.output-track" (wrapNamed "shen.output-track" kl_shen_output_track)+               insertFunction "untrack" (wrapNamed "untrack" kl_untrack)+               insertFunction "profile" (wrapNamed "profile" kl_profile)+               insertFunction "shen.profile-help" (wrapNamed "shen.profile-help" kl_shen_profile_help)+               insertFunction "unprofile" (wrapNamed "unprofile" kl_unprofile)+               insertFunction "shen.profile-func" (wrapNamed "shen.profile-func" kl_shen_profile_func)+               insertFunction "profile-results" (wrapNamed "profile-results" kl_profile_results)+               insertFunction "shen.get-profile" (wrapNamed "shen.get-profile" kl_shen_get_profile)+               insertFunction "shen.put-profile" (wrapNamed "shen.put-profile" kl_shen_put_profile)+               insertFunction "load" (wrapNamed "load" kl_load)+               insertFunction "shen.load-help" (wrapNamed "shen.load-help" kl_shen_load_help)+               insertFunction "shen.remove-synonyms" (wrapNamed "shen.remove-synonyms" kl_shen_remove_synonyms)+               insertFunction "shen.typecheck-and-load" (wrapNamed "shen.typecheck-and-load" kl_shen_typecheck_and_load)+               insertFunction "shen.typetable" (wrapNamed "shen.typetable" kl_shen_typetable)+               insertFunction "shen.assumetype" (wrapNamed "shen.assumetype" kl_shen_assumetype)+               insertFunction "shen.unwind-types" (wrapNamed "shen.unwind-types" kl_shen_unwind_types)+               insertFunction "shen.remtype" (wrapNamed "shen.remtype" kl_shen_remtype)+               insertFunction "shen.removetype" (wrapNamed "shen.removetype" kl_shen_removetype)+               insertFunction "shen.<sig+rest>" (wrapNamed "shen.<sig+rest>" kl_shen_LBsigPlusrestRB)+               insertFunction "write-to-file" (wrapNamed "write-to-file" kl_write_to_file)+               insertFunction "pr" (wrapNamed "pr" kl_pr)+               insertFunction "shen.prh" (wrapNamed "shen.prh" kl_shen_prh)+               insertFunction "shen.write-char-and-inc" (wrapNamed "shen.write-char-and-inc" kl_shen_write_char_and_inc)+               insertFunction "print" (wrapNamed "print" kl_print)+               insertFunction "shen.prhush" (wrapNamed "shen.prhush" kl_shen_prhush)+               insertFunction "shen.mkstr" (wrapNamed "shen.mkstr" kl_shen_mkstr)+               insertFunction "shen.mkstr-l" (wrapNamed "shen.mkstr-l" kl_shen_mkstr_l)+               insertFunction "shen.insert-l" (wrapNamed "shen.insert-l" kl_shen_insert_l)+               insertFunction "shen.factor-cn" (wrapNamed "shen.factor-cn" kl_shen_factor_cn)+               insertFunction "shen.proc-nl" (wrapNamed "shen.proc-nl" kl_shen_proc_nl)+               insertFunction "shen.mkstr-r" (wrapNamed "shen.mkstr-r" kl_shen_mkstr_r)+               insertFunction "shen.insert" (wrapNamed "shen.insert" kl_shen_insert)+               insertFunction "shen.insert-h" (wrapNamed "shen.insert-h" kl_shen_insert_h)+               insertFunction "shen.app" (wrapNamed "shen.app" kl_shen_app)+               insertFunction "shen.arg->str" (wrapNamed "shen.arg->str" kl_shen_arg_RBstr)+               insertFunction "shen.list->str" (wrapNamed "shen.list->str" kl_shen_list_RBstr)+               insertFunction "shen.maxseq" (PL "shen.maxseq" kl_shen_maxseq)+               insertFunction "shen.iter-list" (wrapNamed "shen.iter-list" kl_shen_iter_list)+               insertFunction "shen.str->str" (wrapNamed "shen.str->str" kl_shen_str_RBstr)+               insertFunction "shen.vector->str" (wrapNamed "shen.vector->str" kl_shen_vector_RBstr)+               insertFunction "shen.print-vector?" (wrapNamed "shen.print-vector?" kl_shen_print_vectorP)+               insertFunction "shen.fbound?" (wrapNamed "shen.fbound?" kl_shen_fboundP)+               insertFunction "shen.tuple" (wrapNamed "shen.tuple" kl_shen_tuple)+               insertFunction "shen.dictionary" (wrapNamed "shen.dictionary" kl_shen_dictionary)+               insertFunction "shen.iter-vector" (wrapNamed "shen.iter-vector" kl_shen_iter_vector)+               insertFunction "shen.atom->str" (wrapNamed "shen.atom->str" kl_shen_atom_RBstr)+               insertFunction "shen.funexstring" (PL "shen.funexstring" kl_shen_funexstring)+               insertFunction "shen.list?" (wrapNamed "shen.list?" kl_shen_listP)+               insertFunction "macroexpand" (wrapNamed "macroexpand" kl_macroexpand)+               insertFunction "shen.error-macro" (wrapNamed "shen.error-macro" kl_shen_error_macro)+               insertFunction "shen.output-macro" (wrapNamed "shen.output-macro" kl_shen_output_macro)+               insertFunction "shen.make-string-macro" (wrapNamed "shen.make-string-macro" kl_shen_make_string_macro)+               insertFunction "shen.input-macro" (wrapNamed "shen.input-macro" kl_shen_input_macro)+               insertFunction "shen.compose" (wrapNamed "shen.compose" kl_shen_compose)+               insertFunction "shen.compile-macro" (wrapNamed "shen.compile-macro" kl_shen_compile_macro)+               insertFunction "shen.prolog-macro" (wrapNamed "shen.prolog-macro" kl_shen_prolog_macro)+               insertFunction "shen.receive-terms" (wrapNamed "shen.receive-terms" kl_shen_receive_terms)+               insertFunction "shen.pass-literals" (wrapNamed "shen.pass-literals" kl_shen_pass_literals)+               insertFunction "shen.defprolog-macro" (wrapNamed "shen.defprolog-macro" kl_shen_defprolog_macro)+               insertFunction "shen.datatype-macro" (wrapNamed "shen.datatype-macro" kl_shen_datatype_macro)+               insertFunction "shen.intern-type" (wrapNamed "shen.intern-type" kl_shen_intern_type)+               insertFunction "shen.@s-macro" (wrapNamed "shen.@s-macro" kl_shen_Ats_macro)+               insertFunction "shen.synonyms-macro" (wrapNamed "shen.synonyms-macro" kl_shen_synonyms_macro)+               insertFunction "shen.curry-synonyms" (wrapNamed "shen.curry-synonyms" kl_shen_curry_synonyms)+               insertFunction "shen.nl-macro" (wrapNamed "shen.nl-macro" kl_shen_nl_macro)+               insertFunction "shen.assoc-macro" (wrapNamed "shen.assoc-macro" kl_shen_assoc_macro)+               insertFunction "shen.let-macro" (wrapNamed "shen.let-macro" kl_shen_let_macro)+               insertFunction "shen.abs-macro" (wrapNamed "shen.abs-macro" kl_shen_abs_macro)+               insertFunction "shen.cases-macro" (wrapNamed "shen.cases-macro" kl_shen_cases_macro)+               insertFunction "shen.timer-macro" (wrapNamed "shen.timer-macro" kl_shen_timer_macro)+               insertFunction "shen.tuple-up" (wrapNamed "shen.tuple-up" kl_shen_tuple_up)+               insertFunction "shen.put/get-macro" (wrapNamed "shen.put/get-macro" kl_shen_putDivget_macro)+               insertFunction "shen.function-macro" (wrapNamed "shen.function-macro" kl_shen_function_macro)+               insertFunction "shen.function-abstraction" (wrapNamed "shen.function-abstraction" kl_shen_function_abstraction)+               insertFunction "shen.function-abstraction-help" (wrapNamed "shen.function-abstraction-help" kl_shen_function_abstraction_help)+               insertFunction "undefmacro" (wrapNamed "undefmacro" kl_undefmacro)+               insertFunction "shen.findpos" (wrapNamed "shen.findpos" kl_shen_findpos)+               insertFunction "shen.remove-nth" (wrapNamed "shen.remove-nth" kl_shen_remove_nth)+               insertFunction "shen.initialise_arity_table" (wrapNamed "shen.initialise_arity_table" kl_shen_initialise_arity_table)+               insertFunction "arity" (wrapNamed "arity" kl_arity)+               insertFunction "systemf" (wrapNamed "systemf" kl_systemf)+               insertFunction "adjoin" (wrapNamed "adjoin" kl_adjoin)+               insertFunction "shen.lambda-form-entry" (wrapNamed "shen.lambda-form-entry" kl_shen_lambda_form_entry)+               insertFunction "shen.lambda-form" (wrapNamed "shen.lambda-form" kl_shen_lambda_form)+               insertFunction "shen.add-end" (wrapNamed "shen.add-end" kl_shen_add_end)+               insertFunction "shen.set-lambda-form-entry" (wrapNamed "shen.set-lambda-form-entry" kl_shen_set_lambda_form_entry)+               insertFunction "specialise" (wrapNamed "specialise" kl_specialise)+               insertFunction "unspecialise" (wrapNamed "unspecialise" kl_unspecialise)+               insertFunction "declare" (wrapNamed "declare" kl_declare)+               insertFunction "shen.demodulate" (wrapNamed "shen.demodulate" kl_shen_demodulate)+               insertFunction "shen.variancy-test" (wrapNamed "shen.variancy-test" kl_shen_variancy_test)+               insertFunction "shen.variant?" (wrapNamed "shen.variant?" kl_shen_variantP)+               insertFunction "shen.typecheck" (wrapNamed "shen.typecheck" kl_shen_typecheck)+               insertFunction "shen.curry" (wrapNamed "shen.curry" kl_shen_curry)+               insertFunction "shen.special?" (wrapNamed "shen.special?" kl_shen_specialP)+               insertFunction "shen.extraspecial?" (wrapNamed "shen.extraspecial?" kl_shen_extraspecialP)+               insertFunction "shen.t*" (wrapNamed "shen.t*" kl_shen_tMult)+               insertFunction "shen.type-theory-enabled?" (PL "shen.type-theory-enabled?" kl_shen_type_theory_enabledP)+               insertFunction "enable-type-theory" (wrapNamed "enable-type-theory" kl_enable_type_theory)+               insertFunction "shen.prolog-failure" (wrapNamed "shen.prolog-failure" kl_shen_prolog_failure)+               insertFunction "shen.maxinfexceeded?" (PL "shen.maxinfexceeded?" kl_shen_maxinfexceededP)+               insertFunction "shen.errormaxinfs" (PL "shen.errormaxinfs" kl_shen_errormaxinfs)+               insertFunction "shen.udefs*" (wrapNamed "shen.udefs*" kl_shen_udefsMult)+               insertFunction "shen.th*" (wrapNamed "shen.th*" kl_shen_thMult)+               insertFunction "shen.t*-hyps" (wrapNamed "shen.t*-hyps" kl_shen_tMult_hyps)+               insertFunction "shen.show" (wrapNamed "shen.show" kl_shen_show)+               insertFunction "shen.line" (PL "shen.line" kl_shen_line)+               insertFunction "shen.show-p" (wrapNamed "shen.show-p" kl_shen_show_p)+               insertFunction "shen.show-assumptions" (wrapNamed "shen.show-assumptions" kl_shen_show_assumptions)+               insertFunction "shen.pause-for-user" (PL "shen.pause-for-user" kl_shen_pause_for_user)+               insertFunction "shen.typedf?" (wrapNamed "shen.typedf?" kl_shen_typedfP)+               insertFunction "shen.sigf" (wrapNamed "shen.sigf" kl_shen_sigf)+               insertFunction "shen.placeholder" (PL "shen.placeholder" kl_shen_placeholder)+               insertFunction "shen.base" (wrapNamed "shen.base" kl_shen_base)+               insertFunction "shen.by_hypothesis" (wrapNamed "shen.by_hypothesis" kl_shen_by_hypothesis)+               insertFunction "shen.t*-def" (wrapNamed "shen.t*-def" kl_shen_tMult_def)+               insertFunction "shen.t*-defh" (wrapNamed "shen.t*-defh" kl_shen_tMult_defh)+               insertFunction "shen.t*-defhh" (wrapNamed "shen.t*-defhh" kl_shen_tMult_defhh)+               insertFunction "shen.memo" (wrapNamed "shen.memo" kl_shen_memo)+               insertFunction "shen.<sig+rules>" (wrapNamed "shen.<sig+rules>" kl_shen_LBsigPlusrulesRB)+               insertFunction "shen.<non-ll-rules>" (wrapNamed "shen.<non-ll-rules>" kl_shen_LBnon_ll_rulesRB)+               insertFunction "shen.ue" (wrapNamed "shen.ue" kl_shen_ue)+               insertFunction "shen.ue-sig" (wrapNamed "shen.ue-sig" kl_shen_ue_sig)+               insertFunction "shen.ues" (wrapNamed "shen.ues" kl_shen_ues)+               insertFunction "shen.ue?" (wrapNamed "shen.ue?" kl_shen_ueP)+               insertFunction "shen.ue-h?" (wrapNamed "shen.ue-h?" kl_shen_ue_hP)+               insertFunction "shen.t*-rules" (wrapNamed "shen.t*-rules" kl_shen_tMult_rules)+               insertFunction "shen.t*-rule" (wrapNamed "shen.t*-rule" kl_shen_tMult_rule)+               insertFunction "shen.placeholders" (wrapNamed "shen.placeholders" kl_shen_placeholders)+               insertFunction "shen.newhyps" (wrapNamed "shen.newhyps" kl_shen_newhyps)+               insertFunction "shen.patthyps" (wrapNamed "shen.patthyps" kl_shen_patthyps)+               insertFunction "shen.result-type" (wrapNamed "shen.result-type" kl_shen_result_type)+               insertFunction "shen.t*-patterns" (wrapNamed "shen.t*-patterns" kl_shen_tMult_patterns)+               insertFunction "shen.t*-action" (wrapNamed "shen.t*-action" kl_shen_tMult_action)+               insertFunction "findall" (wrapNamed "findall" kl_findall)+               insertFunction "shen.findallhelp" (wrapNamed "shen.findallhelp" kl_shen_findallhelp)+               insertFunction "shen.remember" (wrapNamed "shen.remember" kl_shen_remember)
Shentong/Backend/Load.hs view
@@ -1,235 +1,276 @@-{-# LANGUAGE BangPatterns #-}
-{-# LANGUAGE OverloadedStrings #-}
-{-# LANGUAGE Strict #-}
-{-# LANGUAGE StrictData #-}
-{-# LANGUAGE ViewPatterns #-}
-
-module Backend.Load where
-
-import Control.Monad.Except
-import Control.Parallel
-import Environment
-import Primitives as Primitives
-import Backend.Utils
-import Types
-import Utils
-import Wrap
-import Backend.Toplevel
-import Backend.Core
-import Backend.Sys
-import Backend.Sequent
-import Backend.Yacc
-import Backend.Reader
-import Backend.Prolog
-import Backend.Track
-
-kl_load :: Types.KLValue -> Types.KLContext Types.Env Types.KLValue
-kl_load (!kl_V1480) = do let !appl_0 = ApplC (Func "lambda" (Context (\(!kl_Load) -> do let !appl_1 = ApplC (Func "lambda" (Context (\(!kl_Infs) -> do return (Types.Atom (Types.UnboundSym "loaded")))))
-                                                                                        !kl_if_2 <- value (Types.Atom (Types.UnboundSym "shen.*tc*"))
-                                                                                        !appl_3 <- case kl_if_2 of
-                                                                                                       Atom (B (True)) -> do !appl_4 <- kl_inferences
-                                                                                                                             let !aw_5 = Types.Atom (Types.UnboundSym "shen.app")
-                                                                                                                             !appl_6 <- appl_4 `pseq` applyWrapper aw_5 [appl_4,
-                                                                                                                                                                         Types.Atom (Types.Str " inferences\n"),
-                                                                                                                                                                         Types.Atom (Types.UnboundSym "shen.a")]
-                                                                                                                             !appl_7 <- appl_6 `pseq` cn (Types.Atom (Types.Str "\ntypechecked in ")) appl_6
-                                                                                                                             !appl_8 <- kl_stoutput
-                                                                                                                             let !aw_9 = Types.Atom (Types.UnboundSym "shen.prhush")
-                                                                                                                             appl_7 `pseq` (appl_8 `pseq` applyWrapper aw_9 [appl_7,
-                                                                                                                                                                             appl_8])
-                                                                                                       Atom (B (False)) -> do do return (Types.Atom (Types.UnboundSym "shen.skip"))
-                                                                                                       _ -> throwError "if: expected boolean"
-                                                                                        appl_3 `pseq` applyWrapper appl_1 [appl_3])))
-                         let !appl_10 = ApplC (Func "lambda" (Context (\(!kl_Start) -> do let !appl_11 = ApplC (Func "lambda" (Context (\(!kl_Result) -> do let !appl_12 = ApplC (Func "lambda" (Context (\(!kl_Finish) -> do let !appl_13 = ApplC (Func "lambda" (Context (\(!kl_Time) -> do let !appl_14 = ApplC (Func "lambda" (Context (\(!kl_Message) -> do return kl_Result)))
-                                                                                                                                                                                                                                                                                              !appl_15 <- kl_Time `pseq` str kl_Time
-                                                                                                                                                                                                                                                                                              !appl_16 <- appl_15 `pseq` cn appl_15 (Types.Atom (Types.Str " secs\n"))
-                                                                                                                                                                                                                                                                                              !appl_17 <- appl_16 `pseq` cn (Types.Atom (Types.Str "\nrun time: ")) appl_16
-                                                                                                                                                                                                                                                                                              !appl_18 <- kl_stoutput
-                                                                                                                                                                                                                                                                                              let !aw_19 = Types.Atom (Types.UnboundSym "shen.prhush")
-                                                                                                                                                                                                                                                                                              !appl_20 <- appl_17 `pseq` (appl_18 `pseq` applyWrapper aw_19 [appl_17,
-                                                                                                                                                                                                                                                                                                                                                             appl_18])
-                                                                                                                                                                                                                                                                                              appl_20 `pseq` applyWrapper appl_14 [appl_20])))
-                                                                                                                                                                                                                              !appl_21 <- kl_Finish `pseq` (kl_Start `pseq` Primitives.subtract kl_Finish kl_Start)
-                                                                                                                                                                                                                              appl_21 `pseq` applyWrapper appl_13 [appl_21])))
-                                                                                                                                                            !appl_22 <- getTime (Types.Atom (Types.UnboundSym "run"))
-                                                                                                                                                            appl_22 `pseq` applyWrapper appl_12 [appl_22])))
-                                                                                          !appl_23 <- value (Types.Atom (Types.UnboundSym "shen.*tc*"))
-                                                                                          !appl_24 <- kl_V1480 `pseq` kl_read_file kl_V1480
-                                                                                          !appl_25 <- appl_23 `pseq` (appl_24 `pseq` kl_shen_load_help appl_23 appl_24)
-                                                                                          appl_25 `pseq` applyWrapper appl_11 [appl_25])))
-                         !appl_26 <- getTime (Types.Atom (Types.UnboundSym "run"))
-                         !appl_27 <- appl_26 `pseq` applyWrapper appl_10 [appl_26]
-                         appl_27 `pseq` applyWrapper appl_0 [appl_27]
-
-kl_shen_load_help :: Types.KLValue ->
-                     Types.KLValue -> Types.KLContext Types.Env Types.KLValue
-kl_shen_load_help (!kl_V1487) (!kl_V1488) = do let pat_cond_0 = do let !appl_1 = ApplC (Func "lambda" (Context (\(!kl_X) -> do !appl_2 <- kl_X `pseq` kl_shen_eval_without_macros kl_X
-                                                                                                                               let !aw_3 = Types.Atom (Types.UnboundSym "shen.app")
-                                                                                                                               !appl_4 <- appl_2 `pseq` applyWrapper aw_3 [appl_2,
-                                                                                                                                                                           Types.Atom (Types.Str "\n"),
-                                                                                                                                                                           Types.Atom (Types.UnboundSym "shen.s")]
-                                                                                                                               !appl_5 <- kl_stoutput
-                                                                                                                               let !aw_6 = Types.Atom (Types.UnboundSym "shen.prhush")
-                                                                                                                               appl_4 `pseq` (appl_5 `pseq` applyWrapper aw_6 [appl_4,
-                                                                                                                                                                               appl_5]))))
-                                                                   appl_1 `pseq` (kl_V1488 `pseq` kl_map appl_1 kl_V1488)
-                                                   pat_cond_7 = do do let !appl_8 = ApplC (Func "lambda" (Context (\(!kl_RemoveSynonyms) -> do let !appl_9 = ApplC (Func "lambda" (Context (\(!kl_Table) -> do let !appl_10 = ApplC (Func "lambda" (Context (\(!kl_Assume) -> do (do let !appl_11 = ApplC (Func "lambda" (Context (\(!kl_X) -> do kl_X `pseq` kl_shen_typecheck_and_load kl_X)))
-                                                                                                                                                                                                                                                                                     appl_11 `pseq` (kl_RemoveSynonyms `pseq` kl_map appl_11 kl_RemoveSynonyms)) `catchError` (\(!kl_E) -> do kl_E `pseq` (kl_Table `pseq` kl_shen_unwind_types (Excep kl_E) kl_Table)))))
-                                                                                                                                                                                                               let !appl_12 = ApplC (Func "lambda" (Context (\(!kl_X) -> do kl_X `pseq` kl_shen_assumetype kl_X)))
-                                                                                                                                                                                                               !appl_13 <- appl_12 `pseq` (kl_Table `pseq` kl_map appl_12 kl_Table)
-                                                                                                                                                                                                               appl_13 `pseq` applyWrapper appl_10 [appl_13])))
-                                                                                                                                               let !appl_14 = ApplC (Func "lambda" (Context (\(!kl_X) -> do kl_X `pseq` kl_shen_typetable kl_X)))
-                                                                                                                                               !appl_15 <- appl_14 `pseq` (kl_RemoveSynonyms `pseq` kl_mapcan appl_14 kl_RemoveSynonyms)
-                                                                                                                                               appl_15 `pseq` applyWrapper appl_9 [appl_15])))
-                                                                      let !appl_16 = ApplC (Func "lambda" (Context (\(!kl_X) -> do kl_X `pseq` kl_shen_remove_synonyms kl_X)))
-                                                                      !appl_17 <- appl_16 `pseq` (kl_V1488 `pseq` kl_mapcan appl_16 kl_V1488)
-                                                                      appl_17 `pseq` applyWrapper appl_8 [appl_17]
-                                                in case kl_V1487 of
-                                                       kl_V1487@(Atom (UnboundSym "false")) -> pat_cond_0
-                                                       kl_V1487@(Atom (B (False))) -> pat_cond_0
-                                                       _ -> pat_cond_7
-
-kl_shen_remove_synonyms :: Types.KLValue ->
-                           Types.KLContext Types.Env Types.KLValue
-kl_shen_remove_synonyms (!kl_V1490) = do let pat_cond_0 kl_V1490 kl_V1490t = do !appl_1 <- kl_V1490 `pseq` kl_eval kl_V1490
-                                                                                appl_1 `pseq` kl_do appl_1 (Types.Atom Types.Nil)
-                                             pat_cond_2 = do do kl_V1490 `pseq` klCons kl_V1490 (Types.Atom Types.Nil)
-                                          in case kl_V1490 of
-                                                 !(kl_V1490@(Cons (Atom (UnboundSym "shen.synonyms-help"))
-                                                                  (!kl_V1490t))) -> pat_cond_0 kl_V1490 kl_V1490t
-                                                 !(kl_V1490@(Cons (ApplC (PL "shen.synonyms-help"
-                                                                             _))
-                                                                  (!kl_V1490t))) -> pat_cond_0 kl_V1490 kl_V1490t
-                                                 !(kl_V1490@(Cons (ApplC (Func "shen.synonyms-help"
-                                                                               _))
-                                                                  (!kl_V1490t))) -> pat_cond_0 kl_V1490 kl_V1490t
-                                                 _ -> pat_cond_2
-
-kl_shen_typecheck_and_load :: Types.KLValue ->
-                              Types.KLContext Types.Env Types.KLValue
-kl_shen_typecheck_and_load (!kl_V1492) = do !appl_0 <- kl_nl (Types.Atom (Types.N (Types.KI 1)))
-                                            !appl_1 <- kl_gensym (Types.Atom (Types.UnboundSym "A"))
-                                            !appl_2 <- kl_V1492 `pseq` (appl_1 `pseq` kl_shen_typecheck_and_evaluate kl_V1492 appl_1)
-                                            appl_0 `pseq` (appl_2 `pseq` kl_do appl_0 appl_2)
-
-kl_shen_typetable :: Types.KLValue ->
-                     Types.KLContext Types.Env Types.KLValue
-kl_shen_typetable (!kl_V1498) = do let pat_cond_0 kl_V1498 kl_V1498t kl_V1498th kl_V1498tt = do let !appl_1 = ApplC (Func "lambda" (Context (\(!kl_Sig) -> do !appl_2 <- kl_V1498th `pseq` (kl_Sig `pseq` klCons kl_V1498th kl_Sig)
-                                                                                                                                                              appl_2 `pseq` klCons appl_2 (Types.Atom Types.Nil))))
-                                                                                                let !appl_3 = ApplC (Func "lambda" (Context (\(!kl_Y) -> do kl_Y `pseq` kl_shen_LBsigPlusrestRB kl_Y)))
-                                                                                                let !appl_4 = ApplC (Func "lambda" (Context (\(!kl_E) -> do let !aw_5 = Types.Atom (Types.UnboundSym "shen.app")
-                                                                                                                                                            !appl_6 <- kl_V1498th `pseq` applyWrapper aw_5 [kl_V1498th,
-                                                                                                                                                                                                            Types.Atom (Types.Str " lacks a proper signature.\n"),
-                                                                                                                                                                                                            Types.Atom (Types.UnboundSym "shen.a")]
-                                                                                                                                                            appl_6 `pseq` simpleError appl_6)))
-                                                                                                !appl_7 <- appl_3 `pseq` (kl_V1498tt `pseq` (appl_4 `pseq` kl_compile appl_3 kl_V1498tt appl_4))
-                                                                                                appl_7 `pseq` applyWrapper appl_1 [appl_7]
-                                       pat_cond_8 = do do return (Types.Atom Types.Nil)
-                                    in case kl_V1498 of
-                                           !(kl_V1498@(Cons (Atom (UnboundSym "define"))
-                                                            (!(kl_V1498t@(Cons (!kl_V1498th)
-                                                                               (!kl_V1498tt)))))) -> pat_cond_0 kl_V1498 kl_V1498t kl_V1498th kl_V1498tt
-                                           !(kl_V1498@(Cons (ApplC (PL "define" _))
-                                                            (!(kl_V1498t@(Cons (!kl_V1498th)
-                                                                               (!kl_V1498tt)))))) -> pat_cond_0 kl_V1498 kl_V1498t kl_V1498th kl_V1498tt
-                                           !(kl_V1498@(Cons (ApplC (Func "define" _))
-                                                            (!(kl_V1498t@(Cons (!kl_V1498th)
-                                                                               (!kl_V1498tt)))))) -> pat_cond_0 kl_V1498 kl_V1498t kl_V1498th kl_V1498tt
-                                           _ -> pat_cond_8
-
-kl_shen_assumetype :: Types.KLValue ->
-                      Types.KLContext Types.Env Types.KLValue
-kl_shen_assumetype (!kl_V1500) = do let pat_cond_0 kl_V1500 kl_V1500h kl_V1500t = do let !aw_1 = Types.Atom (Types.UnboundSym "declare")
-                                                                                     kl_V1500h `pseq` (kl_V1500t `pseq` applyWrapper aw_1 [kl_V1500h,
-                                                                                                                                           kl_V1500t])
-                                        pat_cond_2 = do do kl_shen_f_error (ApplC (wrapNamed "shen.assumetype" kl_shen_assumetype))
-                                     in case kl_V1500 of
-                                            !(kl_V1500@(Cons (!kl_V1500h)
-                                                             (!kl_V1500t))) -> pat_cond_0 kl_V1500 kl_V1500h kl_V1500t
-                                            _ -> pat_cond_2
-
-kl_shen_unwind_types :: Types.KLValue ->
-                        Types.KLValue -> Types.KLContext Types.Env Types.KLValue
-kl_shen_unwind_types (!kl_V1507) (!kl_V1508) = do let pat_cond_0 = do !appl_1 <- kl_V1507 `pseq` errorToString kl_V1507
-                                                                      appl_1 `pseq` simpleError appl_1
-                                                      pat_cond_2 kl_V1508 kl_V1508h kl_V1508hh kl_V1508ht kl_V1508t = do !appl_3 <- kl_V1508hh `pseq` kl_shen_remtype kl_V1508hh
-                                                                                                                         !appl_4 <- kl_V1507 `pseq` (kl_V1508t `pseq` kl_shen_unwind_types kl_V1507 kl_V1508t)
-                                                                                                                         appl_3 `pseq` (appl_4 `pseq` kl_do appl_3 appl_4)
-                                                      pat_cond_5 = do do kl_shen_f_error (ApplC (wrapNamed "shen.unwind-types" kl_shen_unwind_types))
-                                                   in case kl_V1508 of
-                                                          kl_V1508@(Atom (Nil)) -> pat_cond_0
-                                                          !(kl_V1508@(Cons (!(kl_V1508h@(Cons (!kl_V1508hh)
-                                                                                              (!kl_V1508ht))))
-                                                                           (!kl_V1508t))) -> pat_cond_2 kl_V1508 kl_V1508h kl_V1508hh kl_V1508ht kl_V1508t
-                                                          _ -> pat_cond_5
-
-kl_shen_remtype :: Types.KLValue ->
-                   Types.KLContext Types.Env Types.KLValue
-kl_shen_remtype (!kl_V1510) = do !appl_0 <- value (Types.Atom (Types.UnboundSym "shen.*signedfuncs*"))
-                                 !appl_1 <- kl_V1510 `pseq` (appl_0 `pseq` kl_shen_removetype kl_V1510 appl_0)
-                                 appl_1 `pseq` klSet (Types.Atom (Types.UnboundSym "shen.*signedfuncs*")) appl_1
-
-kl_shen_removetype :: Types.KLValue ->
-                      Types.KLValue -> Types.KLContext Types.Env Types.KLValue
-kl_shen_removetype (!kl_V1518) (!kl_V1519) = do let pat_cond_0 = do return (Types.Atom Types.Nil)
-                                                    pat_cond_1 kl_V1519 kl_V1519h kl_V1519hh kl_V1519ht kl_V1519t = do kl_V1519hh `pseq` (kl_V1519t `pseq` kl_shen_removetype kl_V1519hh kl_V1519t)
-                                                    pat_cond_2 kl_V1519 kl_V1519h kl_V1519t = do !appl_3 <- kl_V1518 `pseq` (kl_V1519t `pseq` kl_shen_removetype kl_V1518 kl_V1519t)
-                                                                                                 kl_V1519h `pseq` (appl_3 `pseq` klCons kl_V1519h appl_3)
-                                                    pat_cond_4 = do do kl_shen_f_error (ApplC (wrapNamed "shen.removetype" kl_shen_removetype))
-                                                 in case kl_V1519 of
-                                                        kl_V1519@(Atom (Nil)) -> pat_cond_0
-                                                        !(kl_V1519@(Cons (!(kl_V1519h@(Cons (!kl_V1519hh)
-                                                                                            (!kl_V1519ht))))
-                                                                         (!kl_V1519t))) | eqCore kl_V1519hh kl_V1518 -> pat_cond_1 kl_V1519 kl_V1519h kl_V1519hh kl_V1519ht kl_V1519t
-                                                        !(kl_V1519@(Cons (!kl_V1519h)
-                                                                         (!kl_V1519t))) -> pat_cond_2 kl_V1519 kl_V1519h kl_V1519t
-                                                        _ -> pat_cond_4
-
-kl_shen_LBsigPlusrestRB :: Types.KLValue ->
-                           Types.KLContext Types.Env Types.KLValue
-kl_shen_LBsigPlusrestRB (!kl_V1521) = do let !appl_0 = ApplC (Func "lambda" (Context (\(!kl_Parse_shen_LBsignatureRB) -> do !appl_1 <- kl_fail
-                                                                                                                            !appl_2 <- appl_1 `pseq` (kl_Parse_shen_LBsignatureRB `pseq` eq appl_1 kl_Parse_shen_LBsignatureRB)
-                                                                                                                            !kl_if_3 <- appl_2 `pseq` kl_not appl_2
-                                                                                                                            case kl_if_3 of
-                                                                                                                                Atom (B (True)) -> do let !appl_4 = ApplC (Func "lambda" (Context (\(!kl_Parse_shen_LBExclRB) -> do !appl_5 <- kl_fail
-                                                                                                                                                                                                                                    !appl_6 <- appl_5 `pseq` (kl_Parse_shen_LBExclRB `pseq` eq appl_5 kl_Parse_shen_LBExclRB)
-                                                                                                                                                                                                                                    !kl_if_7 <- appl_6 `pseq` kl_not appl_6
-                                                                                                                                                                                                                                    case kl_if_7 of
-                                                                                                                                                                                                                                        Atom (B (True)) -> do !appl_8 <- kl_Parse_shen_LBExclRB `pseq` hd kl_Parse_shen_LBExclRB
-                                                                                                                                                                                                                                                              !appl_9 <- kl_Parse_shen_LBsignatureRB `pseq` kl_shen_hdtl kl_Parse_shen_LBsignatureRB
-                                                                                                                                                                                                                                                              appl_8 `pseq` (appl_9 `pseq` kl_shen_pair appl_8 appl_9)
-                                                                                                                                                                                                                                        Atom (B (False)) -> do do kl_fail
-                                                                                                                                                                                                                                        _ -> throwError "if: expected boolean")))
-                                                                                                                                                      !appl_10 <- kl_Parse_shen_LBsignatureRB `pseq` kl_shen_LBExclRB kl_Parse_shen_LBsignatureRB
-                                                                                                                                                      appl_10 `pseq` applyWrapper appl_4 [appl_10]
-                                                                                                                                Atom (B (False)) -> do do kl_fail
-                                                                                                                                _ -> throwError "if: expected boolean")))
-                                         !appl_11 <- kl_V1521 `pseq` kl_shen_LBsignatureRB kl_V1521
-                                         appl_11 `pseq` applyWrapper appl_0 [appl_11]
-
-kl_write_to_file :: Types.KLValue ->
-                    Types.KLValue -> Types.KLContext Types.Env Types.KLValue
-kl_write_to_file (!kl_V1524) (!kl_V1525) = do let !appl_0 = ApplC (Func "lambda" (Context (\(!kl_Stream) -> do let !appl_1 = ApplC (Func "lambda" (Context (\(!kl_String) -> do let !appl_2 = ApplC (Func "lambda" (Context (\(!kl_Write) -> do let !appl_3 = ApplC (Func "lambda" (Context (\(!kl_Close) -> do return kl_V1525)))
-                                                                                                                                                                                                                                                !appl_4 <- kl_Stream `pseq` closeStream kl_Stream
-                                                                                                                                                                                                                                                appl_4 `pseq` applyWrapper appl_3 [appl_4])))
-                                                                                                                                                                                let !aw_5 = Types.Atom (Types.UnboundSym "pr")
-                                                                                                                                                                                !appl_6 <- kl_String `pseq` (kl_Stream `pseq` applyWrapper aw_5 [kl_String,
-                                                                                                                                                                                                                                                 kl_Stream])
-                                                                                                                                                                                appl_6 `pseq` applyWrapper appl_2 [appl_6])))
-                                                                                                               !kl_if_7 <- kl_V1525 `pseq` stringP kl_V1525
-                                                                                                               !appl_8 <- case kl_if_7 of
-                                                                                                                              Atom (B (True)) -> do let !aw_9 = Types.Atom (Types.UnboundSym "shen.app")
-                                                                                                                                                    kl_V1525 `pseq` applyWrapper aw_9 [kl_V1525,
-                                                                                                                                                                                       Types.Atom (Types.Str "\n\n"),
-                                                                                                                                                                                       Types.Atom (Types.UnboundSym "shen.a")]
-                                                                                                                              Atom (B (False)) -> do do let !aw_10 = Types.Atom (Types.UnboundSym "shen.app")
-                                                                                                                                                        kl_V1525 `pseq` applyWrapper aw_10 [kl_V1525,
-                                                                                                                                                                                            Types.Atom (Types.Str "\n\n"),
-                                                                                                                                                                                            Types.Atom (Types.UnboundSym "shen.s")]
-                                                                                                                              _ -> throwError "if: expected boolean"
-                                                                                                               appl_8 `pseq` applyWrapper appl_1 [appl_8])))
-                                              !appl_11 <- kl_V1524 `pseq` openStream kl_V1524 (Types.Atom (Types.UnboundSym "out"))
-                                              appl_11 `pseq` applyWrapper appl_0 [appl_11]
-
-expr8 :: Types.KLContext Types.Env Types.KLValue
-expr8 = do (do return (Types.Atom (Types.Str "Copyright (c) 2015, Mark Tarver\n\nAll rights reserved.\n\nRedistribution and use in source and binary forms, with or without\nmodification, are permitted provided that the following conditions are met:\n1. Redistributions of source code must retain the above copyright\n   notice, this list of conditions and the following disclaimer.\n2. Redistributions in binary form must reproduce the above copyright\n   notice, this list of conditions and the following disclaimer in the\n   documentation and/or other materials provided with the distribution.\n3. The name of Mark Tarver may not be used to endorse or promote products\n   derived from this software without specific prior written permission.\n\nTHIS SOFTWARE IS PROVIDED BY Mark Tarver ''AS IS'' AND ANY\nEXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED\nWARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE\nDISCLAIMED. IN NO EVENT SHALL Mark Tarver BE LIABLE FOR ANY\nDIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES\n(INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;\nLOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND\nON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT\n(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS\nSOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE."))) `catchError` (\(!kl_E) -> do return (Types.Atom (Types.Str "E")))
+{-# LANGUAGE BangPatterns #-}+{-# LANGUAGE OverloadedStrings #-}+{-# LANGUAGE Strict #-}+{-# LANGUAGE StrictData #-}+{-# LANGUAGE ViewPatterns #-}++module Backend.Load where++import Control.Monad.Except+import Control.Parallel+import Environment+import Core.Primitives as Primitives+import Backend.Utils+import Core.Types+import Core.Utils+import Wrap+import Backend.Toplevel+import Backend.Core+import Backend.Sys+import Backend.Sequent+import Backend.Yacc+import Backend.Reader+import Backend.Prolog+import Backend.Track++{-+Copyright (c) 2015, Mark Tarver+All rights reserved.++Redistribution and use in source and binary forms, with or without+modification, are permitted provided that the following conditions are met:++1. Redistributions of source code must retain the above copyright+   notice, this list of conditions and the following disclaimer.+2. Redistributions in binary form must reproduce the above copyright+   notice, this list of conditions and the following disclaimer in the+   documentation and/or other materials provided with the distribution.+3. The name of Mark Tarver may not be used to endorse or promote products+   derived from this software without specific prior written permission.++THIS SOFTWARE IS PROVIDED BY Mark Tarver ''AS IS'' AND ANY+EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED+WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE+DISCLAIMED. IN NO EVENT SHALL Mark Tarver BE LIABLE FOR ANY+DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES+(INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;+LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND+ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT+(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS+SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.+-}++kl_load :: Core.Types.KLValue ->+           Core.Types.KLContext Core.Types.Env Core.Types.KLValue+kl_load (!kl_V1482) = do let !appl_0 = ApplC (Func "lambda" (Context (\(!kl_Load) -> do let !appl_1 = ApplC (Func "lambda" (Context (\(!kl_Infs) -> do return (Core.Types.Atom (Core.Types.UnboundSym "loaded")))))+                                                                                        !kl_if_2 <- value (Core.Types.Atom (Core.Types.UnboundSym "shen.*tc*"))+                                                                                        !appl_3 <- case kl_if_2 of+                                                                                                       Atom (B (True)) -> do !appl_4 <- kl_inferences+                                                                                                                             let !aw_5 = Core.Types.Atom (Core.Types.UnboundSym "shen.app")+                                                                                                                             !appl_6 <- appl_4 `pseq` applyWrapper aw_5 [appl_4,+                                                                                                                                                                         Core.Types.Atom (Core.Types.Str " inferences\n"),+                                                                                                                                                                         Core.Types.Atom (Core.Types.UnboundSym "shen.a")]+                                                                                                                             !appl_7 <- appl_6 `pseq` cn (Core.Types.Atom (Core.Types.Str "\ntypechecked in ")) appl_6+                                                                                                                             !appl_8 <- kl_stoutput+                                                                                                                             let !aw_9 = Core.Types.Atom (Core.Types.UnboundSym "shen.prhush")+                                                                                                                             appl_7 `pseq` (appl_8 `pseq` applyWrapper aw_9 [appl_7,+                                                                                                                                                                             appl_8])+                                                                                                       Atom (B (False)) -> do do return (Core.Types.Atom (Core.Types.UnboundSym "shen.skip"))+                                                                                                       _ -> throwError "if: expected boolean"+                                                                                        appl_3 `pseq` applyWrapper appl_1 [appl_3])))+                         let !appl_10 = ApplC (Func "lambda" (Context (\(!kl_Start) -> do let !appl_11 = ApplC (Func "lambda" (Context (\(!kl_Result) -> do let !appl_12 = ApplC (Func "lambda" (Context (\(!kl_Finish) -> do let !appl_13 = ApplC (Func "lambda" (Context (\(!kl_Time) -> do let !appl_14 = ApplC (Func "lambda" (Context (\(!kl_Message) -> do return kl_Result)))+                                                                                                                                                                                                                                                                                              !appl_15 <- kl_Time `pseq` str kl_Time+                                                                                                                                                                                                                                                                                              !appl_16 <- appl_15 `pseq` cn appl_15 (Core.Types.Atom (Core.Types.Str " secs\n"))+                                                                                                                                                                                                                                                                                              !appl_17 <- appl_16 `pseq` cn (Core.Types.Atom (Core.Types.Str "\nrun time: ")) appl_16+                                                                                                                                                                                                                                                                                              !appl_18 <- kl_stoutput+                                                                                                                                                                                                                                                                                              let !aw_19 = Core.Types.Atom (Core.Types.UnboundSym "shen.prhush")+                                                                                                                                                                                                                                                                                              !appl_20 <- appl_17 `pseq` (appl_18 `pseq` applyWrapper aw_19 [appl_17,+                                                                                                                                                                                                                                                                                                                                                             appl_18])+                                                                                                                                                                                                                                                                                              appl_20 `pseq` applyWrapper appl_14 [appl_20])))+                                                                                                                                                                                                                              !appl_21 <- kl_Finish `pseq` (kl_Start `pseq` Primitives.subtract kl_Finish kl_Start)+                                                                                                                                                                                                                              appl_21 `pseq` applyWrapper appl_13 [appl_21])))+                                                                                                                                                            !appl_22 <- getTime (Core.Types.Atom (Core.Types.UnboundSym "run"))+                                                                                                                                                            appl_22 `pseq` applyWrapper appl_12 [appl_22])))+                                                                                          !appl_23 <- value (Core.Types.Atom (Core.Types.UnboundSym "shen.*tc*"))+                                                                                          !appl_24 <- kl_V1482 `pseq` kl_read_file kl_V1482+                                                                                          !appl_25 <- appl_23 `pseq` (appl_24 `pseq` kl_shen_load_help appl_23 appl_24)+                                                                                          appl_25 `pseq` applyWrapper appl_11 [appl_25])))+                         !appl_26 <- getTime (Core.Types.Atom (Core.Types.UnboundSym "run"))+                         !appl_27 <- appl_26 `pseq` applyWrapper appl_10 [appl_26]+                         appl_27 `pseq` applyWrapper appl_0 [appl_27]++kl_shen_load_help :: Core.Types.KLValue ->+                     Core.Types.KLValue ->+                     Core.Types.KLContext Core.Types.Env Core.Types.KLValue+kl_shen_load_help (!kl_V1489) (!kl_V1490) = do let pat_cond_0 = do let !appl_1 = ApplC (Func "lambda" (Context (\(!kl_X) -> do !appl_2 <- kl_X `pseq` kl_shen_eval_without_macros kl_X+                                                                                                                               let !aw_3 = Core.Types.Atom (Core.Types.UnboundSym "shen.app")+                                                                                                                               !appl_4 <- appl_2 `pseq` applyWrapper aw_3 [appl_2,+                                                                                                                                                                           Core.Types.Atom (Core.Types.Str "\n"),+                                                                                                                                                                           Core.Types.Atom (Core.Types.UnboundSym "shen.s")]+                                                                                                                               !appl_5 <- kl_stoutput+                                                                                                                               let !aw_6 = Core.Types.Atom (Core.Types.UnboundSym "shen.prhush")+                                                                                                                               appl_4 `pseq` (appl_5 `pseq` applyWrapper aw_6 [appl_4,+                                                                                                                                                                               appl_5]))))+                                                                   appl_1 `pseq` (kl_V1490 `pseq` kl_for_each appl_1 kl_V1490)+                                                   pat_cond_7 = do do let !appl_8 = ApplC (Func "lambda" (Context (\(!kl_RemoveSynonyms) -> do let !appl_9 = ApplC (Func "lambda" (Context (\(!kl_Table) -> do let !appl_10 = ApplC (Func "lambda" (Context (\(!kl_Assume) -> do (do let !appl_11 = ApplC (Func "lambda" (Context (\(!kl_X) -> do kl_X `pseq` kl_shen_typecheck_and_load kl_X)))+                                                                                                                                                                                                                                                                                     appl_11 `pseq` (kl_RemoveSynonyms `pseq` kl_for_each appl_11 kl_RemoveSynonyms)) `catchError` (\(!kl_E) -> do kl_E `pseq` (kl_Table `pseq` kl_shen_unwind_types (Excep kl_E) kl_Table)))))+                                                                                                                                                                                                               let !appl_12 = ApplC (Func "lambda" (Context (\(!kl_X) -> do kl_X `pseq` kl_shen_assumetype kl_X)))+                                                                                                                                                                                                               !appl_13 <- appl_12 `pseq` (kl_Table `pseq` kl_for_each appl_12 kl_Table)+                                                                                                                                                                                                               appl_13 `pseq` applyWrapper appl_10 [appl_13])))+                                                                                                                                               let !appl_14 = ApplC (Func "lambda" (Context (\(!kl_X) -> do kl_X `pseq` kl_shen_typetable kl_X)))+                                                                                                                                               !appl_15 <- appl_14 `pseq` (kl_RemoveSynonyms `pseq` kl_mapcan appl_14 kl_RemoveSynonyms)+                                                                                                                                               appl_15 `pseq` applyWrapper appl_9 [appl_15])))+                                                                      let !appl_16 = ApplC (Func "lambda" (Context (\(!kl_X) -> do kl_X `pseq` kl_shen_remove_synonyms kl_X)))+                                                                      !appl_17 <- appl_16 `pseq` (kl_V1490 `pseq` kl_mapcan appl_16 kl_V1490)+                                                                      appl_17 `pseq` applyWrapper appl_8 [appl_17]+                                                in case kl_V1489 of+                                                       kl_V1489@(Atom (UnboundSym "false")) -> pat_cond_0+                                                       kl_V1489@(Atom (B (False))) -> pat_cond_0+                                                       _ -> pat_cond_7++kl_shen_remove_synonyms :: Core.Types.KLValue ->+                           Core.Types.KLContext Core.Types.Env Core.Types.KLValue+kl_shen_remove_synonyms (!kl_V1492) = do let pat_cond_0 kl_V1492 kl_V1492t = do !appl_1 <- kl_V1492 `pseq` kl_eval kl_V1492+                                                                                let !appl_2 = Atom Nil+                                                                                appl_1 `pseq` (appl_2 `pseq` kl_do appl_1 appl_2)+                                             pat_cond_3 = do do let !appl_4 = Atom Nil+                                                                kl_V1492 `pseq` (appl_4 `pseq` klCons kl_V1492 appl_4)+                                          in case kl_V1492 of+                                                 !(kl_V1492@(Cons (Atom (UnboundSym "shen.synonyms-help"))+                                                                  (!kl_V1492t))) -> pat_cond_0 kl_V1492 kl_V1492t+                                                 !(kl_V1492@(Cons (ApplC (PL "shen.synonyms-help"+                                                                             _))+                                                                  (!kl_V1492t))) -> pat_cond_0 kl_V1492 kl_V1492t+                                                 !(kl_V1492@(Cons (ApplC (Func "shen.synonyms-help"+                                                                               _))+                                                                  (!kl_V1492t))) -> pat_cond_0 kl_V1492 kl_V1492t+                                                 _ -> pat_cond_3++kl_shen_typecheck_and_load :: Core.Types.KLValue ->+                              Core.Types.KLContext Core.Types.Env Core.Types.KLValue+kl_shen_typecheck_and_load (!kl_V1494) = do !appl_0 <- kl_nl (Core.Types.Atom (Core.Types.N (Core.Types.KI 1)))+                                            !appl_1 <- kl_gensym (Core.Types.Atom (Core.Types.UnboundSym "A"))+                                            !appl_2 <- kl_V1494 `pseq` (appl_1 `pseq` kl_shen_typecheck_and_evaluate kl_V1494 appl_1)+                                            appl_0 `pseq` (appl_2 `pseq` kl_do appl_0 appl_2)++kl_shen_typetable :: Core.Types.KLValue ->+                     Core.Types.KLContext Core.Types.Env Core.Types.KLValue+kl_shen_typetable (!kl_V1500) = do let pat_cond_0 kl_V1500 kl_V1500t kl_V1500th kl_V1500tt = do let !appl_1 = ApplC (Func "lambda" (Context (\(!kl_Sig) -> do !appl_2 <- kl_V1500th `pseq` (kl_Sig `pseq` klCons kl_V1500th kl_Sig)+                                                                                                                                                              let !appl_3 = Atom Nil+                                                                                                                                                              appl_2 `pseq` (appl_3 `pseq` klCons appl_2 appl_3))))+                                                                                                let !appl_4 = ApplC (Func "lambda" (Context (\(!kl_Y) -> do kl_Y `pseq` kl_shen_LBsigPlusrestRB kl_Y)))+                                                                                                let !appl_5 = ApplC (Func "lambda" (Context (\(!kl_E) -> do let !aw_6 = Core.Types.Atom (Core.Types.UnboundSym "shen.app")+                                                                                                                                                            !appl_7 <- kl_V1500th `pseq` applyWrapper aw_6 [kl_V1500th,+                                                                                                                                                                                                            Core.Types.Atom (Core.Types.Str " lacks a proper signature.\n"),+                                                                                                                                                                                                            Core.Types.Atom (Core.Types.UnboundSym "shen.a")]+                                                                                                                                                            appl_7 `pseq` simpleError appl_7)))+                                                                                                !appl_8 <- appl_4 `pseq` (kl_V1500tt `pseq` (appl_5 `pseq` kl_compile appl_4 kl_V1500tt appl_5))+                                                                                                appl_8 `pseq` applyWrapper appl_1 [appl_8]+                                       pat_cond_9 = do do return (Atom Nil)+                                    in case kl_V1500 of+                                           !(kl_V1500@(Cons (Atom (UnboundSym "define"))+                                                            (!(kl_V1500t@(Cons (!kl_V1500th)+                                                                               (!kl_V1500tt)))))) -> pat_cond_0 kl_V1500 kl_V1500t kl_V1500th kl_V1500tt+                                           !(kl_V1500@(Cons (ApplC (PL "define" _))+                                                            (!(kl_V1500t@(Cons (!kl_V1500th)+                                                                               (!kl_V1500tt)))))) -> pat_cond_0 kl_V1500 kl_V1500t kl_V1500th kl_V1500tt+                                           !(kl_V1500@(Cons (ApplC (Func "define" _))+                                                            (!(kl_V1500t@(Cons (!kl_V1500th)+                                                                               (!kl_V1500tt)))))) -> pat_cond_0 kl_V1500 kl_V1500t kl_V1500th kl_V1500tt+                                           _ -> pat_cond_9++kl_shen_assumetype :: Core.Types.KLValue ->+                      Core.Types.KLContext Core.Types.Env Core.Types.KLValue+kl_shen_assumetype (!kl_V1502) = do let pat_cond_0 kl_V1502 kl_V1502h kl_V1502t = do let !aw_1 = Core.Types.Atom (Core.Types.UnboundSym "declare")+                                                                                     kl_V1502h `pseq` (kl_V1502t `pseq` applyWrapper aw_1 [kl_V1502h,+                                                                                                                                           kl_V1502t])+                                        pat_cond_2 = do do kl_shen_f_error (ApplC (wrapNamed "shen.assumetype" kl_shen_assumetype))+                                     in case kl_V1502 of+                                            !(kl_V1502@(Cons (!kl_V1502h)+                                                             (!kl_V1502t))) -> pat_cond_0 kl_V1502 kl_V1502h kl_V1502t+                                            _ -> pat_cond_2++kl_shen_unwind_types :: Core.Types.KLValue ->+                        Core.Types.KLValue ->+                        Core.Types.KLContext Core.Types.Env Core.Types.KLValue+kl_shen_unwind_types (!kl_V1509) (!kl_V1510) = do let !appl_0 = Atom Nil+                                                  !kl_if_1 <- appl_0 `pseq` (kl_V1510 `pseq` eq appl_0 kl_V1510)+                                                  case kl_if_1 of+                                                      Atom (B (True)) -> do !appl_2 <- kl_V1509 `pseq` errorToString kl_V1509+                                                                            appl_2 `pseq` simpleError appl_2+                                                      Atom (B (False)) -> do let pat_cond_3 kl_V1510 kl_V1510h kl_V1510hh kl_V1510ht kl_V1510t = do !appl_4 <- kl_V1510hh `pseq` kl_shen_remtype kl_V1510hh+                                                                                                                                                    !appl_5 <- kl_V1509 `pseq` (kl_V1510t `pseq` kl_shen_unwind_types kl_V1509 kl_V1510t)+                                                                                                                                                    appl_4 `pseq` (appl_5 `pseq` kl_do appl_4 appl_5)+                                                                                 pat_cond_6 = do do kl_shen_f_error (ApplC (wrapNamed "shen.unwind-types" kl_shen_unwind_types))+                                                                              in case kl_V1510 of+                                                                                     !(kl_V1510@(Cons (!(kl_V1510h@(Cons (!kl_V1510hh)+                                                                                                                         (!kl_V1510ht))))+                                                                                                      (!kl_V1510t))) -> pat_cond_3 kl_V1510 kl_V1510h kl_V1510hh kl_V1510ht kl_V1510t+                                                                                     _ -> pat_cond_6+                                                      _ -> throwError "if: expected boolean"++kl_shen_remtype :: Core.Types.KLValue ->+                   Core.Types.KLContext Core.Types.Env Core.Types.KLValue+kl_shen_remtype (!kl_V1512) = do !appl_0 <- value (Core.Types.Atom (Core.Types.UnboundSym "shen.*signedfuncs*"))+                                 !appl_1 <- kl_V1512 `pseq` (appl_0 `pseq` kl_shen_removetype kl_V1512 appl_0)+                                 appl_1 `pseq` klSet (Core.Types.Atom (Core.Types.UnboundSym "shen.*signedfuncs*")) appl_1++kl_shen_removetype :: Core.Types.KLValue ->+                      Core.Types.KLValue ->+                      Core.Types.KLContext Core.Types.Env Core.Types.KLValue+kl_shen_removetype (!kl_V1520) (!kl_V1521) = do let !appl_0 = Atom Nil+                                                !kl_if_1 <- appl_0 `pseq` (kl_V1521 `pseq` eq appl_0 kl_V1521)+                                                case kl_if_1 of+                                                    Atom (B (True)) -> do return (Atom Nil)+                                                    Atom (B (False)) -> do let pat_cond_2 kl_V1521 kl_V1521h kl_V1521hh kl_V1521ht kl_V1521t = do kl_V1521hh `pseq` (kl_V1521t `pseq` kl_shen_removetype kl_V1521hh kl_V1521t)+                                                                               pat_cond_3 kl_V1521 kl_V1521h kl_V1521t = do !appl_4 <- kl_V1520 `pseq` (kl_V1521t `pseq` kl_shen_removetype kl_V1520 kl_V1521t)+                                                                                                                            kl_V1521h `pseq` (appl_4 `pseq` klCons kl_V1521h appl_4)+                                                                               pat_cond_5 = do do kl_shen_f_error (ApplC (wrapNamed "shen.removetype" kl_shen_removetype))+                                                                            in case kl_V1521 of+                                                                                   !(kl_V1521@(Cons (!(kl_V1521h@(Cons (!kl_V1521hh)+                                                                                                                       (!kl_V1521ht))))+                                                                                                    (!kl_V1521t))) | eqCore kl_V1521hh kl_V1520 -> pat_cond_2 kl_V1521 kl_V1521h kl_V1521hh kl_V1521ht kl_V1521t+                                                                                   !(kl_V1521@(Cons (!kl_V1521h)+                                                                                                    (!kl_V1521t))) -> pat_cond_3 kl_V1521 kl_V1521h kl_V1521t+                                                                                   _ -> pat_cond_5+                                                    _ -> throwError "if: expected boolean"++kl_shen_LBsigPlusrestRB :: Core.Types.KLValue ->+                           Core.Types.KLContext Core.Types.Env Core.Types.KLValue+kl_shen_LBsigPlusrestRB (!kl_V1523) = do let !appl_0 = ApplC (Func "lambda" (Context (\(!kl_Parse_shen_LBsignatureRB) -> do !appl_1 <- kl_fail+                                                                                                                            !appl_2 <- appl_1 `pseq` (kl_Parse_shen_LBsignatureRB `pseq` eq appl_1 kl_Parse_shen_LBsignatureRB)+                                                                                                                            !kl_if_3 <- appl_2 `pseq` kl_not appl_2+                                                                                                                            case kl_if_3 of+                                                                                                                                Atom (B (True)) -> do let !appl_4 = ApplC (Func "lambda" (Context (\(!kl_Parse_LBExclRB) -> do !appl_5 <- kl_fail+                                                                                                                                                                                                                               !appl_6 <- appl_5 `pseq` (kl_Parse_LBExclRB `pseq` eq appl_5 kl_Parse_LBExclRB)+                                                                                                                                                                                                                               !kl_if_7 <- appl_6 `pseq` kl_not appl_6+                                                                                                                                                                                                                               case kl_if_7 of+                                                                                                                                                                                                                                   Atom (B (True)) -> do !appl_8 <- kl_Parse_LBExclRB `pseq` hd kl_Parse_LBExclRB+                                                                                                                                                                                                                                                         !appl_9 <- kl_Parse_shen_LBsignatureRB `pseq` kl_shen_hdtl kl_Parse_shen_LBsignatureRB+                                                                                                                                                                                                                                                         appl_8 `pseq` (appl_9 `pseq` kl_shen_pair appl_8 appl_9)+                                                                                                                                                                                                                                   Atom (B (False)) -> do do kl_fail+                                                                                                                                                                                                                                   _ -> throwError "if: expected boolean")))+                                                                                                                                                      !appl_10 <- kl_Parse_shen_LBsignatureRB `pseq` kl_LBExclRB kl_Parse_shen_LBsignatureRB+                                                                                                                                                      appl_10 `pseq` applyWrapper appl_4 [appl_10]+                                                                                                                                Atom (B (False)) -> do do kl_fail+                                                                                                                                _ -> throwError "if: expected boolean")))+                                         !appl_11 <- kl_V1523 `pseq` kl_shen_LBsignatureRB kl_V1523+                                         appl_11 `pseq` applyWrapper appl_0 [appl_11]++kl_write_to_file :: Core.Types.KLValue ->+                    Core.Types.KLValue ->+                    Core.Types.KLContext Core.Types.Env Core.Types.KLValue+kl_write_to_file (!kl_V1526) (!kl_V1527) = do let !appl_0 = ApplC (Func "lambda" (Context (\(!kl_Stream) -> do let !appl_1 = ApplC (Func "lambda" (Context (\(!kl_String) -> do let !appl_2 = ApplC (Func "lambda" (Context (\(!kl_Write) -> do let !appl_3 = ApplC (Func "lambda" (Context (\(!kl_Close) -> do return kl_V1527)))+                                                                                                                                                                                                                                                !appl_4 <- kl_Stream `pseq` closeStream kl_Stream+                                                                                                                                                                                                                                                appl_4 `pseq` applyWrapper appl_3 [appl_4])))+                                                                                                                                                                                let !aw_5 = Core.Types.Atom (Core.Types.UnboundSym "pr")+                                                                                                                                                                                !appl_6 <- kl_String `pseq` (kl_Stream `pseq` applyWrapper aw_5 [kl_String,+                                                                                                                                                                                                                                                 kl_Stream])+                                                                                                                                                                                appl_6 `pseq` applyWrapper appl_2 [appl_6])))+                                                                                                               !kl_if_7 <- kl_V1527 `pseq` stringP kl_V1527+                                                                                                               !appl_8 <- case kl_if_7 of+                                                                                                                              Atom (B (True)) -> do let !aw_9 = Core.Types.Atom (Core.Types.UnboundSym "shen.app")+                                                                                                                                                    kl_V1527 `pseq` applyWrapper aw_9 [kl_V1527,+                                                                                                                                                                                       Core.Types.Atom (Core.Types.Str "\n\n"),+                                                                                                                                                                                       Core.Types.Atom (Core.Types.UnboundSym "shen.a")]+                                                                                                                              Atom (B (False)) -> do do let !aw_10 = Core.Types.Atom (Core.Types.UnboundSym "shen.app")+                                                                                                                                                        kl_V1527 `pseq` applyWrapper aw_10 [kl_V1527,+                                                                                                                                                                                            Core.Types.Atom (Core.Types.Str "\n\n"),+                                                                                                                                                                                            Core.Types.Atom (Core.Types.UnboundSym "shen.s")]+                                                                                                                              _ -> throwError "if: expected boolean"+                                                                                                               appl_8 `pseq` applyWrapper appl_1 [appl_8])))+                                              !appl_11 <- kl_V1526 `pseq` openStream kl_V1526 (Core.Types.Atom (Core.Types.UnboundSym "out"))+                                              appl_11 `pseq` applyWrapper appl_0 [appl_11]++expr8 :: Core.Types.KLContext Core.Types.Env Core.Types.KLValue+expr8 = do (do return (Core.Types.Atom (Core.Types.Str "Copyright (c) 2015, Mark Tarver\n\nAll rights reserved.\n\nRedistribution and use in source and binary forms, with or without\nmodification, are permitted provided that the following conditions are met:\n1. Redistributions of source code must retain the above copyright\n   notice, this list of conditions and the following disclaimer.\n2. Redistributions in binary form must reproduce the above copyright\n   notice, this list of conditions and the following disclaimer in the\n   documentation and/or other materials provided with the distribution.\n3. The name of Mark Tarver may not be used to endorse or promote products\n   derived from this software without specific prior written permission.\n\nTHIS SOFTWARE IS PROVIDED BY Mark Tarver ''AS IS'' AND ANY\nEXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED\nWARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE\nDISCLAIMED. IN NO EVENT SHALL Mark Tarver BE LIABLE FOR ANY\nDIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES\n(INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;\nLOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND\nON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT\n(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS\nSOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE."))) `catchError` (\(!kl_E) -> do return (Core.Types.Atom (Core.Types.Str "E")))
Shentong/Backend/LoadShen.hs view
@@ -9,10 +9,10 @@ import Control.Monad.Except
 import Control.Parallel
 import Environment
-import Primitives as Primitives
+import Core.Primitives as Primitives
 import Backend.Utils
-import Types as Types
-import Utils
+import Core.Types as Types
+import Core.Utils
 import Wrap
 import Backend.Toplevel
 import Backend.Core
Shentong/Backend/Macros.hs view
@@ -1,941 +1,1628 @@-{-# LANGUAGE BangPatterns #-}
-{-# LANGUAGE OverloadedStrings #-}
-{-# LANGUAGE Strict #-}
-{-# LANGUAGE StrictData #-}
-{-# LANGUAGE ViewPatterns #-}
-
-module Backend.Macros where
-
-import Control.Monad.Except
-import Control.Parallel
-import Environment
-import Primitives as Primitives
-import Backend.Utils
-import Types as Types
-import Utils
-import Wrap
-import Backend.Toplevel
-import Backend.Core
-import Backend.Sys
-import Backend.Sequent
-import Backend.Yacc
-import Backend.Reader
-import Backend.Prolog
-import Backend.Track
-import Backend.Load
-import Backend.Writer
-
-{-
-Copyright (c) 2015, Mark Tarver
-All rights reserved.
-
-Redistribution and use in source and binary forms, with or without
-modification, are permitted provided that the following conditions are met:
-
-1. Redistributions of source code must retain the above copyright
-   notice, this list of conditions and the following disclaimer.
-2. Redistributions in binary form must reproduce the above copyright
-   notice, this list of conditions and the following disclaimer in the
-   documentation and/or other materials provided with the distribution.
-3. The name of Mark Tarver may not be used to endorse or promote products
-   derived from this software without specific prior written permission.
-
-THIS SOFTWARE IS PROVIDED BY Mark Tarver ''AS IS'' AND ANY
-EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
-WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
-DISCLAIMED. IN NO EVENT SHALL Mark Tarver BE LIABLE FOR ANY
-DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
-(INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
-LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND
-ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
-(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
-SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
--}
-
-kl_macroexpand :: Types.KLValue ->
-                  Types.KLContext Types.Env Types.KLValue
-kl_macroexpand (!kl_V1527) = do let !appl_0 = ApplC (Func "lambda" (Context (\(!kl_Y) -> do !kl_if_1 <- kl_V1527 `pseq` (kl_Y `pseq` eq kl_V1527 kl_Y)
-                                                                                            case kl_if_1 of
-                                                                                                Atom (B (True)) -> do return kl_V1527
-                                                                                                Atom (B (False)) -> do do let !appl_2 = ApplC (Func "lambda" (Context (\(!kl_Z) -> do kl_Z `pseq` kl_macroexpand kl_Z)))
-                                                                                                                          appl_2 `pseq` (kl_Y `pseq` kl_shen_walk appl_2 kl_Y)
-                                                                                                _ -> throwError "if: expected boolean")))
-                                !appl_3 <- value (Types.Atom (Types.UnboundSym "*macros*"))
-                                !appl_4 <- appl_3 `pseq` (kl_V1527 `pseq` kl_shen_compose appl_3 kl_V1527)
-                                appl_4 `pseq` applyWrapper appl_0 [appl_4]
-
-kl_shen_error_macro :: Types.KLValue ->
-                       Types.KLContext Types.Env Types.KLValue
-kl_shen_error_macro (!kl_V1529) = do let pat_cond_0 kl_V1529 kl_V1529t kl_V1529th kl_V1529tt = do !appl_1 <- kl_V1529th `pseq` (kl_V1529tt `pseq` kl_shen_mkstr kl_V1529th kl_V1529tt)
-                                                                                                  !appl_2 <- appl_1 `pseq` klCons appl_1 (Types.Atom Types.Nil)
-                                                                                                  appl_2 `pseq` klCons (ApplC (wrapNamed "simple-error" simpleError)) appl_2
-                                         pat_cond_3 = do do return kl_V1529
-                                      in case kl_V1529 of
-                                             !(kl_V1529@(Cons (Atom (UnboundSym "error"))
-                                                              (!(kl_V1529t@(Cons (!kl_V1529th)
-                                                                                 (!kl_V1529tt)))))) -> pat_cond_0 kl_V1529 kl_V1529t kl_V1529th kl_V1529tt
-                                             !(kl_V1529@(Cons (ApplC (PL "error" _))
-                                                              (!(kl_V1529t@(Cons (!kl_V1529th)
-                                                                                 (!kl_V1529tt)))))) -> pat_cond_0 kl_V1529 kl_V1529t kl_V1529th kl_V1529tt
-                                             !(kl_V1529@(Cons (ApplC (Func "error" _))
-                                                              (!(kl_V1529t@(Cons (!kl_V1529th)
-                                                                                 (!kl_V1529tt)))))) -> pat_cond_0 kl_V1529 kl_V1529t kl_V1529th kl_V1529tt
-                                             _ -> pat_cond_3
-
-kl_shen_output_macro :: Types.KLValue ->
-                        Types.KLContext Types.Env Types.KLValue
-kl_shen_output_macro (!kl_V1531) = do let pat_cond_0 kl_V1531 kl_V1531t kl_V1531th kl_V1531tt = do !appl_1 <- kl_V1531th `pseq` (kl_V1531tt `pseq` kl_shen_mkstr kl_V1531th kl_V1531tt)
-                                                                                                   !appl_2 <- klCons (ApplC (PL "stoutput" kl_stoutput)) (Types.Atom Types.Nil)
-                                                                                                   !appl_3 <- appl_2 `pseq` klCons appl_2 (Types.Atom Types.Nil)
-                                                                                                   !appl_4 <- appl_1 `pseq` (appl_3 `pseq` klCons appl_1 appl_3)
-                                                                                                   appl_4 `pseq` klCons (ApplC (wrapNamed "shen.prhush" kl_shen_prhush)) appl_4
-                                          pat_cond_5 kl_V1531 kl_V1531t kl_V1531th = do !appl_6 <- klCons (ApplC (PL "stoutput" kl_stoutput)) (Types.Atom Types.Nil)
-                                                                                        !appl_7 <- appl_6 `pseq` klCons appl_6 (Types.Atom Types.Nil)
-                                                                                        !appl_8 <- kl_V1531th `pseq` (appl_7 `pseq` klCons kl_V1531th appl_7)
-                                                                                        appl_8 `pseq` klCons (ApplC (wrapNamed "pr" kl_pr)) appl_8
-                                          pat_cond_9 = do do return kl_V1531
-                                       in case kl_V1531 of
-                                              !(kl_V1531@(Cons (Atom (UnboundSym "output"))
-                                                               (!(kl_V1531t@(Cons (!kl_V1531th)
-                                                                                  (!kl_V1531tt)))))) -> pat_cond_0 kl_V1531 kl_V1531t kl_V1531th kl_V1531tt
-                                              !(kl_V1531@(Cons (ApplC (PL "output" _))
-                                                               (!(kl_V1531t@(Cons (!kl_V1531th)
-                                                                                  (!kl_V1531tt)))))) -> pat_cond_0 kl_V1531 kl_V1531t kl_V1531th kl_V1531tt
-                                              !(kl_V1531@(Cons (ApplC (Func "output" _))
-                                                               (!(kl_V1531t@(Cons (!kl_V1531th)
-                                                                                  (!kl_V1531tt)))))) -> pat_cond_0 kl_V1531 kl_V1531t kl_V1531th kl_V1531tt
-                                              !(kl_V1531@(Cons (Atom (UnboundSym "pr"))
-                                                               (!(kl_V1531t@(Cons (!kl_V1531th)
-                                                                                  (Atom (Nil))))))) -> pat_cond_5 kl_V1531 kl_V1531t kl_V1531th
-                                              !(kl_V1531@(Cons (ApplC (PL "pr" _))
-                                                               (!(kl_V1531t@(Cons (!kl_V1531th)
-                                                                                  (Atom (Nil))))))) -> pat_cond_5 kl_V1531 kl_V1531t kl_V1531th
-                                              !(kl_V1531@(Cons (ApplC (Func "pr" _))
-                                                               (!(kl_V1531t@(Cons (!kl_V1531th)
-                                                                                  (Atom (Nil))))))) -> pat_cond_5 kl_V1531 kl_V1531t kl_V1531th
-                                              _ -> pat_cond_9
-
-kl_shen_make_string_macro :: Types.KLValue ->
-                             Types.KLContext Types.Env Types.KLValue
-kl_shen_make_string_macro (!kl_V1533) = do let pat_cond_0 kl_V1533 kl_V1533t kl_V1533th kl_V1533tt = do kl_V1533th `pseq` (kl_V1533tt `pseq` kl_shen_mkstr kl_V1533th kl_V1533tt)
-                                               pat_cond_1 = do do return kl_V1533
-                                            in case kl_V1533 of
-                                                   !(kl_V1533@(Cons (Atom (UnboundSym "make-string"))
-                                                                    (!(kl_V1533t@(Cons (!kl_V1533th)
-                                                                                       (!kl_V1533tt)))))) -> pat_cond_0 kl_V1533 kl_V1533t kl_V1533th kl_V1533tt
-                                                   !(kl_V1533@(Cons (ApplC (PL "make-string" _))
-                                                                    (!(kl_V1533t@(Cons (!kl_V1533th)
-                                                                                       (!kl_V1533tt)))))) -> pat_cond_0 kl_V1533 kl_V1533t kl_V1533th kl_V1533tt
-                                                   !(kl_V1533@(Cons (ApplC (Func "make-string" _))
-                                                                    (!(kl_V1533t@(Cons (!kl_V1533th)
-                                                                                       (!kl_V1533tt)))))) -> pat_cond_0 kl_V1533 kl_V1533t kl_V1533th kl_V1533tt
-                                                   _ -> pat_cond_1
-
-kl_shen_input_macro :: Types.KLValue ->
-                       Types.KLContext Types.Env Types.KLValue
-kl_shen_input_macro (!kl_V1535) = do let pat_cond_0 kl_V1535 = do !appl_1 <- klCons (ApplC (PL "stinput" kl_stinput)) (Types.Atom Types.Nil)
-                                                                  !appl_2 <- appl_1 `pseq` klCons appl_1 (Types.Atom Types.Nil)
-                                                                  appl_2 `pseq` klCons (ApplC (wrapNamed "lineread" kl_lineread)) appl_2
-                                         pat_cond_3 kl_V1535 = do !appl_4 <- klCons (ApplC (PL "stinput" kl_stinput)) (Types.Atom Types.Nil)
-                                                                  !appl_5 <- appl_4 `pseq` klCons appl_4 (Types.Atom Types.Nil)
-                                                                  appl_5 `pseq` klCons (ApplC (wrapNamed "input" kl_input)) appl_5
-                                         pat_cond_6 kl_V1535 = do !appl_7 <- klCons (ApplC (PL "stinput" kl_stinput)) (Types.Atom Types.Nil)
-                                                                  !appl_8 <- appl_7 `pseq` klCons appl_7 (Types.Atom Types.Nil)
-                                                                  appl_8 `pseq` klCons (ApplC (wrapNamed "read" kl_read)) appl_8
-                                         pat_cond_9 kl_V1535 kl_V1535t kl_V1535th = do !appl_10 <- klCons (ApplC (PL "stinput" kl_stinput)) (Types.Atom Types.Nil)
-                                                                                       !appl_11 <- appl_10 `pseq` klCons appl_10 (Types.Atom Types.Nil)
-                                                                                       !appl_12 <- kl_V1535th `pseq` (appl_11 `pseq` klCons kl_V1535th appl_11)
-                                                                                       appl_12 `pseq` klCons (ApplC (wrapNamed "input+" kl_inputPlus)) appl_12
-                                         pat_cond_13 kl_V1535 = do !appl_14 <- klCons (ApplC (PL "stinput" kl_stinput)) (Types.Atom Types.Nil)
-                                                                   !appl_15 <- appl_14 `pseq` klCons appl_14 (Types.Atom Types.Nil)
-                                                                   appl_15 `pseq` klCons (ApplC (wrapNamed "read-byte" readByte)) appl_15
-                                         pat_cond_16 = do do return kl_V1535
-                                      in case kl_V1535 of
-                                             !(kl_V1535@(Cons (Atom (UnboundSym "lineread"))
-                                                              (Atom (Nil)))) -> pat_cond_0 kl_V1535
-                                             !(kl_V1535@(Cons (ApplC (PL "lineread" _))
-                                                              (Atom (Nil)))) -> pat_cond_0 kl_V1535
-                                             !(kl_V1535@(Cons (ApplC (Func "lineread" _))
-                                                              (Atom (Nil)))) -> pat_cond_0 kl_V1535
-                                             !(kl_V1535@(Cons (Atom (UnboundSym "input"))
-                                                              (Atom (Nil)))) -> pat_cond_3 kl_V1535
-                                             !(kl_V1535@(Cons (ApplC (PL "input" _))
-                                                              (Atom (Nil)))) -> pat_cond_3 kl_V1535
-                                             !(kl_V1535@(Cons (ApplC (Func "input" _))
-                                                              (Atom (Nil)))) -> pat_cond_3 kl_V1535
-                                             !(kl_V1535@(Cons (Atom (UnboundSym "read"))
-                                                              (Atom (Nil)))) -> pat_cond_6 kl_V1535
-                                             !(kl_V1535@(Cons (ApplC (PL "read" _))
-                                                              (Atom (Nil)))) -> pat_cond_6 kl_V1535
-                                             !(kl_V1535@(Cons (ApplC (Func "read" _))
-                                                              (Atom (Nil)))) -> pat_cond_6 kl_V1535
-                                             !(kl_V1535@(Cons (Atom (UnboundSym "input+"))
-                                                              (!(kl_V1535t@(Cons (!kl_V1535th)
-                                                                                 (Atom (Nil))))))) -> pat_cond_9 kl_V1535 kl_V1535t kl_V1535th
-                                             !(kl_V1535@(Cons (ApplC (PL "input+" _))
-                                                              (!(kl_V1535t@(Cons (!kl_V1535th)
-                                                                                 (Atom (Nil))))))) -> pat_cond_9 kl_V1535 kl_V1535t kl_V1535th
-                                             !(kl_V1535@(Cons (ApplC (Func "input+" _))
-                                                              (!(kl_V1535t@(Cons (!kl_V1535th)
-                                                                                 (Atom (Nil))))))) -> pat_cond_9 kl_V1535 kl_V1535t kl_V1535th
-                                             !(kl_V1535@(Cons (Atom (UnboundSym "read-byte"))
-                                                              (Atom (Nil)))) -> pat_cond_13 kl_V1535
-                                             !(kl_V1535@(Cons (ApplC (PL "read-byte" _))
-                                                              (Atom (Nil)))) -> pat_cond_13 kl_V1535
-                                             !(kl_V1535@(Cons (ApplC (Func "read-byte" _))
-                                                              (Atom (Nil)))) -> pat_cond_13 kl_V1535
-                                             _ -> pat_cond_16
-
-kl_shen_compose :: Types.KLValue ->
-                   Types.KLValue -> Types.KLContext Types.Env Types.KLValue
-kl_shen_compose (!kl_V1538) (!kl_V1539) = do let pat_cond_0 = do return kl_V1539
-                                                 pat_cond_1 kl_V1538 kl_V1538h kl_V1538t = do !appl_2 <- kl_V1539 `pseq` applyWrapper kl_V1538h [kl_V1539]
-                                                                                              kl_V1538t `pseq` (appl_2 `pseq` kl_shen_compose kl_V1538t appl_2)
-                                                 pat_cond_3 = do do kl_shen_f_error (ApplC (wrapNamed "shen.compose" kl_shen_compose))
-                                              in case kl_V1538 of
-                                                     kl_V1538@(Atom (Nil)) -> pat_cond_0
-                                                     !(kl_V1538@(Cons (!kl_V1538h)
-                                                                      (!kl_V1538t))) -> pat_cond_1 kl_V1538 kl_V1538h kl_V1538t
-                                                     _ -> pat_cond_3
-
-kl_shen_compile_macro :: Types.KLValue ->
-                         Types.KLContext Types.Env Types.KLValue
-kl_shen_compile_macro (!kl_V1541) = do let pat_cond_0 kl_V1541 kl_V1541t kl_V1541th kl_V1541tt kl_V1541tth = do !appl_1 <- klCons (Types.Atom (Types.UnboundSym "E")) (Types.Atom Types.Nil)
-                                                                                                                !appl_2 <- appl_1 `pseq` klCons (ApplC (wrapNamed "cons?" consP)) appl_1
-                                                                                                                !appl_3 <- klCons (Types.Atom (Types.UnboundSym "E")) (Types.Atom Types.Nil)
-                                                                                                                !appl_4 <- appl_3 `pseq` klCons (Types.Atom (Types.Str "parse error here: ~S~%")) appl_3
-                                                                                                                !appl_5 <- appl_4 `pseq` klCons (Types.Atom (Types.UnboundSym "error")) appl_4
-                                                                                                                !appl_6 <- klCons (Types.Atom (Types.Str "parse error~%")) (Types.Atom Types.Nil)
-                                                                                                                !appl_7 <- appl_6 `pseq` klCons (Types.Atom (Types.UnboundSym "error")) appl_6
-                                                                                                                !appl_8 <- appl_7 `pseq` klCons appl_7 (Types.Atom Types.Nil)
-                                                                                                                !appl_9 <- appl_5 `pseq` (appl_8 `pseq` klCons appl_5 appl_8)
-                                                                                                                !appl_10 <- appl_2 `pseq` (appl_9 `pseq` klCons appl_2 appl_9)
-                                                                                                                !appl_11 <- appl_10 `pseq` klCons (Types.Atom (Types.UnboundSym "if")) appl_10
-                                                                                                                !appl_12 <- appl_11 `pseq` klCons appl_11 (Types.Atom Types.Nil)
-                                                                                                                !appl_13 <- appl_12 `pseq` klCons (Types.Atom (Types.UnboundSym "E")) appl_12
-                                                                                                                !appl_14 <- appl_13 `pseq` klCons (Types.Atom (Types.UnboundSym "lambda")) appl_13
-                                                                                                                !appl_15 <- appl_14 `pseq` klCons appl_14 (Types.Atom Types.Nil)
-                                                                                                                !appl_16 <- kl_V1541tth `pseq` (appl_15 `pseq` klCons kl_V1541tth appl_15)
-                                                                                                                !appl_17 <- kl_V1541th `pseq` (appl_16 `pseq` klCons kl_V1541th appl_16)
-                                                                                                                appl_17 `pseq` klCons (ApplC (wrapNamed "compile" kl_compile)) appl_17
-                                           pat_cond_18 = do do return kl_V1541
-                                        in case kl_V1541 of
-                                               !(kl_V1541@(Cons (Atom (UnboundSym "compile"))
-                                                                (!(kl_V1541t@(Cons (!kl_V1541th)
-                                                                                   (!(kl_V1541tt@(Cons (!kl_V1541tth)
-                                                                                                       (Atom (Nil)))))))))) -> pat_cond_0 kl_V1541 kl_V1541t kl_V1541th kl_V1541tt kl_V1541tth
-                                               !(kl_V1541@(Cons (ApplC (PL "compile" _))
-                                                                (!(kl_V1541t@(Cons (!kl_V1541th)
-                                                                                   (!(kl_V1541tt@(Cons (!kl_V1541tth)
-                                                                                                       (Atom (Nil)))))))))) -> pat_cond_0 kl_V1541 kl_V1541t kl_V1541th kl_V1541tt kl_V1541tth
-                                               !(kl_V1541@(Cons (ApplC (Func "compile" _))
-                                                                (!(kl_V1541t@(Cons (!kl_V1541th)
-                                                                                   (!(kl_V1541tt@(Cons (!kl_V1541tth)
-                                                                                                       (Atom (Nil)))))))))) -> pat_cond_0 kl_V1541 kl_V1541t kl_V1541th kl_V1541tt kl_V1541tth
-                                               _ -> pat_cond_18
-
-kl_shen_prolog_macro :: Types.KLValue ->
-                        Types.KLContext Types.Env Types.KLValue
-kl_shen_prolog_macro (!kl_V1543) = do let pat_cond_0 kl_V1543 kl_V1543t = do let !appl_1 = ApplC (Func "lambda" (Context (\(!kl_F) -> do let !appl_2 = ApplC (Func "lambda" (Context (\(!kl_Receive) -> do let !appl_3 = ApplC (Func "lambda" (Context (\(!kl_PrologDef) -> do let !appl_4 = ApplC (Func "lambda" (Context (\(!kl_Query) -> do return kl_Query)))
-                                                                                                                                                                                                                                                                               !appl_5 <- klCons (ApplC (PL "shen.start-new-prolog-process" kl_shen_start_new_prolog_process)) (Types.Atom Types.Nil)
-                                                                                                                                                                                                                                                                               !appl_6 <- klCons (Atom (B True)) (Types.Atom Types.Nil)
-                                                                                                                                                                                                                                                                               !appl_7 <- appl_6 `pseq` klCons (Types.Atom (Types.UnboundSym "freeze")) appl_6
-                                                                                                                                                                                                                                                                               !appl_8 <- appl_7 `pseq` klCons appl_7 (Types.Atom Types.Nil)
-                                                                                                                                                                                                                                                                               !appl_9 <- appl_5 `pseq` (appl_8 `pseq` klCons appl_5 appl_8)
-                                                                                                                                                                                                                                                                               !appl_10 <- kl_Receive `pseq` (appl_9 `pseq` kl_append kl_Receive appl_9)
-                                                                                                                                                                                                                                                                               !appl_11 <- kl_F `pseq` (appl_10 `pseq` klCons kl_F appl_10)
-                                                                                                                                                                                                                                                                               appl_11 `pseq` applyWrapper appl_4 [appl_11])))
-                                                                                                                                                                                                           !appl_12 <- kl_F `pseq` klCons kl_F (Types.Atom Types.Nil)
-                                                                                                                                                                                                           !appl_13 <- appl_12 `pseq` klCons (Types.Atom (Types.UnboundSym "defprolog")) appl_12
-                                                                                                                                                                                                           !appl_14 <- klCons (Types.Atom (Types.UnboundSym "<--")) (Types.Atom Types.Nil)
-                                                                                                                                                                                                           !appl_15 <- kl_V1543t `pseq` kl_shen_pass_literals kl_V1543t
-                                                                                                                                                                                                           !appl_16 <- klCons (Types.Atom (Types.UnboundSym ";")) (Types.Atom Types.Nil)
-                                                                                                                                                                                                           !appl_17 <- appl_15 `pseq` (appl_16 `pseq` kl_append appl_15 appl_16)
-                                                                                                                                                                                                           !appl_18 <- appl_14 `pseq` (appl_17 `pseq` kl_append appl_14 appl_17)
-                                                                                                                                                                                                           !appl_19 <- kl_Receive `pseq` (appl_18 `pseq` kl_append kl_Receive appl_18)
-                                                                                                                                                                                                           !appl_20 <- appl_13 `pseq` (appl_19 `pseq` kl_append appl_13 appl_19)
-                                                                                                                                                                                                           !appl_21 <- appl_20 `pseq` kl_eval appl_20
-                                                                                                                                                                                                           appl_21 `pseq` applyWrapper appl_3 [appl_21])))
-                                                                                                                                         !appl_22 <- kl_V1543t `pseq` kl_shen_receive_terms kl_V1543t
-                                                                                                                                         appl_22 `pseq` applyWrapper appl_2 [appl_22])))
-                                                                             !appl_23 <- kl_gensym (Types.Atom (Types.UnboundSym "shen.f"))
-                                                                             appl_23 `pseq` applyWrapper appl_1 [appl_23]
-                                          pat_cond_24 = do do return kl_V1543
-                                       in case kl_V1543 of
-                                              !(kl_V1543@(Cons (Atom (UnboundSym "prolog?"))
-                                                               (!kl_V1543t))) -> pat_cond_0 kl_V1543 kl_V1543t
-                                              !(kl_V1543@(Cons (ApplC (PL "prolog?" _))
-                                                               (!kl_V1543t))) -> pat_cond_0 kl_V1543 kl_V1543t
-                                              !(kl_V1543@(Cons (ApplC (Func "prolog?" _))
-                                                               (!kl_V1543t))) -> pat_cond_0 kl_V1543 kl_V1543t
-                                              _ -> pat_cond_24
-
-kl_shen_receive_terms :: Types.KLValue ->
-                         Types.KLContext Types.Env Types.KLValue
-kl_shen_receive_terms (!kl_V1549) = do let pat_cond_0 = do return (Types.Atom Types.Nil)
-                                           pat_cond_1 kl_V1549 kl_V1549h kl_V1549ht kl_V1549hth kl_V1549t = do !appl_2 <- kl_V1549t `pseq` kl_shen_receive_terms kl_V1549t
-                                                                                                               kl_V1549hth `pseq` (appl_2 `pseq` klCons kl_V1549hth appl_2)
-                                           pat_cond_3 kl_V1549 kl_V1549h kl_V1549t = do kl_V1549t `pseq` kl_shen_receive_terms kl_V1549t
-                                           pat_cond_4 = do do kl_shen_f_error (ApplC (wrapNamed "shen.receive-terms" kl_shen_receive_terms))
-                                        in case kl_V1549 of
-                                               kl_V1549@(Atom (Nil)) -> pat_cond_0
-                                               !(kl_V1549@(Cons (!(kl_V1549h@(Cons (Atom (UnboundSym "shen.receive"))
-                                                                                   (!(kl_V1549ht@(Cons (!kl_V1549hth)
-                                                                                                       (Atom (Nil))))))))
-                                                                (!kl_V1549t))) -> pat_cond_1 kl_V1549 kl_V1549h kl_V1549ht kl_V1549hth kl_V1549t
-                                               !(kl_V1549@(Cons (!(kl_V1549h@(Cons (ApplC (PL "shen.receive"
-                                                                                              _))
-                                                                                   (!(kl_V1549ht@(Cons (!kl_V1549hth)
-                                                                                                       (Atom (Nil))))))))
-                                                                (!kl_V1549t))) -> pat_cond_1 kl_V1549 kl_V1549h kl_V1549ht kl_V1549hth kl_V1549t
-                                               !(kl_V1549@(Cons (!(kl_V1549h@(Cons (ApplC (Func "shen.receive"
-                                                                                                _))
-                                                                                   (!(kl_V1549ht@(Cons (!kl_V1549hth)
-                                                                                                       (Atom (Nil))))))))
-                                                                (!kl_V1549t))) -> pat_cond_1 kl_V1549 kl_V1549h kl_V1549ht kl_V1549hth kl_V1549t
-                                               !(kl_V1549@(Cons (!kl_V1549h)
-                                                                (!kl_V1549t))) -> pat_cond_3 kl_V1549 kl_V1549h kl_V1549t
-                                               _ -> pat_cond_4
-
-kl_shen_pass_literals :: Types.KLValue ->
-                         Types.KLContext Types.Env Types.KLValue
-kl_shen_pass_literals (!kl_V1553) = do let pat_cond_0 = do return (Types.Atom Types.Nil)
-                                           pat_cond_1 kl_V1553 kl_V1553h kl_V1553ht kl_V1553hth kl_V1553t = do kl_V1553t `pseq` kl_shen_pass_literals kl_V1553t
-                                           pat_cond_2 kl_V1553 kl_V1553h kl_V1553t = do !appl_3 <- kl_V1553t `pseq` kl_shen_pass_literals kl_V1553t
-                                                                                        kl_V1553h `pseq` (appl_3 `pseq` klCons kl_V1553h appl_3)
-                                           pat_cond_4 = do do kl_shen_f_error (ApplC (wrapNamed "shen.pass-literals" kl_shen_pass_literals))
-                                        in case kl_V1553 of
-                                               kl_V1553@(Atom (Nil)) -> pat_cond_0
-                                               !(kl_V1553@(Cons (!(kl_V1553h@(Cons (Atom (UnboundSym "shen.receive"))
-                                                                                   (!(kl_V1553ht@(Cons (!kl_V1553hth)
-                                                                                                       (Atom (Nil))))))))
-                                                                (!kl_V1553t))) -> pat_cond_1 kl_V1553 kl_V1553h kl_V1553ht kl_V1553hth kl_V1553t
-                                               !(kl_V1553@(Cons (!(kl_V1553h@(Cons (ApplC (PL "shen.receive"
-                                                                                              _))
-                                                                                   (!(kl_V1553ht@(Cons (!kl_V1553hth)
-                                                                                                       (Atom (Nil))))))))
-                                                                (!kl_V1553t))) -> pat_cond_1 kl_V1553 kl_V1553h kl_V1553ht kl_V1553hth kl_V1553t
-                                               !(kl_V1553@(Cons (!(kl_V1553h@(Cons (ApplC (Func "shen.receive"
-                                                                                                _))
-                                                                                   (!(kl_V1553ht@(Cons (!kl_V1553hth)
-                                                                                                       (Atom (Nil))))))))
-                                                                (!kl_V1553t))) -> pat_cond_1 kl_V1553 kl_V1553h kl_V1553ht kl_V1553hth kl_V1553t
-                                               !(kl_V1553@(Cons (!kl_V1553h)
-                                                                (!kl_V1553t))) -> pat_cond_2 kl_V1553 kl_V1553h kl_V1553t
-                                               _ -> pat_cond_4
-
-kl_shen_defprolog_macro :: Types.KLValue ->
-                           Types.KLContext Types.Env Types.KLValue
-kl_shen_defprolog_macro (!kl_V1555) = do let pat_cond_0 kl_V1555 kl_V1555t kl_V1555th kl_V1555tt = do let !appl_1 = ApplC (Func "lambda" (Context (\(!kl_Y) -> do kl_Y `pseq` kl_shen_LBdefprologRB kl_Y)))
-                                                                                                      let !appl_2 = ApplC (Func "lambda" (Context (\(!kl_Y) -> do kl_V1555th `pseq` (kl_Y `pseq` kl_shen_prolog_error kl_V1555th kl_Y))))
-                                                                                                      appl_1 `pseq` (kl_V1555t `pseq` (appl_2 `pseq` kl_compile appl_1 kl_V1555t appl_2))
-                                             pat_cond_3 = do do return kl_V1555
-                                          in case kl_V1555 of
-                                                 !(kl_V1555@(Cons (Atom (UnboundSym "defprolog"))
-                                                                  (!(kl_V1555t@(Cons (!kl_V1555th)
-                                                                                     (!kl_V1555tt)))))) -> pat_cond_0 kl_V1555 kl_V1555t kl_V1555th kl_V1555tt
-                                                 !(kl_V1555@(Cons (ApplC (PL "defprolog" _))
-                                                                  (!(kl_V1555t@(Cons (!kl_V1555th)
-                                                                                     (!kl_V1555tt)))))) -> pat_cond_0 kl_V1555 kl_V1555t kl_V1555th kl_V1555tt
-                                                 !(kl_V1555@(Cons (ApplC (Func "defprolog" _))
-                                                                  (!(kl_V1555t@(Cons (!kl_V1555th)
-                                                                                     (!kl_V1555tt)))))) -> pat_cond_0 kl_V1555 kl_V1555t kl_V1555th kl_V1555tt
-                                                 _ -> pat_cond_3
-
-kl_shen_datatype_macro :: Types.KLValue ->
-                          Types.KLContext Types.Env Types.KLValue
-kl_shen_datatype_macro (!kl_V1557) = do let pat_cond_0 kl_V1557 kl_V1557t kl_V1557th kl_V1557tt = do !appl_1 <- kl_V1557th `pseq` kl_shen_intern_type kl_V1557th
-                                                                                                     !appl_2 <- klCons (Types.Atom (Types.UnboundSym "X")) (Types.Atom Types.Nil)
-                                                                                                     !appl_3 <- appl_2 `pseq` klCons (ApplC (wrapNamed "shen.<datatype-rules>" kl_shen_LBdatatype_rulesRB)) appl_2
-                                                                                                     !appl_4 <- appl_3 `pseq` klCons appl_3 (Types.Atom Types.Nil)
-                                                                                                     !appl_5 <- appl_4 `pseq` klCons (Types.Atom (Types.UnboundSym "X")) appl_4
-                                                                                                     !appl_6 <- appl_5 `pseq` klCons (Types.Atom (Types.UnboundSym "lambda")) appl_5
-                                                                                                     !appl_7 <- kl_V1557tt `pseq` kl_shen_rcons_form kl_V1557tt
-                                                                                                     !appl_8 <- klCons (ApplC (wrapNamed "shen.datatype-error" kl_shen_datatype_error)) (Types.Atom Types.Nil)
-                                                                                                     !appl_9 <- appl_8 `pseq` klCons (ApplC (wrapNamed "function" kl_function)) appl_8
-                                                                                                     !appl_10 <- appl_9 `pseq` klCons appl_9 (Types.Atom Types.Nil)
-                                                                                                     !appl_11 <- appl_7 `pseq` (appl_10 `pseq` klCons appl_7 appl_10)
-                                                                                                     !appl_12 <- appl_6 `pseq` (appl_11 `pseq` klCons appl_6 appl_11)
-                                                                                                     !appl_13 <- appl_12 `pseq` klCons (ApplC (wrapNamed "compile" kl_compile)) appl_12
-                                                                                                     !appl_14 <- appl_13 `pseq` klCons appl_13 (Types.Atom Types.Nil)
-                                                                                                     !appl_15 <- appl_1 `pseq` (appl_14 `pseq` klCons appl_1 appl_14)
-                                                                                                     appl_15 `pseq` klCons (ApplC (wrapNamed "shen.process-datatype" kl_shen_process_datatype)) appl_15
-                                            pat_cond_16 = do do return kl_V1557
-                                         in case kl_V1557 of
-                                                !(kl_V1557@(Cons (Atom (UnboundSym "datatype"))
-                                                                 (!(kl_V1557t@(Cons (!kl_V1557th)
-                                                                                    (!kl_V1557tt)))))) -> pat_cond_0 kl_V1557 kl_V1557t kl_V1557th kl_V1557tt
-                                                !(kl_V1557@(Cons (ApplC (PL "datatype" _))
-                                                                 (!(kl_V1557t@(Cons (!kl_V1557th)
-                                                                                    (!kl_V1557tt)))))) -> pat_cond_0 kl_V1557 kl_V1557t kl_V1557th kl_V1557tt
-                                                !(kl_V1557@(Cons (ApplC (Func "datatype" _))
-                                                                 (!(kl_V1557t@(Cons (!kl_V1557th)
-                                                                                    (!kl_V1557tt)))))) -> pat_cond_0 kl_V1557 kl_V1557t kl_V1557th kl_V1557tt
-                                                _ -> pat_cond_16
-
-kl_shen_intern_type :: Types.KLValue ->
-                       Types.KLContext Types.Env Types.KLValue
-kl_shen_intern_type (!kl_V1559) = do !appl_0 <- kl_V1559 `pseq` str kl_V1559
-                                     !appl_1 <- appl_0 `pseq` cn (Types.Atom (Types.Str "type#")) appl_0
-                                     appl_1 `pseq` intern appl_1
-
-kl_shen_Ats_macro :: Types.KLValue ->
-                     Types.KLContext Types.Env Types.KLValue
-kl_shen_Ats_macro (!kl_V1561) = do let pat_cond_0 kl_V1561 kl_V1561t kl_V1561th kl_V1561tt kl_V1561tth kl_V1561ttt kl_V1561ttth kl_V1561tttt = do !appl_1 <- kl_V1561tt `pseq` klCons (ApplC (wrapNamed "@s" kl_Ats)) kl_V1561tt
-                                                                                                                                                  !appl_2 <- appl_1 `pseq` kl_shen_Ats_macro appl_1
-                                                                                                                                                  !appl_3 <- appl_2 `pseq` klCons appl_2 (Types.Atom Types.Nil)
-                                                                                                                                                  !appl_4 <- kl_V1561th `pseq` (appl_3 `pseq` klCons kl_V1561th appl_3)
-                                                                                                                                                  appl_4 `pseq` klCons (ApplC (wrapNamed "@s" kl_Ats)) appl_4
-                                       pat_cond_5 = do !kl_if_6 <- let pat_cond_7 kl_V1561 kl_V1561h kl_V1561t = do !kl_if_8 <- let pat_cond_9 = do !kl_if_10 <- let pat_cond_11 kl_V1561t kl_V1561th kl_V1561tt = do !kl_if_12 <- let pat_cond_13 kl_V1561tt kl_V1561tth kl_V1561ttt = do !kl_if_14 <- let pat_cond_15 = do !kl_if_16 <- kl_V1561th `pseq` stringP kl_V1561th
-                                                                                                                                                                                                                                                                                                                             case kl_if_16 of
-                                                                                                                                                                                                                                                                                                                                 Atom (B (True)) -> do return (Atom (B True))
-                                                                                                                                                                                                                                                                                                                                 Atom (B (False)) -> do do return (Atom (B False))
-                                                                                                                                                                                                                                                                                                                                 _ -> throwError "if: expected boolean"
-                                                                                                                                                                                                                                                                                                            pat_cond_17 = do do return (Atom (B False))
-                                                                                                                                                                                                                                                                                                         in case kl_V1561ttt of
-                                                                                                                                                                                                                                                                                                                kl_V1561ttt@(Atom (Nil)) -> pat_cond_15
-                                                                                                                                                                                                                                                                                                                _ -> pat_cond_17
-                                                                                                                                                                                                                                                                                           case kl_if_14 of
-                                                                                                                                                                                                                                                                                               Atom (B (True)) -> do return (Atom (B True))
-                                                                                                                                                                                                                                                                                               Atom (B (False)) -> do do return (Atom (B False))
-                                                                                                                                                                                                                                                                                               _ -> throwError "if: expected boolean"
-                                                                                                                                                                                                                                       pat_cond_18 = do do return (Atom (B False))
-                                                                                                                                                                                                                                    in case kl_V1561tt of
-                                                                                                                                                                                                                                           !(kl_V1561tt@(Cons (!kl_V1561tth)
-                                                                                                                                                                                                                                                              (!kl_V1561ttt))) -> pat_cond_13 kl_V1561tt kl_V1561tth kl_V1561ttt
-                                                                                                                                                                                                                                           _ -> pat_cond_18
-                                                                                                                                                                                                                      case kl_if_12 of
-                                                                                                                                                                                                                          Atom (B (True)) -> do return (Atom (B True))
-                                                                                                                                                                                                                          Atom (B (False)) -> do do return (Atom (B False))
-                                                                                                                                                                                                                          _ -> throwError "if: expected boolean"
-                                                                                                                                                                     pat_cond_19 = do do return (Atom (B False))
-                                                                                                                                                                  in case kl_V1561t of
-                                                                                                                                                                         !(kl_V1561t@(Cons (!kl_V1561th)
-                                                                                                                                                                                           (!kl_V1561tt))) -> pat_cond_11 kl_V1561t kl_V1561th kl_V1561tt
-                                                                                                                                                                         _ -> pat_cond_19
-                                                                                                                                                    case kl_if_10 of
-                                                                                                                                                        Atom (B (True)) -> do return (Atom (B True))
-                                                                                                                                                        Atom (B (False)) -> do do return (Atom (B False))
-                                                                                                                                                        _ -> throwError "if: expected boolean"
-                                                                                                                                    pat_cond_20 = do do return (Atom (B False))
-                                                                                                                                 in case kl_V1561h of
-                                                                                                                                        kl_V1561h@(Atom (UnboundSym "@s")) -> pat_cond_9
-                                                                                                                                        kl_V1561h@(ApplC (PL "@s"
-                                                                                                                                                             _)) -> pat_cond_9
-                                                                                                                                        kl_V1561h@(ApplC (Func "@s"
-                                                                                                                                                               _)) -> pat_cond_9
-                                                                                                                                        _ -> pat_cond_20
-                                                                                                                    case kl_if_8 of
-                                                                                                                        Atom (B (True)) -> do return (Atom (B True))
-                                                                                                                        Atom (B (False)) -> do do return (Atom (B False))
-                                                                                                                        _ -> throwError "if: expected boolean"
-                                                                       pat_cond_21 = do do return (Atom (B False))
-                                                                    in case kl_V1561 of
-                                                                           !(kl_V1561@(Cons (!kl_V1561h)
-                                                                                            (!kl_V1561t))) -> pat_cond_7 kl_V1561 kl_V1561h kl_V1561t
-                                                                           _ -> pat_cond_21
-                                                       case kl_if_6 of
-                                                           Atom (B (True)) -> do let !appl_22 = ApplC (Func "lambda" (Context (\(!kl_E) -> do !appl_23 <- kl_E `pseq` kl_length kl_E
-                                                                                                                                              !kl_if_24 <- appl_23 `pseq` greaterThan appl_23 (Types.Atom (Types.N (Types.KI 1)))
-                                                                                                                                              case kl_if_24 of
-                                                                                                                                                  Atom (B (True)) -> do !appl_25 <- kl_V1561 `pseq` tl kl_V1561
-                                                                                                                                                                        !appl_26 <- appl_25 `pseq` tl appl_25
-                                                                                                                                                                        !appl_27 <- kl_E `pseq` (appl_26 `pseq` kl_append kl_E appl_26)
-                                                                                                                                                                        !appl_28 <- appl_27 `pseq` klCons (ApplC (wrapNamed "@s" kl_Ats)) appl_27
-                                                                                                                                                                        appl_28 `pseq` kl_shen_Ats_macro appl_28
-                                                                                                                                                  Atom (B (False)) -> do do return kl_V1561
-                                                                                                                                                  _ -> throwError "if: expected boolean")))
-                                                                                 !appl_29 <- kl_V1561 `pseq` tl kl_V1561
-                                                                                 !appl_30 <- appl_29 `pseq` hd appl_29
-                                                                                 !appl_31 <- appl_30 `pseq` kl_explode appl_30
-                                                                                 appl_31 `pseq` applyWrapper appl_22 [appl_31]
-                                                           Atom (B (False)) -> do do return kl_V1561
-                                                           _ -> throwError "if: expected boolean"
-                                    in case kl_V1561 of
-                                           !(kl_V1561@(Cons (Atom (UnboundSym "@s"))
-                                                            (!(kl_V1561t@(Cons (!kl_V1561th)
-                                                                               (!(kl_V1561tt@(Cons (!kl_V1561tth)
-                                                                                                   (!(kl_V1561ttt@(Cons (!kl_V1561ttth)
-                                                                                                                        (!kl_V1561tttt)))))))))))) -> pat_cond_0 kl_V1561 kl_V1561t kl_V1561th kl_V1561tt kl_V1561tth kl_V1561ttt kl_V1561ttth kl_V1561tttt
-                                           !(kl_V1561@(Cons (ApplC (PL "@s" _))
-                                                            (!(kl_V1561t@(Cons (!kl_V1561th)
-                                                                               (!(kl_V1561tt@(Cons (!kl_V1561tth)
-                                                                                                   (!(kl_V1561ttt@(Cons (!kl_V1561ttth)
-                                                                                                                        (!kl_V1561tttt)))))))))))) -> pat_cond_0 kl_V1561 kl_V1561t kl_V1561th kl_V1561tt kl_V1561tth kl_V1561ttt kl_V1561ttth kl_V1561tttt
-                                           !(kl_V1561@(Cons (ApplC (Func "@s" _))
-                                                            (!(kl_V1561t@(Cons (!kl_V1561th)
-                                                                               (!(kl_V1561tt@(Cons (!kl_V1561tth)
-                                                                                                   (!(kl_V1561ttt@(Cons (!kl_V1561ttth)
-                                                                                                                        (!kl_V1561tttt)))))))))))) -> pat_cond_0 kl_V1561 kl_V1561t kl_V1561th kl_V1561tt kl_V1561tth kl_V1561ttt kl_V1561ttth kl_V1561tttt
-                                           _ -> pat_cond_5
-
-kl_shen_synonyms_macro :: Types.KLValue ->
-                          Types.KLContext Types.Env Types.KLValue
-kl_shen_synonyms_macro (!kl_V1563) = do let pat_cond_0 kl_V1563 kl_V1563t = do !appl_1 <- kl_V1563t `pseq` kl_shen_curry_synonyms kl_V1563t
-                                                                               !appl_2 <- appl_1 `pseq` kl_shen_rcons_form appl_1
-                                                                               !appl_3 <- appl_2 `pseq` klCons appl_2 (Types.Atom Types.Nil)
-                                                                               appl_3 `pseq` klCons (ApplC (wrapNamed "shen.synonyms-help" kl_shen_synonyms_help)) appl_3
-                                            pat_cond_4 = do do return kl_V1563
-                                         in case kl_V1563 of
-                                                !(kl_V1563@(Cons (Atom (UnboundSym "synonyms"))
-                                                                 (!kl_V1563t))) -> pat_cond_0 kl_V1563 kl_V1563t
-                                                !(kl_V1563@(Cons (ApplC (PL "synonyms" _))
-                                                                 (!kl_V1563t))) -> pat_cond_0 kl_V1563 kl_V1563t
-                                                !(kl_V1563@(Cons (ApplC (Func "synonyms" _))
-                                                                 (!kl_V1563t))) -> pat_cond_0 kl_V1563 kl_V1563t
-                                                _ -> pat_cond_4
-
-kl_shen_curry_synonyms :: Types.KLValue ->
-                          Types.KLContext Types.Env Types.KLValue
-kl_shen_curry_synonyms (!kl_V1565) = do let !appl_0 = ApplC (Func "lambda" (Context (\(!kl_X) -> do kl_X `pseq` kl_shen_curry_type kl_X)))
-                                        appl_0 `pseq` (kl_V1565 `pseq` kl_map appl_0 kl_V1565)
-
-kl_shen_nl_macro :: Types.KLValue ->
-                    Types.KLContext Types.Env Types.KLValue
-kl_shen_nl_macro (!kl_V1567) = do let pat_cond_0 kl_V1567 = do !appl_1 <- klCons (Types.Atom (Types.N (Types.KI 1))) (Types.Atom Types.Nil)
-                                                               appl_1 `pseq` klCons (ApplC (wrapNamed "nl" kl_nl)) appl_1
-                                      pat_cond_2 = do do return kl_V1567
-                                   in case kl_V1567 of
-                                          !(kl_V1567@(Cons (Atom (UnboundSym "nl"))
-                                                           (Atom (Nil)))) -> pat_cond_0 kl_V1567
-                                          !(kl_V1567@(Cons (ApplC (PL "nl" _))
-                                                           (Atom (Nil)))) -> pat_cond_0 kl_V1567
-                                          !(kl_V1567@(Cons (ApplC (Func "nl" _))
-                                                           (Atom (Nil)))) -> pat_cond_0 kl_V1567
-                                          _ -> pat_cond_2
-
-kl_shen_assoc_macro :: Types.KLValue ->
-                       Types.KLContext Types.Env Types.KLValue
-kl_shen_assoc_macro (!kl_V1569) = do !kl_if_0 <- let pat_cond_1 kl_V1569 kl_V1569h kl_V1569t = do !kl_if_2 <- let pat_cond_3 kl_V1569t kl_V1569th kl_V1569tt = do !kl_if_4 <- let pat_cond_5 kl_V1569tt kl_V1569tth kl_V1569ttt = do !kl_if_6 <- let pat_cond_7 kl_V1569ttt kl_V1569ttth kl_V1569tttt = do !appl_8 <- klCons (ApplC (wrapNamed "do" kl_do)) (Types.Atom Types.Nil)
-                                                                                                                                                                                                                                                                                                           !appl_9 <- appl_8 `pseq` klCons (ApplC (wrapNamed "*" multiply)) appl_8
-                                                                                                                                                                                                                                                                                                           !appl_10 <- appl_9 `pseq` klCons (ApplC (wrapNamed "+" add)) appl_9
-                                                                                                                                                                                                                                                                                                           !appl_11 <- appl_10 `pseq` klCons (Types.Atom (Types.UnboundSym "or")) appl_10
-                                                                                                                                                                                                                                                                                                           !appl_12 <- appl_11 `pseq` klCons (Types.Atom (Types.UnboundSym "and")) appl_11
-                                                                                                                                                                                                                                                                                                           !appl_13 <- appl_12 `pseq` klCons (ApplC (wrapNamed "append" kl_append)) appl_12
-                                                                                                                                                                                                                                                                                                           !appl_14 <- appl_13 `pseq` klCons (ApplC (wrapNamed "@v" kl_Atv)) appl_13
-                                                                                                                                                                                                                                                                                                           !appl_15 <- appl_14 `pseq` klCons (ApplC (wrapNamed "@p" kl_Atp)) appl_14
-                                                                                                                                                                                                                                                                                                           !kl_if_16 <- kl_V1569h `pseq` (appl_15 `pseq` kl_elementP kl_V1569h appl_15)
-                                                                                                                                                                                                                                                                                                           case kl_if_16 of
-                                                                                                                                                                                                                                                                                                               Atom (B (True)) -> do return (Atom (B True))
-                                                                                                                                                                                                                                                                                                               Atom (B (False)) -> do do return (Atom (B False))
-                                                                                                                                                                                                                                                                                                               _ -> throwError "if: expected boolean"
-                                                                                                                                                                                                                                                     pat_cond_17 = do do return (Atom (B False))
-                                                                                                                                                                                                                                                  in case kl_V1569ttt of
-                                                                                                                                                                                                                                                         !(kl_V1569ttt@(Cons (!kl_V1569ttth)
-                                                                                                                                                                                                                                                                             (!kl_V1569tttt))) -> pat_cond_7 kl_V1569ttt kl_V1569ttth kl_V1569tttt
-                                                                                                                                                                                                                                                         _ -> pat_cond_17
-                                                                                                                                                                                                                                     case kl_if_6 of
-                                                                                                                                                                                                                                         Atom (B (True)) -> do return (Atom (B True))
-                                                                                                                                                                                                                                         Atom (B (False)) -> do do return (Atom (B False))
-                                                                                                                                                                                                                                         _ -> throwError "if: expected boolean"
-                                                                                                                                                                                  pat_cond_18 = do do return (Atom (B False))
-                                                                                                                                                                               in case kl_V1569tt of
-                                                                                                                                                                                      !(kl_V1569tt@(Cons (!kl_V1569tth)
-                                                                                                                                                                                                         (!kl_V1569ttt))) -> pat_cond_5 kl_V1569tt kl_V1569tth kl_V1569ttt
-                                                                                                                                                                                      _ -> pat_cond_18
-                                                                                                                                                                  case kl_if_4 of
-                                                                                                                                                                      Atom (B (True)) -> do return (Atom (B True))
-                                                                                                                                                                      Atom (B (False)) -> do do return (Atom (B False))
-                                                                                                                                                                      _ -> throwError "if: expected boolean"
-                                                                                                                  pat_cond_19 = do do return (Atom (B False))
-                                                                                                               in case kl_V1569t of
-                                                                                                                      !(kl_V1569t@(Cons (!kl_V1569th)
-                                                                                                                                        (!kl_V1569tt))) -> pat_cond_3 kl_V1569t kl_V1569th kl_V1569tt
-                                                                                                                      _ -> pat_cond_19
-                                                                                                  case kl_if_2 of
-                                                                                                      Atom (B (True)) -> do return (Atom (B True))
-                                                                                                      Atom (B (False)) -> do do return (Atom (B False))
-                                                                                                      _ -> throwError "if: expected boolean"
-                                                     pat_cond_20 = do do return (Atom (B False))
-                                                  in case kl_V1569 of
-                                                         !(kl_V1569@(Cons (!kl_V1569h)
-                                                                          (!kl_V1569t))) -> pat_cond_1 kl_V1569 kl_V1569h kl_V1569t
-                                                         _ -> pat_cond_20
-                                     case kl_if_0 of
-                                         Atom (B (True)) -> do !appl_21 <- kl_V1569 `pseq` hd kl_V1569
-                                                               !appl_22 <- kl_V1569 `pseq` tl kl_V1569
-                                                               !appl_23 <- appl_22 `pseq` hd appl_22
-                                                               !appl_24 <- kl_V1569 `pseq` hd kl_V1569
-                                                               !appl_25 <- kl_V1569 `pseq` tl kl_V1569
-                                                               !appl_26 <- appl_25 `pseq` tl appl_25
-                                                               !appl_27 <- appl_24 `pseq` (appl_26 `pseq` klCons appl_24 appl_26)
-                                                               !appl_28 <- appl_27 `pseq` kl_shen_assoc_macro appl_27
-                                                               !appl_29 <- appl_28 `pseq` klCons appl_28 (Types.Atom Types.Nil)
-                                                               !appl_30 <- appl_23 `pseq` (appl_29 `pseq` klCons appl_23 appl_29)
-                                                               appl_21 `pseq` (appl_30 `pseq` klCons appl_21 appl_30)
-                                         Atom (B (False)) -> do do return kl_V1569
-                                         _ -> throwError "if: expected boolean"
-
-kl_shen_let_macro :: Types.KLValue ->
-                     Types.KLContext Types.Env Types.KLValue
-kl_shen_let_macro (!kl_V1571) = do let pat_cond_0 kl_V1571 kl_V1571t kl_V1571th kl_V1571tt kl_V1571tth kl_V1571ttt kl_V1571ttth kl_V1571tttt kl_V1571tttth kl_V1571ttttt = do !appl_1 <- kl_V1571ttt `pseq` klCons (Types.Atom (Types.UnboundSym "let")) kl_V1571ttt
-                                                                                                                                                                              !appl_2 <- appl_1 `pseq` kl_shen_let_macro appl_1
-                                                                                                                                                                              !appl_3 <- appl_2 `pseq` klCons appl_2 (Types.Atom Types.Nil)
-                                                                                                                                                                              !appl_4 <- kl_V1571tth `pseq` (appl_3 `pseq` klCons kl_V1571tth appl_3)
-                                                                                                                                                                              !appl_5 <- kl_V1571th `pseq` (appl_4 `pseq` klCons kl_V1571th appl_4)
-                                                                                                                                                                              appl_5 `pseq` klCons (Types.Atom (Types.UnboundSym "let")) appl_5
-                                       pat_cond_6 = do do return kl_V1571
-                                    in case kl_V1571 of
-                                           !(kl_V1571@(Cons (Atom (UnboundSym "let"))
-                                                            (!(kl_V1571t@(Cons (!kl_V1571th)
-                                                                               (!(kl_V1571tt@(Cons (!kl_V1571tth)
-                                                                                                   (!(kl_V1571ttt@(Cons (!kl_V1571ttth)
-                                                                                                                        (!(kl_V1571tttt@(Cons (!kl_V1571tttth)
-                                                                                                                                              (!kl_V1571ttttt))))))))))))))) -> pat_cond_0 kl_V1571 kl_V1571t kl_V1571th kl_V1571tt kl_V1571tth kl_V1571ttt kl_V1571ttth kl_V1571tttt kl_V1571tttth kl_V1571ttttt
-                                           !(kl_V1571@(Cons (ApplC (PL "let" _))
-                                                            (!(kl_V1571t@(Cons (!kl_V1571th)
-                                                                               (!(kl_V1571tt@(Cons (!kl_V1571tth)
-                                                                                                   (!(kl_V1571ttt@(Cons (!kl_V1571ttth)
-                                                                                                                        (!(kl_V1571tttt@(Cons (!kl_V1571tttth)
-                                                                                                                                              (!kl_V1571ttttt))))))))))))))) -> pat_cond_0 kl_V1571 kl_V1571t kl_V1571th kl_V1571tt kl_V1571tth kl_V1571ttt kl_V1571ttth kl_V1571tttt kl_V1571tttth kl_V1571ttttt
-                                           !(kl_V1571@(Cons (ApplC (Func "let" _))
-                                                            (!(kl_V1571t@(Cons (!kl_V1571th)
-                                                                               (!(kl_V1571tt@(Cons (!kl_V1571tth)
-                                                                                                   (!(kl_V1571ttt@(Cons (!kl_V1571ttth)
-                                                                                                                        (!(kl_V1571tttt@(Cons (!kl_V1571tttth)
-                                                                                                                                              (!kl_V1571ttttt))))))))))))))) -> pat_cond_0 kl_V1571 kl_V1571t kl_V1571th kl_V1571tt kl_V1571tth kl_V1571ttt kl_V1571ttth kl_V1571tttt kl_V1571tttth kl_V1571ttttt
-                                           _ -> pat_cond_6
-
-kl_shen_abs_macro :: Types.KLValue ->
-                     Types.KLContext Types.Env Types.KLValue
-kl_shen_abs_macro (!kl_V1573) = do let pat_cond_0 kl_V1573 kl_V1573t kl_V1573th kl_V1573tt kl_V1573tth kl_V1573ttt kl_V1573ttth kl_V1573tttt = do !appl_1 <- kl_V1573tt `pseq` klCons (Types.Atom (Types.UnboundSym "/.")) kl_V1573tt
-                                                                                                                                                  !appl_2 <- appl_1 `pseq` kl_shen_abs_macro appl_1
-                                                                                                                                                  !appl_3 <- appl_2 `pseq` klCons appl_2 (Types.Atom Types.Nil)
-                                                                                                                                                  !appl_4 <- kl_V1573th `pseq` (appl_3 `pseq` klCons kl_V1573th appl_3)
-                                                                                                                                                  appl_4 `pseq` klCons (Types.Atom (Types.UnboundSym "lambda")) appl_4
-                                       pat_cond_5 kl_V1573 kl_V1573t kl_V1573th kl_V1573tt kl_V1573tth = do kl_V1573t `pseq` klCons (Types.Atom (Types.UnboundSym "lambda")) kl_V1573t
-                                       pat_cond_6 = do do return kl_V1573
-                                    in case kl_V1573 of
-                                           !(kl_V1573@(Cons (Atom (UnboundSym "/."))
-                                                            (!(kl_V1573t@(Cons (!kl_V1573th)
-                                                                               (!(kl_V1573tt@(Cons (!kl_V1573tth)
-                                                                                                   (!(kl_V1573ttt@(Cons (!kl_V1573ttth)
-                                                                                                                        (!kl_V1573tttt)))))))))))) -> pat_cond_0 kl_V1573 kl_V1573t kl_V1573th kl_V1573tt kl_V1573tth kl_V1573ttt kl_V1573ttth kl_V1573tttt
-                                           !(kl_V1573@(Cons (ApplC (PL "/." _))
-                                                            (!(kl_V1573t@(Cons (!kl_V1573th)
-                                                                               (!(kl_V1573tt@(Cons (!kl_V1573tth)
-                                                                                                   (!(kl_V1573ttt@(Cons (!kl_V1573ttth)
-                                                                                                                        (!kl_V1573tttt)))))))))))) -> pat_cond_0 kl_V1573 kl_V1573t kl_V1573th kl_V1573tt kl_V1573tth kl_V1573ttt kl_V1573ttth kl_V1573tttt
-                                           !(kl_V1573@(Cons (ApplC (Func "/." _))
-                                                            (!(kl_V1573t@(Cons (!kl_V1573th)
-                                                                               (!(kl_V1573tt@(Cons (!kl_V1573tth)
-                                                                                                   (!(kl_V1573ttt@(Cons (!kl_V1573ttth)
-                                                                                                                        (!kl_V1573tttt)))))))))))) -> pat_cond_0 kl_V1573 kl_V1573t kl_V1573th kl_V1573tt kl_V1573tth kl_V1573ttt kl_V1573ttth kl_V1573tttt
-                                           !(kl_V1573@(Cons (Atom (UnboundSym "/."))
-                                                            (!(kl_V1573t@(Cons (!kl_V1573th)
-                                                                               (!(kl_V1573tt@(Cons (!kl_V1573tth)
-                                                                                                   (Atom (Nil)))))))))) -> pat_cond_5 kl_V1573 kl_V1573t kl_V1573th kl_V1573tt kl_V1573tth
-                                           !(kl_V1573@(Cons (ApplC (PL "/." _))
-                                                            (!(kl_V1573t@(Cons (!kl_V1573th)
-                                                                               (!(kl_V1573tt@(Cons (!kl_V1573tth)
-                                                                                                   (Atom (Nil)))))))))) -> pat_cond_5 kl_V1573 kl_V1573t kl_V1573th kl_V1573tt kl_V1573tth
-                                           !(kl_V1573@(Cons (ApplC (Func "/." _))
-                                                            (!(kl_V1573t@(Cons (!kl_V1573th)
-                                                                               (!(kl_V1573tt@(Cons (!kl_V1573tth)
-                                                                                                   (Atom (Nil)))))))))) -> pat_cond_5 kl_V1573 kl_V1573t kl_V1573th kl_V1573tt kl_V1573tth
-                                           _ -> pat_cond_6
-
-kl_shen_cases_macro :: Types.KLValue ->
-                       Types.KLContext Types.Env Types.KLValue
-kl_shen_cases_macro (!kl_V1577) = do let pat_cond_0 kl_V1577 kl_V1577t kl_V1577tt kl_V1577tth kl_V1577ttt = do return kl_V1577tth
-                                         pat_cond_1 kl_V1577 kl_V1577t kl_V1577th kl_V1577tt kl_V1577tth = do !appl_2 <- klCons (Types.Atom (Types.Str "error: cases exhausted")) (Types.Atom Types.Nil)
-                                                                                                              !appl_3 <- appl_2 `pseq` klCons (ApplC (wrapNamed "simple-error" simpleError)) appl_2
-                                                                                                              !appl_4 <- appl_3 `pseq` klCons appl_3 (Types.Atom Types.Nil)
-                                                                                                              !appl_5 <- kl_V1577tth `pseq` (appl_4 `pseq` klCons kl_V1577tth appl_4)
-                                                                                                              !appl_6 <- kl_V1577th `pseq` (appl_5 `pseq` klCons kl_V1577th appl_5)
-                                                                                                              appl_6 `pseq` klCons (Types.Atom (Types.UnboundSym "if")) appl_6
-                                         pat_cond_7 kl_V1577 kl_V1577t kl_V1577th kl_V1577tt kl_V1577tth kl_V1577ttt = do !appl_8 <- kl_V1577ttt `pseq` klCons (Types.Atom (Types.UnboundSym "cases")) kl_V1577ttt
-                                                                                                                          !appl_9 <- appl_8 `pseq` kl_shen_cases_macro appl_8
-                                                                                                                          !appl_10 <- appl_9 `pseq` klCons appl_9 (Types.Atom Types.Nil)
-                                                                                                                          !appl_11 <- kl_V1577tth `pseq` (appl_10 `pseq` klCons kl_V1577tth appl_10)
-                                                                                                                          !appl_12 <- kl_V1577th `pseq` (appl_11 `pseq` klCons kl_V1577th appl_11)
-                                                                                                                          appl_12 `pseq` klCons (Types.Atom (Types.UnboundSym "if")) appl_12
-                                         pat_cond_13 kl_V1577 kl_V1577t kl_V1577th = do simpleError (Types.Atom (Types.Str "error: odd number of case elements\n"))
-                                         pat_cond_14 = do do return kl_V1577
-                                      in case kl_V1577 of
-                                             !(kl_V1577@(Cons (Atom (UnboundSym "cases"))
-                                                              (!(kl_V1577t@(Cons (Atom (UnboundSym "true"))
-                                                                                 (!(kl_V1577tt@(Cons (!kl_V1577tth)
-                                                                                                     (!kl_V1577ttt))))))))) -> pat_cond_0 kl_V1577 kl_V1577t kl_V1577tt kl_V1577tth kl_V1577ttt
-                                             !(kl_V1577@(Cons (Atom (UnboundSym "cases"))
-                                                              (!(kl_V1577t@(Cons (Atom (B (True)))
-                                                                                 (!(kl_V1577tt@(Cons (!kl_V1577tth)
-                                                                                                     (!kl_V1577ttt))))))))) -> pat_cond_0 kl_V1577 kl_V1577t kl_V1577tt kl_V1577tth kl_V1577ttt
-                                             !(kl_V1577@(Cons (ApplC (PL "cases" _))
-                                                              (!(kl_V1577t@(Cons (Atom (UnboundSym "true"))
-                                                                                 (!(kl_V1577tt@(Cons (!kl_V1577tth)
-                                                                                                     (!kl_V1577ttt))))))))) -> pat_cond_0 kl_V1577 kl_V1577t kl_V1577tt kl_V1577tth kl_V1577ttt
-                                             !(kl_V1577@(Cons (ApplC (PL "cases" _))
-                                                              (!(kl_V1577t@(Cons (Atom (B (True)))
-                                                                                 (!(kl_V1577tt@(Cons (!kl_V1577tth)
-                                                                                                     (!kl_V1577ttt))))))))) -> pat_cond_0 kl_V1577 kl_V1577t kl_V1577tt kl_V1577tth kl_V1577ttt
-                                             !(kl_V1577@(Cons (ApplC (Func "cases" _))
-                                                              (!(kl_V1577t@(Cons (Atom (UnboundSym "true"))
-                                                                                 (!(kl_V1577tt@(Cons (!kl_V1577tth)
-                                                                                                     (!kl_V1577ttt))))))))) -> pat_cond_0 kl_V1577 kl_V1577t kl_V1577tt kl_V1577tth kl_V1577ttt
-                                             !(kl_V1577@(Cons (ApplC (Func "cases" _))
-                                                              (!(kl_V1577t@(Cons (Atom (B (True)))
-                                                                                 (!(kl_V1577tt@(Cons (!kl_V1577tth)
-                                                                                                     (!kl_V1577ttt))))))))) -> pat_cond_0 kl_V1577 kl_V1577t kl_V1577tt kl_V1577tth kl_V1577ttt
-                                             !(kl_V1577@(Cons (Atom (UnboundSym "cases"))
-                                                              (!(kl_V1577t@(Cons (!kl_V1577th)
-                                                                                 (!(kl_V1577tt@(Cons (!kl_V1577tth)
-                                                                                                     (Atom (Nil)))))))))) -> pat_cond_1 kl_V1577 kl_V1577t kl_V1577th kl_V1577tt kl_V1577tth
-                                             !(kl_V1577@(Cons (ApplC (PL "cases" _))
-                                                              (!(kl_V1577t@(Cons (!kl_V1577th)
-                                                                                 (!(kl_V1577tt@(Cons (!kl_V1577tth)
-                                                                                                     (Atom (Nil)))))))))) -> pat_cond_1 kl_V1577 kl_V1577t kl_V1577th kl_V1577tt kl_V1577tth
-                                             !(kl_V1577@(Cons (ApplC (Func "cases" _))
-                                                              (!(kl_V1577t@(Cons (!kl_V1577th)
-                                                                                 (!(kl_V1577tt@(Cons (!kl_V1577tth)
-                                                                                                     (Atom (Nil)))))))))) -> pat_cond_1 kl_V1577 kl_V1577t kl_V1577th kl_V1577tt kl_V1577tth
-                                             !(kl_V1577@(Cons (Atom (UnboundSym "cases"))
-                                                              (!(kl_V1577t@(Cons (!kl_V1577th)
-                                                                                 (!(kl_V1577tt@(Cons (!kl_V1577tth)
-                                                                                                     (!kl_V1577ttt))))))))) -> pat_cond_7 kl_V1577 kl_V1577t kl_V1577th kl_V1577tt kl_V1577tth kl_V1577ttt
-                                             !(kl_V1577@(Cons (ApplC (PL "cases" _))
-                                                              (!(kl_V1577t@(Cons (!kl_V1577th)
-                                                                                 (!(kl_V1577tt@(Cons (!kl_V1577tth)
-                                                                                                     (!kl_V1577ttt))))))))) -> pat_cond_7 kl_V1577 kl_V1577t kl_V1577th kl_V1577tt kl_V1577tth kl_V1577ttt
-                                             !(kl_V1577@(Cons (ApplC (Func "cases" _))
-                                                              (!(kl_V1577t@(Cons (!kl_V1577th)
-                                                                                 (!(kl_V1577tt@(Cons (!kl_V1577tth)
-                                                                                                     (!kl_V1577ttt))))))))) -> pat_cond_7 kl_V1577 kl_V1577t kl_V1577th kl_V1577tt kl_V1577tth kl_V1577ttt
-                                             !(kl_V1577@(Cons (Atom (UnboundSym "cases"))
-                                                              (!(kl_V1577t@(Cons (!kl_V1577th)
-                                                                                 (Atom (Nil))))))) -> pat_cond_13 kl_V1577 kl_V1577t kl_V1577th
-                                             !(kl_V1577@(Cons (ApplC (PL "cases" _))
-                                                              (!(kl_V1577t@(Cons (!kl_V1577th)
-                                                                                 (Atom (Nil))))))) -> pat_cond_13 kl_V1577 kl_V1577t kl_V1577th
-                                             !(kl_V1577@(Cons (ApplC (Func "cases" _))
-                                                              (!(kl_V1577t@(Cons (!kl_V1577th)
-                                                                                 (Atom (Nil))))))) -> pat_cond_13 kl_V1577 kl_V1577t kl_V1577th
-                                             _ -> pat_cond_14
-
-kl_shen_timer_macro :: Types.KLValue ->
-                       Types.KLContext Types.Env Types.KLValue
-kl_shen_timer_macro (!kl_V1579) = do let pat_cond_0 kl_V1579 kl_V1579t kl_V1579th = do !appl_1 <- klCons (Types.Atom (Types.UnboundSym "run")) (Types.Atom Types.Nil)
-                                                                                       !appl_2 <- appl_1 `pseq` klCons (ApplC (wrapNamed "get-time" getTime)) appl_1
-                                                                                       !appl_3 <- klCons (Types.Atom (Types.UnboundSym "run")) (Types.Atom Types.Nil)
-                                                                                       !appl_4 <- appl_3 `pseq` klCons (ApplC (wrapNamed "get-time" getTime)) appl_3
-                                                                                       !appl_5 <- klCons (Types.Atom (Types.UnboundSym "Start")) (Types.Atom Types.Nil)
-                                                                                       !appl_6 <- appl_5 `pseq` klCons (Types.Atom (Types.UnboundSym "Finish")) appl_5
-                                                                                       !appl_7 <- appl_6 `pseq` klCons (ApplC (wrapNamed "-" Primitives.subtract)) appl_6
-                                                                                       !appl_8 <- klCons (Types.Atom (Types.UnboundSym "Time")) (Types.Atom Types.Nil)
-                                                                                       !appl_9 <- appl_8 `pseq` klCons (ApplC (wrapNamed "str" str)) appl_8
-                                                                                       !appl_10 <- klCons (Types.Atom (Types.Str " secs\n")) (Types.Atom Types.Nil)
-                                                                                       !appl_11 <- appl_9 `pseq` (appl_10 `pseq` klCons appl_9 appl_10)
-                                                                                       !appl_12 <- appl_11 `pseq` klCons (ApplC (wrapNamed "cn" cn)) appl_11
-                                                                                       !appl_13 <- appl_12 `pseq` klCons appl_12 (Types.Atom Types.Nil)
-                                                                                       !appl_14 <- appl_13 `pseq` klCons (Types.Atom (Types.Str "\nrun time: ")) appl_13
-                                                                                       !appl_15 <- appl_14 `pseq` klCons (ApplC (wrapNamed "cn" cn)) appl_14
-                                                                                       !appl_16 <- klCons (ApplC (PL "stoutput" kl_stoutput)) (Types.Atom Types.Nil)
-                                                                                       !appl_17 <- appl_16 `pseq` klCons appl_16 (Types.Atom Types.Nil)
-                                                                                       !appl_18 <- appl_15 `pseq` (appl_17 `pseq` klCons appl_15 appl_17)
-                                                                                       !appl_19 <- appl_18 `pseq` klCons (ApplC (wrapNamed "shen.prhush" kl_shen_prhush)) appl_18
-                                                                                       !appl_20 <- klCons (Types.Atom (Types.UnboundSym "Result")) (Types.Atom Types.Nil)
-                                                                                       !appl_21 <- appl_19 `pseq` (appl_20 `pseq` klCons appl_19 appl_20)
-                                                                                       !appl_22 <- appl_21 `pseq` klCons (Types.Atom (Types.UnboundSym "Message")) appl_21
-                                                                                       !appl_23 <- appl_7 `pseq` (appl_22 `pseq` klCons appl_7 appl_22)
-                                                                                       !appl_24 <- appl_23 `pseq` klCons (Types.Atom (Types.UnboundSym "Time")) appl_23
-                                                                                       !appl_25 <- appl_4 `pseq` (appl_24 `pseq` klCons appl_4 appl_24)
-                                                                                       !appl_26 <- appl_25 `pseq` klCons (Types.Atom (Types.UnboundSym "Finish")) appl_25
-                                                                                       !appl_27 <- kl_V1579th `pseq` (appl_26 `pseq` klCons kl_V1579th appl_26)
-                                                                                       !appl_28 <- appl_27 `pseq` klCons (Types.Atom (Types.UnboundSym "Result")) appl_27
-                                                                                       !appl_29 <- appl_2 `pseq` (appl_28 `pseq` klCons appl_2 appl_28)
-                                                                                       !appl_30 <- appl_29 `pseq` klCons (Types.Atom (Types.UnboundSym "Start")) appl_29
-                                                                                       !appl_31 <- appl_30 `pseq` klCons (Types.Atom (Types.UnboundSym "let")) appl_30
-                                                                                       appl_31 `pseq` kl_shen_let_macro appl_31
-                                         pat_cond_32 = do do return kl_V1579
-                                      in case kl_V1579 of
-                                             !(kl_V1579@(Cons (Atom (UnboundSym "time"))
-                                                              (!(kl_V1579t@(Cons (!kl_V1579th)
-                                                                                 (Atom (Nil))))))) -> pat_cond_0 kl_V1579 kl_V1579t kl_V1579th
-                                             !(kl_V1579@(Cons (ApplC (PL "time" _))
-                                                              (!(kl_V1579t@(Cons (!kl_V1579th)
-                                                                                 (Atom (Nil))))))) -> pat_cond_0 kl_V1579 kl_V1579t kl_V1579th
-                                             !(kl_V1579@(Cons (ApplC (Func "time" _))
-                                                              (!(kl_V1579t@(Cons (!kl_V1579th)
-                                                                                 (Atom (Nil))))))) -> pat_cond_0 kl_V1579 kl_V1579t kl_V1579th
-                                             _ -> pat_cond_32
-
-kl_shen_tuple_up :: Types.KLValue ->
-                    Types.KLContext Types.Env Types.KLValue
-kl_shen_tuple_up (!kl_V1581) = do let pat_cond_0 kl_V1581 kl_V1581h kl_V1581t = do !appl_1 <- kl_V1581t `pseq` kl_shen_tuple_up kl_V1581t
-                                                                                   !appl_2 <- appl_1 `pseq` klCons appl_1 (Types.Atom Types.Nil)
-                                                                                   !appl_3 <- kl_V1581h `pseq` (appl_2 `pseq` klCons kl_V1581h appl_2)
-                                                                                   appl_3 `pseq` klCons (ApplC (wrapNamed "@p" kl_Atp)) appl_3
-                                      pat_cond_4 = do do return kl_V1581
-                                   in case kl_V1581 of
-                                          !(kl_V1581@(Cons (!kl_V1581h)
-                                                           (!kl_V1581t))) -> pat_cond_0 kl_V1581 kl_V1581h kl_V1581t
-                                          _ -> pat_cond_4
-
-kl_shen_putDivget_macro :: Types.KLValue ->
-                           Types.KLContext Types.Env Types.KLValue
-kl_shen_putDivget_macro (!kl_V1583) = do let pat_cond_0 kl_V1583 kl_V1583t kl_V1583th kl_V1583tt kl_V1583tth kl_V1583ttt kl_V1583ttth = do !appl_1 <- klCons (Types.Atom (Types.UnboundSym "*property-vector*")) (Types.Atom Types.Nil)
-                                                                                                                                           !appl_2 <- appl_1 `pseq` klCons (ApplC (wrapNamed "value" value)) appl_1
-                                                                                                                                           !appl_3 <- appl_2 `pseq` klCons appl_2 (Types.Atom Types.Nil)
-                                                                                                                                           !appl_4 <- kl_V1583ttth `pseq` (appl_3 `pseq` klCons kl_V1583ttth appl_3)
-                                                                                                                                           !appl_5 <- kl_V1583tth `pseq` (appl_4 `pseq` klCons kl_V1583tth appl_4)
-                                                                                                                                           !appl_6 <- kl_V1583th `pseq` (appl_5 `pseq` klCons kl_V1583th appl_5)
-                                                                                                                                           appl_6 `pseq` klCons (ApplC (wrapNamed "put" kl_put)) appl_6
-                                             pat_cond_7 kl_V1583 kl_V1583t kl_V1583th kl_V1583tt kl_V1583tth = do !appl_8 <- klCons (Types.Atom (Types.UnboundSym "*property-vector*")) (Types.Atom Types.Nil)
-                                                                                                                  !appl_9 <- appl_8 `pseq` klCons (ApplC (wrapNamed "value" value)) appl_8
-                                                                                                                  !appl_10 <- appl_9 `pseq` klCons appl_9 (Types.Atom Types.Nil)
-                                                                                                                  !appl_11 <- kl_V1583tth `pseq` (appl_10 `pseq` klCons kl_V1583tth appl_10)
-                                                                                                                  !appl_12 <- kl_V1583th `pseq` (appl_11 `pseq` klCons kl_V1583th appl_11)
-                                                                                                                  appl_12 `pseq` klCons (ApplC (wrapNamed "get" kl_get)) appl_12
-                                             pat_cond_13 kl_V1583 kl_V1583t kl_V1583th kl_V1583tt kl_V1583tth = do !appl_14 <- klCons (Types.Atom (Types.UnboundSym "*property-vector*")) (Types.Atom Types.Nil)
-                                                                                                                   !appl_15 <- appl_14 `pseq` klCons (ApplC (wrapNamed "value" value)) appl_14
-                                                                                                                   !appl_16 <- appl_15 `pseq` klCons appl_15 (Types.Atom Types.Nil)
-                                                                                                                   !appl_17 <- kl_V1583tth `pseq` (appl_16 `pseq` klCons kl_V1583tth appl_16)
-                                                                                                                   !appl_18 <- kl_V1583th `pseq` (appl_17 `pseq` klCons kl_V1583th appl_17)
-                                                                                                                   appl_18 `pseq` klCons (ApplC (wrapNamed "unput" kl_unput)) appl_18
-                                             pat_cond_19 = do do return kl_V1583
-                                          in case kl_V1583 of
-                                                 !(kl_V1583@(Cons (Atom (UnboundSym "put"))
-                                                                  (!(kl_V1583t@(Cons (!kl_V1583th)
-                                                                                     (!(kl_V1583tt@(Cons (!kl_V1583tth)
-                                                                                                         (!(kl_V1583ttt@(Cons (!kl_V1583ttth)
-                                                                                                                              (Atom (Nil))))))))))))) -> pat_cond_0 kl_V1583 kl_V1583t kl_V1583th kl_V1583tt kl_V1583tth kl_V1583ttt kl_V1583ttth
-                                                 !(kl_V1583@(Cons (ApplC (PL "put" _))
-                                                                  (!(kl_V1583t@(Cons (!kl_V1583th)
-                                                                                     (!(kl_V1583tt@(Cons (!kl_V1583tth)
-                                                                                                         (!(kl_V1583ttt@(Cons (!kl_V1583ttth)
-                                                                                                                              (Atom (Nil))))))))))))) -> pat_cond_0 kl_V1583 kl_V1583t kl_V1583th kl_V1583tt kl_V1583tth kl_V1583ttt kl_V1583ttth
-                                                 !(kl_V1583@(Cons (ApplC (Func "put" _))
-                                                                  (!(kl_V1583t@(Cons (!kl_V1583th)
-                                                                                     (!(kl_V1583tt@(Cons (!kl_V1583tth)
-                                                                                                         (!(kl_V1583ttt@(Cons (!kl_V1583ttth)
-                                                                                                                              (Atom (Nil))))))))))))) -> pat_cond_0 kl_V1583 kl_V1583t kl_V1583th kl_V1583tt kl_V1583tth kl_V1583ttt kl_V1583ttth
-                                                 !(kl_V1583@(Cons (Atom (UnboundSym "get"))
-                                                                  (!(kl_V1583t@(Cons (!kl_V1583th)
-                                                                                     (!(kl_V1583tt@(Cons (!kl_V1583tth)
-                                                                                                         (Atom (Nil)))))))))) -> pat_cond_7 kl_V1583 kl_V1583t kl_V1583th kl_V1583tt kl_V1583tth
-                                                 !(kl_V1583@(Cons (ApplC (PL "get" _))
-                                                                  (!(kl_V1583t@(Cons (!kl_V1583th)
-                                                                                     (!(kl_V1583tt@(Cons (!kl_V1583tth)
-                                                                                                         (Atom (Nil)))))))))) -> pat_cond_7 kl_V1583 kl_V1583t kl_V1583th kl_V1583tt kl_V1583tth
-                                                 !(kl_V1583@(Cons (ApplC (Func "get" _))
-                                                                  (!(kl_V1583t@(Cons (!kl_V1583th)
-                                                                                     (!(kl_V1583tt@(Cons (!kl_V1583tth)
-                                                                                                         (Atom (Nil)))))))))) -> pat_cond_7 kl_V1583 kl_V1583t kl_V1583th kl_V1583tt kl_V1583tth
-                                                 !(kl_V1583@(Cons (Atom (UnboundSym "unput"))
-                                                                  (!(kl_V1583t@(Cons (!kl_V1583th)
-                                                                                     (!(kl_V1583tt@(Cons (!kl_V1583tth)
-                                                                                                         (Atom (Nil)))))))))) -> pat_cond_13 kl_V1583 kl_V1583t kl_V1583th kl_V1583tt kl_V1583tth
-                                                 !(kl_V1583@(Cons (ApplC (PL "unput" _))
-                                                                  (!(kl_V1583t@(Cons (!kl_V1583th)
-                                                                                     (!(kl_V1583tt@(Cons (!kl_V1583tth)
-                                                                                                         (Atom (Nil)))))))))) -> pat_cond_13 kl_V1583 kl_V1583t kl_V1583th kl_V1583tt kl_V1583tth
-                                                 !(kl_V1583@(Cons (ApplC (Func "unput" _))
-                                                                  (!(kl_V1583t@(Cons (!kl_V1583th)
-                                                                                     (!(kl_V1583tt@(Cons (!kl_V1583tth)
-                                                                                                         (Atom (Nil)))))))))) -> pat_cond_13 kl_V1583 kl_V1583t kl_V1583th kl_V1583tt kl_V1583tth
-                                                 _ -> pat_cond_19
-
-kl_shen_function_macro :: Types.KLValue ->
-                          Types.KLContext Types.Env Types.KLValue
-kl_shen_function_macro (!kl_V1585) = do let pat_cond_0 kl_V1585 kl_V1585t kl_V1585th = do let !aw_1 = Types.Atom (Types.UnboundSym "arity")
-                                                                                          !appl_2 <- kl_V1585th `pseq` applyWrapper aw_1 [kl_V1585th]
-                                                                                          kl_V1585th `pseq` (appl_2 `pseq` kl_shen_function_abstraction kl_V1585th appl_2)
-                                            pat_cond_3 = do do return kl_V1585
-                                         in case kl_V1585 of
-                                                !(kl_V1585@(Cons (Atom (UnboundSym "function"))
-                                                                 (!(kl_V1585t@(Cons (!kl_V1585th)
-                                                                                    (Atom (Nil))))))) -> pat_cond_0 kl_V1585 kl_V1585t kl_V1585th
-                                                !(kl_V1585@(Cons (ApplC (PL "function" _))
-                                                                 (!(kl_V1585t@(Cons (!kl_V1585th)
-                                                                                    (Atom (Nil))))))) -> pat_cond_0 kl_V1585 kl_V1585t kl_V1585th
-                                                !(kl_V1585@(Cons (ApplC (Func "function" _))
-                                                                 (!(kl_V1585t@(Cons (!kl_V1585th)
-                                                                                    (Atom (Nil))))))) -> pat_cond_0 kl_V1585 kl_V1585t kl_V1585th
-                                                _ -> pat_cond_3
-
-kl_shen_function_abstraction :: Types.KLValue ->
-                                Types.KLValue -> Types.KLContext Types.Env Types.KLValue
-kl_shen_function_abstraction (!kl_V1588) (!kl_V1589) = do let pat_cond_0 = do !appl_1 <- kl_V1588 `pseq` kl_shen_app kl_V1588 (Types.Atom (Types.Str " has no lambda form\n")) (Types.Atom (Types.UnboundSym "shen.a"))
-                                                                              appl_1 `pseq` simpleError appl_1
-                                                              pat_cond_2 = do !appl_3 <- kl_V1588 `pseq` klCons kl_V1588 (Types.Atom Types.Nil)
-                                                                              appl_3 `pseq` klCons (ApplC (wrapNamed "function" kl_function)) appl_3
-                                                              pat_cond_4 = do do kl_V1588 `pseq` (kl_V1589 `pseq` kl_shen_function_abstraction_help kl_V1588 kl_V1589 (Types.Atom Types.Nil))
-                                                           in case kl_V1589 of
-                                                                  kl_V1589@(Atom (N (KI 0))) -> pat_cond_0
-                                                                  kl_V1589@(Atom (N (KI (-1)))) -> pat_cond_2
-                                                                  _ -> pat_cond_4
-
-kl_shen_function_abstraction_help :: Types.KLValue ->
-                                     Types.KLValue ->
-                                     Types.KLValue -> Types.KLContext Types.Env Types.KLValue
-kl_shen_function_abstraction_help (!kl_V1593) (!kl_V1594) (!kl_V1595) = do let pat_cond_0 = do kl_V1593 `pseq` (kl_V1595 `pseq` klCons kl_V1593 kl_V1595)
-                                                                               pat_cond_1 = do do let !appl_2 = ApplC (Func "lambda" (Context (\(!kl_X) -> do !appl_3 <- kl_V1594 `pseq` Primitives.subtract kl_V1594 (Types.Atom (Types.N (Types.KI 1)))
-                                                                                                                                                              !appl_4 <- kl_X `pseq` klCons kl_X (Types.Atom Types.Nil)
-                                                                                                                                                              !appl_5 <- kl_V1595 `pseq` (appl_4 `pseq` kl_append kl_V1595 appl_4)
-                                                                                                                                                              !appl_6 <- kl_V1593 `pseq` (appl_3 `pseq` (appl_5 `pseq` kl_shen_function_abstraction_help kl_V1593 appl_3 appl_5))
-                                                                                                                                                              !appl_7 <- appl_6 `pseq` klCons appl_6 (Types.Atom Types.Nil)
-                                                                                                                                                              !appl_8 <- kl_X `pseq` (appl_7 `pseq` klCons kl_X appl_7)
-                                                                                                                                                              appl_8 `pseq` klCons (Types.Atom (Types.UnboundSym "/.")) appl_8)))
-                                                                                                  !appl_9 <- kl_gensym (Types.Atom (Types.UnboundSym "V"))
-                                                                                                  appl_9 `pseq` applyWrapper appl_2 [appl_9]
-                                                                            in case kl_V1594 of
-                                                                                   kl_V1594@(Atom (N (KI 0))) -> pat_cond_0
-                                                                                   _ -> pat_cond_1
-
-kl_undefmacro :: Types.KLValue ->
-                 Types.KLContext Types.Env Types.KLValue
-kl_undefmacro (!kl_V1597) = do let !appl_0 = ApplC (Func "lambda" (Context (\(!kl_MacroReg) -> do let !appl_1 = ApplC (Func "lambda" (Context (\(!kl_Pos) -> do let !appl_2 = ApplC (Func "lambda" (Context (\(!kl_Remove1) -> do let !appl_3 = ApplC (Func "lambda" (Context (\(!kl_Remove2) -> do return kl_V1597)))
-                                                                                                                                                                                                                                  !appl_4 <- value (Types.Atom (Types.UnboundSym "*macros*"))
-                                                                                                                                                                                                                                  !appl_5 <- kl_Pos `pseq` (appl_4 `pseq` kl_shen_remove_nth kl_Pos appl_4)
-                                                                                                                                                                                                                                  !appl_6 <- appl_5 `pseq` klSet (Types.Atom (Types.UnboundSym "*macros*")) appl_5
-                                                                                                                                                                                                                                  appl_6 `pseq` applyWrapper appl_3 [appl_6])))
-                                                                                                                                                                !appl_7 <- kl_V1597 `pseq` (kl_MacroReg `pseq` kl_remove kl_V1597 kl_MacroReg)
-                                                                                                                                                                !appl_8 <- appl_7 `pseq` klSet (Types.Atom (Types.UnboundSym "shen.*macroreg*")) appl_7
-                                                                                                                                                                appl_8 `pseq` applyWrapper appl_2 [appl_8])))
-                                                                                                  !appl_9 <- kl_V1597 `pseq` (kl_MacroReg `pseq` kl_shen_findpos kl_V1597 kl_MacroReg)
-                                                                                                  appl_9 `pseq` applyWrapper appl_1 [appl_9])))
-                               !appl_10 <- value (Types.Atom (Types.UnboundSym "shen.*macroreg*"))
-                               appl_10 `pseq` applyWrapper appl_0 [appl_10]
-
-kl_shen_findpos :: Types.KLValue ->
-                   Types.KLValue -> Types.KLContext Types.Env Types.KLValue
-kl_shen_findpos (!kl_V1607) (!kl_V1608) = do let pat_cond_0 = do !appl_1 <- kl_V1607 `pseq` kl_shen_app kl_V1607 (Types.Atom (Types.Str " is not a macro\n")) (Types.Atom (Types.UnboundSym "shen.a"))
-                                                                 appl_1 `pseq` simpleError appl_1
-                                                 pat_cond_2 kl_V1608 kl_V1608h kl_V1608t = do return (Types.Atom (Types.N (Types.KI 1)))
-                                                 pat_cond_3 kl_V1608 kl_V1608h kl_V1608t = do !appl_4 <- kl_V1607 `pseq` (kl_V1608t `pseq` kl_shen_findpos kl_V1607 kl_V1608t)
-                                                                                              appl_4 `pseq` add (Types.Atom (Types.N (Types.KI 1))) appl_4
-                                                 pat_cond_5 = do do kl_shen_f_error (ApplC (wrapNamed "shen.findpos" kl_shen_findpos))
-                                              in case kl_V1608 of
-                                                     kl_V1608@(Atom (Nil)) -> pat_cond_0
-                                                     !(kl_V1608@(Cons (!kl_V1608h)
-                                                                      (!kl_V1608t))) | eqCore kl_V1608h kl_V1607 -> pat_cond_2 kl_V1608 kl_V1608h kl_V1608t
-                                                     !(kl_V1608@(Cons (!kl_V1608h)
-                                                                      (!kl_V1608t))) -> pat_cond_3 kl_V1608 kl_V1608h kl_V1608t
-                                                     _ -> pat_cond_5
-
-kl_shen_remove_nth :: Types.KLValue ->
-                      Types.KLValue -> Types.KLContext Types.Env Types.KLValue
-kl_shen_remove_nth (!kl_V1613) (!kl_V1614) = do !kl_if_0 <- let pat_cond_1 = do let pat_cond_2 kl_V1614 kl_V1614h kl_V1614t = do return (Atom (B True))
-                                                                                    pat_cond_3 = do do return (Atom (B False))
-                                                                                 in case kl_V1614 of
-                                                                                        !(kl_V1614@(Cons (!kl_V1614h)
-                                                                                                         (!kl_V1614t))) -> pat_cond_2 kl_V1614 kl_V1614h kl_V1614t
-                                                                                        _ -> pat_cond_3
-                                                                pat_cond_4 = do do return (Atom (B False))
-                                                             in case kl_V1613 of
-                                                                    kl_V1613@(Atom (N (KI 1))) -> pat_cond_1
-                                                                    _ -> pat_cond_4
-                                                case kl_if_0 of
-                                                    Atom (B (True)) -> do kl_V1614 `pseq` tl kl_V1614
-                                                    Atom (B (False)) -> do let pat_cond_5 kl_V1614 kl_V1614h kl_V1614t = do !appl_6 <- kl_V1613 `pseq` Primitives.subtract kl_V1613 (Types.Atom (Types.N (Types.KI 1)))
-                                                                                                                            !appl_7 <- appl_6 `pseq` (kl_V1614t `pseq` kl_shen_remove_nth appl_6 kl_V1614t)
-                                                                                                                            kl_V1614h `pseq` (appl_7 `pseq` klCons kl_V1614h appl_7)
-                                                                               pat_cond_8 = do do kl_shen_f_error (ApplC (wrapNamed "shen.remove-nth" kl_shen_remove_nth))
-                                                                            in case kl_V1614 of
-                                                                                   !(kl_V1614@(Cons (!kl_V1614h)
-                                                                                                    (!kl_V1614t))) -> pat_cond_5 kl_V1614 kl_V1614h kl_V1614t
-                                                                                   _ -> pat_cond_8
-                                                    _ -> throwError "if: expected boolean"
-
-expr10 :: Types.KLContext Types.Env Types.KLValue
-expr10 = do (do return (Types.Atom (Types.Str "Copyright (c) 2015, Mark Tarver\n\nAll rights reserved.\n\nRedistribution and use in source and binary forms, with or without\nmodification, are permitted provided that the following conditions are met:\n1. Redistributions of source code must retain the above copyright\n   notice, this list of conditions and the following disclaimer.\n2. Redistributions in binary form must reproduce the above copyright\n   notice, this list of conditions and the following disclaimer in the\n   documentation and/or other materials provided with the distribution.\n3. The name of Mark Tarver may not be used to endorse or promote products\n   derived from this software without specific prior written permission.\n\nTHIS SOFTWARE IS PROVIDED BY Mark Tarver ''AS IS'' AND ANY\nEXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED\nWARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE\nDISCLAIMED. IN NO EVENT SHALL Mark Tarver BE LIABLE FOR ANY\nDIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES\n(INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;\nLOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND\nON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT\n(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS\nSOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE."))) `catchError` (\(!kl_E) -> do return (Types.Atom (Types.Str "E")))
+{-# LANGUAGE BangPatterns #-}+{-# LANGUAGE OverloadedStrings #-}+{-# LANGUAGE Strict #-}+{-# LANGUAGE StrictData #-}+{-# LANGUAGE ViewPatterns #-}++module Backend.Macros where++import Control.Monad.Except+import Control.Parallel+import Environment+import Core.Primitives as Primitives+import Backend.Utils+import Core.Types+import Core.Utils+import Wrap+import Backend.Toplevel+import Backend.Core+import Backend.Sys+import Backend.Sequent+import Backend.Yacc+import Backend.Reader+import Backend.Prolog+import Backend.Track+import Backend.Load+import Backend.Writer++{-+Copyright (c) 2015, Mark Tarver+All rights reserved.++Redistribution and use in source and binary forms, with or without+modification, are permitted provided that the following conditions are met:++1. Redistributions of source code must retain the above copyright+   notice, this list of conditions and the following disclaimer.+2. Redistributions in binary form must reproduce the above copyright+   notice, this list of conditions and the following disclaimer in the+   documentation and/or other materials provided with the distribution.+3. The name of Mark Tarver may not be used to endorse or promote products+   derived from this software without specific prior written permission.++THIS SOFTWARE IS PROVIDED BY Mark Tarver ''AS IS'' AND ANY+EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED+WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE+DISCLAIMED. IN NO EVENT SHALL Mark Tarver BE LIABLE FOR ANY+DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES+(INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;+LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND+ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT+(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS+SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.+-}++kl_macroexpand :: Core.Types.KLValue ->+                  Core.Types.KLContext Core.Types.Env Core.Types.KLValue+kl_macroexpand (!kl_V1529) = do let !appl_0 = ApplC (Func "lambda" (Context (\(!kl_Y) -> do !kl_if_1 <- kl_V1529 `pseq` (kl_Y `pseq` eq kl_V1529 kl_Y)+                                                                                            case kl_if_1 of+                                                                                                Atom (B (True)) -> do return kl_V1529+                                                                                                Atom (B (False)) -> do do let !appl_2 = ApplC (Func "lambda" (Context (\(!kl_Z) -> do kl_Z `pseq` kl_macroexpand kl_Z)))+                                                                                                                          appl_2 `pseq` (kl_Y `pseq` kl_shen_walk appl_2 kl_Y)+                                                                                                _ -> throwError "if: expected boolean")))+                                !appl_3 <- value (Core.Types.Atom (Core.Types.UnboundSym "*macros*"))+                                !appl_4 <- appl_3 `pseq` (kl_V1529 `pseq` kl_shen_compose appl_3 kl_V1529)+                                appl_4 `pseq` applyWrapper appl_0 [appl_4]++kl_shen_error_macro :: Core.Types.KLValue ->+                       Core.Types.KLContext Core.Types.Env Core.Types.KLValue+kl_shen_error_macro (!kl_V1531) = do let pat_cond_0 kl_V1531 kl_V1531t kl_V1531th kl_V1531tt = do !appl_1 <- kl_V1531th `pseq` (kl_V1531tt `pseq` kl_shen_mkstr kl_V1531th kl_V1531tt)+                                                                                                  let !appl_2 = Atom Nil+                                                                                                  !appl_3 <- appl_1 `pseq` (appl_2 `pseq` klCons appl_1 appl_2)+                                                                                                  appl_3 `pseq` klCons (ApplC (wrapNamed "simple-error" simpleError)) appl_3+                                         pat_cond_4 = do do return kl_V1531+                                      in case kl_V1531 of+                                             !(kl_V1531@(Cons (Atom (UnboundSym "error"))+                                                              (!(kl_V1531t@(Cons (!kl_V1531th)+                                                                                 (!kl_V1531tt)))))) -> pat_cond_0 kl_V1531 kl_V1531t kl_V1531th kl_V1531tt+                                             !(kl_V1531@(Cons (ApplC (PL "error" _))+                                                              (!(kl_V1531t@(Cons (!kl_V1531th)+                                                                                 (!kl_V1531tt)))))) -> pat_cond_0 kl_V1531 kl_V1531t kl_V1531th kl_V1531tt+                                             !(kl_V1531@(Cons (ApplC (Func "error" _))+                                                              (!(kl_V1531t@(Cons (!kl_V1531th)+                                                                                 (!kl_V1531tt)))))) -> pat_cond_0 kl_V1531 kl_V1531t kl_V1531th kl_V1531tt+                                             _ -> pat_cond_4++kl_shen_output_macro :: Core.Types.KLValue ->+                        Core.Types.KLContext Core.Types.Env Core.Types.KLValue+kl_shen_output_macro (!kl_V1533) = do let pat_cond_0 kl_V1533 kl_V1533t kl_V1533th kl_V1533tt = do !appl_1 <- kl_V1533th `pseq` (kl_V1533tt `pseq` kl_shen_mkstr kl_V1533th kl_V1533tt)+                                                                                                   let !appl_2 = Atom Nil+                                                                                                   !appl_3 <- appl_2 `pseq` klCons (ApplC (PL "stoutput" kl_stoutput)) appl_2+                                                                                                   let !appl_4 = Atom Nil+                                                                                                   !appl_5 <- appl_3 `pseq` (appl_4 `pseq` klCons appl_3 appl_4)+                                                                                                   !appl_6 <- appl_1 `pseq` (appl_5 `pseq` klCons appl_1 appl_5)+                                                                                                   appl_6 `pseq` klCons (ApplC (wrapNamed "shen.prhush" kl_shen_prhush)) appl_6+                                          pat_cond_7 = do !kl_if_8 <- let pat_cond_9 kl_V1533 kl_V1533h kl_V1533t = do !kl_if_10 <- let pat_cond_11 = do !kl_if_12 <- let pat_cond_13 kl_V1533t kl_V1533th kl_V1533tt = do let !appl_14 = Atom Nil+                                                                                                                                                                                                                           !kl_if_15 <- appl_14 `pseq` (kl_V1533tt `pseq` eq appl_14 kl_V1533tt)+                                                                                                                                                                                                                           case kl_if_15 of+                                                                                                                                                                                                                               Atom (B (True)) -> do return (Atom (B True))+                                                                                                                                                                                                                               Atom (B (False)) -> do do return (Atom (B False))+                                                                                                                                                                                                                               _ -> throwError "if: expected boolean"+                                                                                                                                                                          pat_cond_16 = do do return (Atom (B False))+                                                                                                                                                                       in case kl_V1533t of+                                                                                                                                                                              !(kl_V1533t@(Cons (!kl_V1533th)+                                                                                                                                                                                                (!kl_V1533tt))) -> pat_cond_13 kl_V1533t kl_V1533th kl_V1533tt+                                                                                                                                                                              _ -> pat_cond_16+                                                                                                                                                         case kl_if_12 of+                                                                                                                                                             Atom (B (True)) -> do return (Atom (B True))+                                                                                                                                                             Atom (B (False)) -> do do return (Atom (B False))+                                                                                                                                                             _ -> throwError "if: expected boolean"+                                                                                                                                        pat_cond_17 = do do return (Atom (B False))+                                                                                                                                     in case kl_V1533h of+                                                                                                                                            kl_V1533h@(Atom (UnboundSym "pr")) -> pat_cond_11+                                                                                                                                            kl_V1533h@(ApplC (PL "pr"+                                                                                                                                                                 _)) -> pat_cond_11+                                                                                                                                            kl_V1533h@(ApplC (Func "pr"+                                                                                                                                                                   _)) -> pat_cond_11+                                                                                                                                            _ -> pat_cond_17+                                                                                                                       case kl_if_10 of+                                                                                                                           Atom (B (True)) -> do return (Atom (B True))+                                                                                                                           Atom (B (False)) -> do do return (Atom (B False))+                                                                                                                           _ -> throwError "if: expected boolean"+                                                                          pat_cond_18 = do do return (Atom (B False))+                                                                       in case kl_V1533 of+                                                                              !(kl_V1533@(Cons (!kl_V1533h)+                                                                                               (!kl_V1533t))) -> pat_cond_9 kl_V1533 kl_V1533h kl_V1533t+                                                                              _ -> pat_cond_18+                                                          case kl_if_8 of+                                                              Atom (B (True)) -> do !appl_19 <- kl_V1533 `pseq` tl kl_V1533+                                                                                    !appl_20 <- appl_19 `pseq` hd appl_19+                                                                                    let !appl_21 = Atom Nil+                                                                                    !appl_22 <- appl_21 `pseq` klCons (ApplC (PL "stoutput" kl_stoutput)) appl_21+                                                                                    let !appl_23 = Atom Nil+                                                                                    !appl_24 <- appl_22 `pseq` (appl_23 `pseq` klCons appl_22 appl_23)+                                                                                    !appl_25 <- appl_20 `pseq` (appl_24 `pseq` klCons appl_20 appl_24)+                                                                                    appl_25 `pseq` klCons (ApplC (wrapNamed "pr" kl_pr)) appl_25+                                                              Atom (B (False)) -> do do return kl_V1533+                                                              _ -> throwError "if: expected boolean"+                                       in case kl_V1533 of+                                              !(kl_V1533@(Cons (Atom (UnboundSym "output"))+                                                               (!(kl_V1533t@(Cons (!kl_V1533th)+                                                                                  (!kl_V1533tt)))))) -> pat_cond_0 kl_V1533 kl_V1533t kl_V1533th kl_V1533tt+                                              !(kl_V1533@(Cons (ApplC (PL "output" _))+                                                               (!(kl_V1533t@(Cons (!kl_V1533th)+                                                                                  (!kl_V1533tt)))))) -> pat_cond_0 kl_V1533 kl_V1533t kl_V1533th kl_V1533tt+                                              !(kl_V1533@(Cons (ApplC (Func "output" _))+                                                               (!(kl_V1533t@(Cons (!kl_V1533th)+                                                                                  (!kl_V1533tt)))))) -> pat_cond_0 kl_V1533 kl_V1533t kl_V1533th kl_V1533tt+                                              _ -> pat_cond_7++kl_shen_make_string_macro :: Core.Types.KLValue ->+                             Core.Types.KLContext Core.Types.Env Core.Types.KLValue+kl_shen_make_string_macro (!kl_V1535) = do let pat_cond_0 kl_V1535 kl_V1535t kl_V1535th kl_V1535tt = do kl_V1535th `pseq` (kl_V1535tt `pseq` kl_shen_mkstr kl_V1535th kl_V1535tt)+                                               pat_cond_1 = do do return kl_V1535+                                            in case kl_V1535 of+                                                   !(kl_V1535@(Cons (Atom (UnboundSym "make-string"))+                                                                    (!(kl_V1535t@(Cons (!kl_V1535th)+                                                                                       (!kl_V1535tt)))))) -> pat_cond_0 kl_V1535 kl_V1535t kl_V1535th kl_V1535tt+                                                   !(kl_V1535@(Cons (ApplC (PL "make-string" _))+                                                                    (!(kl_V1535t@(Cons (!kl_V1535th)+                                                                                       (!kl_V1535tt)))))) -> pat_cond_0 kl_V1535 kl_V1535t kl_V1535th kl_V1535tt+                                                   !(kl_V1535@(Cons (ApplC (Func "make-string" _))+                                                                    (!(kl_V1535t@(Cons (!kl_V1535th)+                                                                                       (!kl_V1535tt)))))) -> pat_cond_0 kl_V1535 kl_V1535t kl_V1535th kl_V1535tt+                                                   _ -> pat_cond_1++kl_shen_input_macro :: Core.Types.KLValue ->+                       Core.Types.KLContext Core.Types.Env Core.Types.KLValue+kl_shen_input_macro (!kl_V1537) = do !kl_if_0 <- let pat_cond_1 kl_V1537 kl_V1537h kl_V1537t = do !kl_if_2 <- let pat_cond_3 = do let !appl_4 = Atom Nil+                                                                                                                                  !kl_if_5 <- appl_4 `pseq` (kl_V1537t `pseq` eq appl_4 kl_V1537t)+                                                                                                                                  case kl_if_5 of+                                                                                                                                      Atom (B (True)) -> do return (Atom (B True))+                                                                                                                                      Atom (B (False)) -> do do return (Atom (B False))+                                                                                                                                      _ -> throwError "if: expected boolean"+                                                                                                                  pat_cond_6 = do do return (Atom (B False))+                                                                                                               in case kl_V1537h of+                                                                                                                      kl_V1537h@(Atom (UnboundSym "lineread")) -> pat_cond_3+                                                                                                                      kl_V1537h@(ApplC (PL "lineread"+                                                                                                                                           _)) -> pat_cond_3+                                                                                                                      kl_V1537h@(ApplC (Func "lineread"+                                                                                                                                             _)) -> pat_cond_3+                                                                                                                      _ -> pat_cond_6+                                                                                                  case kl_if_2 of+                                                                                                      Atom (B (True)) -> do return (Atom (B True))+                                                                                                      Atom (B (False)) -> do do return (Atom (B False))+                                                                                                      _ -> throwError "if: expected boolean"+                                                     pat_cond_7 = do do return (Atom (B False))+                                                  in case kl_V1537 of+                                                         !(kl_V1537@(Cons (!kl_V1537h)+                                                                          (!kl_V1537t))) -> pat_cond_1 kl_V1537 kl_V1537h kl_V1537t+                                                         _ -> pat_cond_7+                                     case kl_if_0 of+                                         Atom (B (True)) -> do let !appl_8 = Atom Nil+                                                               !appl_9 <- appl_8 `pseq` klCons (ApplC (PL "stinput" kl_stinput)) appl_8+                                                               let !appl_10 = Atom Nil+                                                               !appl_11 <- appl_9 `pseq` (appl_10 `pseq` klCons appl_9 appl_10)+                                                               appl_11 `pseq` klCons (ApplC (wrapNamed "lineread" kl_lineread)) appl_11+                                         Atom (B (False)) -> do !kl_if_12 <- let pat_cond_13 kl_V1537 kl_V1537h kl_V1537t = do !kl_if_14 <- let pat_cond_15 = do let !appl_16 = Atom Nil+                                                                                                                                                                 !kl_if_17 <- appl_16 `pseq` (kl_V1537t `pseq` eq appl_16 kl_V1537t)+                                                                                                                                                                 case kl_if_17 of+                                                                                                                                                                     Atom (B (True)) -> do return (Atom (B True))+                                                                                                                                                                     Atom (B (False)) -> do do return (Atom (B False))+                                                                                                                                                                     _ -> throwError "if: expected boolean"+                                                                                                                                                pat_cond_18 = do do return (Atom (B False))+                                                                                                                                             in case kl_V1537h of+                                                                                                                                                    kl_V1537h@(Atom (UnboundSym "input")) -> pat_cond_15+                                                                                                                                                    kl_V1537h@(ApplC (PL "input"+                                                                                                                                                                         _)) -> pat_cond_15+                                                                                                                                                    kl_V1537h@(ApplC (Func "input"+                                                                                                                                                                           _)) -> pat_cond_15+                                                                                                                                                    _ -> pat_cond_18+                                                                                                                               case kl_if_14 of+                                                                                                                                   Atom (B (True)) -> do return (Atom (B True))+                                                                                                                                   Atom (B (False)) -> do do return (Atom (B False))+                                                                                                                                   _ -> throwError "if: expected boolean"+                                                                                 pat_cond_19 = do do return (Atom (B False))+                                                                              in case kl_V1537 of+                                                                                     !(kl_V1537@(Cons (!kl_V1537h)+                                                                                                      (!kl_V1537t))) -> pat_cond_13 kl_V1537 kl_V1537h kl_V1537t+                                                                                     _ -> pat_cond_19+                                                                case kl_if_12 of+                                                                    Atom (B (True)) -> do let !appl_20 = Atom Nil+                                                                                          !appl_21 <- appl_20 `pseq` klCons (ApplC (PL "stinput" kl_stinput)) appl_20+                                                                                          let !appl_22 = Atom Nil+                                                                                          !appl_23 <- appl_21 `pseq` (appl_22 `pseq` klCons appl_21 appl_22)+                                                                                          appl_23 `pseq` klCons (ApplC (wrapNamed "input" kl_input)) appl_23+                                                                    Atom (B (False)) -> do !kl_if_24 <- let pat_cond_25 kl_V1537 kl_V1537h kl_V1537t = do !kl_if_26 <- let pat_cond_27 = do let !appl_28 = Atom Nil+                                                                                                                                                                                            !kl_if_29 <- appl_28 `pseq` (kl_V1537t `pseq` eq appl_28 kl_V1537t)+                                                                                                                                                                                            case kl_if_29 of+                                                                                                                                                                                                Atom (B (True)) -> do return (Atom (B True))+                                                                                                                                                                                                Atom (B (False)) -> do do return (Atom (B False))+                                                                                                                                                                                                _ -> throwError "if: expected boolean"+                                                                                                                                                                           pat_cond_30 = do do return (Atom (B False))+                                                                                                                                                                        in case kl_V1537h of+                                                                                                                                                                               kl_V1537h@(Atom (UnboundSym "read")) -> pat_cond_27+                                                                                                                                                                               kl_V1537h@(ApplC (PL "read"+                                                                                                                                                                                                    _)) -> pat_cond_27+                                                                                                                                                                               kl_V1537h@(ApplC (Func "read"+                                                                                                                                                                                                      _)) -> pat_cond_27+                                                                                                                                                                               _ -> pat_cond_30+                                                                                                                                                          case kl_if_26 of+                                                                                                                                                              Atom (B (True)) -> do return (Atom (B True))+                                                                                                                                                              Atom (B (False)) -> do do return (Atom (B False))+                                                                                                                                                              _ -> throwError "if: expected boolean"+                                                                                                            pat_cond_31 = do do return (Atom (B False))+                                                                                                         in case kl_V1537 of+                                                                                                                !(kl_V1537@(Cons (!kl_V1537h)+                                                                                                                                 (!kl_V1537t))) -> pat_cond_25 kl_V1537 kl_V1537h kl_V1537t+                                                                                                                _ -> pat_cond_31+                                                                                           case kl_if_24 of+                                                                                               Atom (B (True)) -> do let !appl_32 = Atom Nil+                                                                                                                     !appl_33 <- appl_32 `pseq` klCons (ApplC (PL "stinput" kl_stinput)) appl_32+                                                                                                                     let !appl_34 = Atom Nil+                                                                                                                     !appl_35 <- appl_33 `pseq` (appl_34 `pseq` klCons appl_33 appl_34)+                                                                                                                     appl_35 `pseq` klCons (ApplC (wrapNamed "read" kl_read)) appl_35+                                                                                               Atom (B (False)) -> do !kl_if_36 <- let pat_cond_37 kl_V1537 kl_V1537h kl_V1537t = do !kl_if_38 <- let pat_cond_39 = do !kl_if_40 <- let pat_cond_41 kl_V1537t kl_V1537th kl_V1537tt = do let !appl_42 = Atom Nil+                                                                                                                                                                                                                                                                                         !kl_if_43 <- appl_42 `pseq` (kl_V1537tt `pseq` eq appl_42 kl_V1537tt)+                                                                                                                                                                                                                                                                                         case kl_if_43 of+                                                                                                                                                                                                                                                                                             Atom (B (True)) -> do return (Atom (B True))+                                                                                                                                                                                                                                                                                             Atom (B (False)) -> do do return (Atom (B False))+                                                                                                                                                                                                                                                                                             _ -> throwError "if: expected boolean"+                                                                                                                                                                                                                                        pat_cond_44 = do do return (Atom (B False))+                                                                                                                                                                                                                                     in case kl_V1537t of+                                                                                                                                                                                                                                            !(kl_V1537t@(Cons (!kl_V1537th)+                                                                                                                                                                                                                                                              (!kl_V1537tt))) -> pat_cond_41 kl_V1537t kl_V1537th kl_V1537tt+                                                                                                                                                                                                                                            _ -> pat_cond_44+                                                                                                                                                                                                                       case kl_if_40 of+                                                                                                                                                                                                                           Atom (B (True)) -> do return (Atom (B True))+                                                                                                                                                                                                                           Atom (B (False)) -> do do return (Atom (B False))+                                                                                                                                                                                                                           _ -> throwError "if: expected boolean"+                                                                                                                                                                                                      pat_cond_45 = do do return (Atom (B False))+                                                                                                                                                                                                   in case kl_V1537h of+                                                                                                                                                                                                          kl_V1537h@(Atom (UnboundSym "input+")) -> pat_cond_39+                                                                                                                                                                                                          kl_V1537h@(ApplC (PL "input+"+                                                                                                                                                                                                                               _)) -> pat_cond_39+                                                                                                                                                                                                          kl_V1537h@(ApplC (Func "input+"+                                                                                                                                                                                                                                 _)) -> pat_cond_39+                                                                                                                                                                                                          _ -> pat_cond_45+                                                                                                                                                                                     case kl_if_38 of+                                                                                                                                                                                         Atom (B (True)) -> do return (Atom (B True))+                                                                                                                                                                                         Atom (B (False)) -> do do return (Atom (B False))+                                                                                                                                                                                         _ -> throwError "if: expected boolean"+                                                                                                                                       pat_cond_46 = do do return (Atom (B False))+                                                                                                                                    in case kl_V1537 of+                                                                                                                                           !(kl_V1537@(Cons (!kl_V1537h)+                                                                                                                                                            (!kl_V1537t))) -> pat_cond_37 kl_V1537 kl_V1537h kl_V1537t+                                                                                                                                           _ -> pat_cond_46+                                                                                                                      case kl_if_36 of+                                                                                                                          Atom (B (True)) -> do !appl_47 <- kl_V1537 `pseq` tl kl_V1537+                                                                                                                                                !appl_48 <- appl_47 `pseq` hd appl_47+                                                                                                                                                let !appl_49 = Atom Nil+                                                                                                                                                !appl_50 <- appl_49 `pseq` klCons (ApplC (PL "stinput" kl_stinput)) appl_49+                                                                                                                                                let !appl_51 = Atom Nil+                                                                                                                                                !appl_52 <- appl_50 `pseq` (appl_51 `pseq` klCons appl_50 appl_51)+                                                                                                                                                !appl_53 <- appl_48 `pseq` (appl_52 `pseq` klCons appl_48 appl_52)+                                                                                                                                                appl_53 `pseq` klCons (ApplC (wrapNamed "input+" kl_inputPlus)) appl_53+                                                                                                                          Atom (B (False)) -> do !kl_if_54 <- let pat_cond_55 kl_V1537 kl_V1537h kl_V1537t = do !kl_if_56 <- let pat_cond_57 = do let !appl_58 = Atom Nil+                                                                                                                                                                                                                                                  !kl_if_59 <- appl_58 `pseq` (kl_V1537t `pseq` eq appl_58 kl_V1537t)+                                                                                                                                                                                                                                                  case kl_if_59 of+                                                                                                                                                                                                                                                      Atom (B (True)) -> do return (Atom (B True))+                                                                                                                                                                                                                                                      Atom (B (False)) -> do do return (Atom (B False))+                                                                                                                                                                                                                                                      _ -> throwError "if: expected boolean"+                                                                                                                                                                                                                                 pat_cond_60 = do do return (Atom (B False))+                                                                                                                                                                                                                              in case kl_V1537h of+                                                                                                                                                                                                                                     kl_V1537h@(Atom (UnboundSym "read-byte")) -> pat_cond_57+                                                                                                                                                                                                                                     kl_V1537h@(ApplC (PL "read-byte"+                                                                                                                                                                                                                                                          _)) -> pat_cond_57+                                                                                                                                                                                                                                     kl_V1537h@(ApplC (Func "read-byte"+                                                                                                                                                                                                                                                            _)) -> pat_cond_57+                                                                                                                                                                                                                                     _ -> pat_cond_60+                                                                                                                                                                                                                case kl_if_56 of+                                                                                                                                                                                                                    Atom (B (True)) -> do return (Atom (B True))+                                                                                                                                                                                                                    Atom (B (False)) -> do do return (Atom (B False))+                                                                                                                                                                                                                    _ -> throwError "if: expected boolean"+                                                                                                                                                                  pat_cond_61 = do do return (Atom (B False))+                                                                                                                                                               in case kl_V1537 of+                                                                                                                                                                      !(kl_V1537@(Cons (!kl_V1537h)+                                                                                                                                                                                       (!kl_V1537t))) -> pat_cond_55 kl_V1537 kl_V1537h kl_V1537t+                                                                                                                                                                      _ -> pat_cond_61+                                                                                                                                                 case kl_if_54 of+                                                                                                                                                     Atom (B (True)) -> do let !appl_62 = Atom Nil+                                                                                                                                                                           !appl_63 <- appl_62 `pseq` klCons (ApplC (PL "stinput" kl_stinput)) appl_62+                                                                                                                                                                           let !appl_64 = Atom Nil+                                                                                                                                                                           !appl_65 <- appl_63 `pseq` (appl_64 `pseq` klCons appl_63 appl_64)+                                                                                                                                                                           appl_65 `pseq` klCons (ApplC (wrapNamed "read-byte" readByte)) appl_65+                                                                                                                                                     Atom (B (False)) -> do !kl_if_66 <- let pat_cond_67 kl_V1537 kl_V1537h kl_V1537t = do !kl_if_68 <- let pat_cond_69 = do let !appl_70 = Atom Nil+                                                                                                                                                                                                                                                                             !kl_if_71 <- appl_70 `pseq` (kl_V1537t `pseq` eq appl_70 kl_V1537t)+                                                                                                                                                                                                                                                                             case kl_if_71 of+                                                                                                                                                                                                                                                                                 Atom (B (True)) -> do return (Atom (B True))+                                                                                                                                                                                                                                                                                 Atom (B (False)) -> do do return (Atom (B False))+                                                                                                                                                                                                                                                                                 _ -> throwError "if: expected boolean"+                                                                                                                                                                                                                                                            pat_cond_72 = do do return (Atom (B False))+                                                                                                                                                                                                                                                         in case kl_V1537h of+                                                                                                                                                                                                                                                                kl_V1537h@(Atom (UnboundSym "read-char-code")) -> pat_cond_69+                                                                                                                                                                                                                                                                kl_V1537h@(ApplC (PL "read-char-code"+                                                                                                                                                                                                                                                                                     _)) -> pat_cond_69+                                                                                                                                                                                                                                                                kl_V1537h@(ApplC (Func "read-char-code"+                                                                                                                                                                                                                                                                                       _)) -> pat_cond_69+                                                                                                                                                                                                                                                                _ -> pat_cond_72+                                                                                                                                                                                                                                           case kl_if_68 of+                                                                                                                                                                                                                                               Atom (B (True)) -> do return (Atom (B True))+                                                                                                                                                                                                                                               Atom (B (False)) -> do do return (Atom (B False))+                                                                                                                                                                                                                                               _ -> throwError "if: expected boolean"+                                                                                                                                                                                             pat_cond_73 = do do return (Atom (B False))+                                                                                                                                                                                          in case kl_V1537 of+                                                                                                                                                                                                 !(kl_V1537@(Cons (!kl_V1537h)+                                                                                                                                                                                                                  (!kl_V1537t))) -> pat_cond_67 kl_V1537 kl_V1537h kl_V1537t+                                                                                                                                                                                                 _ -> pat_cond_73+                                                                                                                                                                            case kl_if_66 of+                                                                                                                                                                                Atom (B (True)) -> do let !appl_74 = Atom Nil+                                                                                                                                                                                                      !appl_75 <- appl_74 `pseq` klCons (ApplC (PL "stinput" kl_stinput)) appl_74+                                                                                                                                                                                                      let !appl_76 = Atom Nil+                                                                                                                                                                                                      !appl_77 <- appl_75 `pseq` (appl_76 `pseq` klCons appl_75 appl_76)+                                                                                                                                                                                                      appl_77 `pseq` klCons (ApplC (wrapNamed "read-char-code" kl_read_char_code)) appl_77+                                                                                                                                                                                Atom (B (False)) -> do do return kl_V1537+                                                                                                                                                                                _ -> throwError "if: expected boolean"+                                                                                                                                                     _ -> throwError "if: expected boolean"+                                                                                                                          _ -> throwError "if: expected boolean"+                                                                                               _ -> throwError "if: expected boolean"+                                                                    _ -> throwError "if: expected boolean"+                                         _ -> throwError "if: expected boolean"++kl_shen_compose :: Core.Types.KLValue ->+                   Core.Types.KLValue ->+                   Core.Types.KLContext Core.Types.Env Core.Types.KLValue+kl_shen_compose (!kl_V1540) (!kl_V1541) = do let !appl_0 = Atom Nil+                                             !kl_if_1 <- appl_0 `pseq` (kl_V1540 `pseq` eq appl_0 kl_V1540)+                                             case kl_if_1 of+                                                 Atom (B (True)) -> do return kl_V1541+                                                 Atom (B (False)) -> do let pat_cond_2 kl_V1540 kl_V1540h kl_V1540t = do !appl_3 <- kl_V1541 `pseq` applyWrapper kl_V1540h [kl_V1541]+                                                                                                                         kl_V1540t `pseq` (appl_3 `pseq` kl_shen_compose kl_V1540t appl_3)+                                                                            pat_cond_4 = do do kl_shen_f_error (ApplC (wrapNamed "shen.compose" kl_shen_compose))+                                                                         in case kl_V1540 of+                                                                                !(kl_V1540@(Cons (!kl_V1540h)+                                                                                                 (!kl_V1540t))) -> pat_cond_2 kl_V1540 kl_V1540h kl_V1540t+                                                                                _ -> pat_cond_4+                                                 _ -> throwError "if: expected boolean"++kl_shen_compile_macro :: Core.Types.KLValue ->+                         Core.Types.KLContext Core.Types.Env Core.Types.KLValue+kl_shen_compile_macro (!kl_V1543) = do !kl_if_0 <- let pat_cond_1 kl_V1543 kl_V1543h kl_V1543t = do !kl_if_2 <- let pat_cond_3 = do !kl_if_4 <- let pat_cond_5 kl_V1543t kl_V1543th kl_V1543tt = do !kl_if_6 <- let pat_cond_7 kl_V1543tt kl_V1543tth kl_V1543ttt = do let !appl_8 = Atom Nil+                                                                                                                                                                                                                                                                       !kl_if_9 <- appl_8 `pseq` (kl_V1543ttt `pseq` eq appl_8 kl_V1543ttt)+                                                                                                                                                                                                                                                                       case kl_if_9 of+                                                                                                                                                                                                                                                                           Atom (B (True)) -> do return (Atom (B True))+                                                                                                                                                                                                                                                                           Atom (B (False)) -> do do return (Atom (B False))+                                                                                                                                                                                                                                                                           _ -> throwError "if: expected boolean"+                                                                                                                                                                                                                    pat_cond_10 = do do return (Atom (B False))+                                                                                                                                                                                                                 in case kl_V1543tt of+                                                                                                                                                                                                                        !(kl_V1543tt@(Cons (!kl_V1543tth)+                                                                                                                                                                                                                                           (!kl_V1543ttt))) -> pat_cond_7 kl_V1543tt kl_V1543tth kl_V1543ttt+                                                                                                                                                                                                                        _ -> pat_cond_10+                                                                                                                                                                                                    case kl_if_6 of+                                                                                                                                                                                                        Atom (B (True)) -> do return (Atom (B True))+                                                                                                                                                                                                        Atom (B (False)) -> do do return (Atom (B False))+                                                                                                                                                                                                        _ -> throwError "if: expected boolean"+                                                                                                                                                    pat_cond_11 = do do return (Atom (B False))+                                                                                                                                                 in case kl_V1543t of+                                                                                                                                                        !(kl_V1543t@(Cons (!kl_V1543th)+                                                                                                                                                                          (!kl_V1543tt))) -> pat_cond_5 kl_V1543t kl_V1543th kl_V1543tt+                                                                                                                                                        _ -> pat_cond_11+                                                                                                                                    case kl_if_4 of+                                                                                                                                        Atom (B (True)) -> do return (Atom (B True))+                                                                                                                                        Atom (B (False)) -> do do return (Atom (B False))+                                                                                                                                        _ -> throwError "if: expected boolean"+                                                                                                                    pat_cond_12 = do do return (Atom (B False))+                                                                                                                 in case kl_V1543h of+                                                                                                                        kl_V1543h@(Atom (UnboundSym "compile")) -> pat_cond_3+                                                                                                                        kl_V1543h@(ApplC (PL "compile"+                                                                                                                                             _)) -> pat_cond_3+                                                                                                                        kl_V1543h@(ApplC (Func "compile"+                                                                                                                                               _)) -> pat_cond_3+                                                                                                                        _ -> pat_cond_12+                                                                                                    case kl_if_2 of+                                                                                                        Atom (B (True)) -> do return (Atom (B True))+                                                                                                        Atom (B (False)) -> do do return (Atom (B False))+                                                                                                        _ -> throwError "if: expected boolean"+                                                       pat_cond_13 = do do return (Atom (B False))+                                                    in case kl_V1543 of+                                                           !(kl_V1543@(Cons (!kl_V1543h)+                                                                            (!kl_V1543t))) -> pat_cond_1 kl_V1543 kl_V1543h kl_V1543t+                                                           _ -> pat_cond_13+                                       case kl_if_0 of+                                           Atom (B (True)) -> do !appl_14 <- kl_V1543 `pseq` tl kl_V1543+                                                                 !appl_15 <- appl_14 `pseq` hd appl_14+                                                                 !appl_16 <- kl_V1543 `pseq` tl kl_V1543+                                                                 !appl_17 <- appl_16 `pseq` tl appl_16+                                                                 !appl_18 <- appl_17 `pseq` hd appl_17+                                                                 let !appl_19 = Atom Nil+                                                                 !appl_20 <- appl_19 `pseq` klCons (Core.Types.Atom (Core.Types.UnboundSym "E")) appl_19+                                                                 !appl_21 <- appl_20 `pseq` klCons (ApplC (wrapNamed "cons?" consP)) appl_20+                                                                 let !appl_22 = Atom Nil+                                                                 !appl_23 <- appl_22 `pseq` klCons (Core.Types.Atom (Core.Types.UnboundSym "E")) appl_22+                                                                 !appl_24 <- appl_23 `pseq` klCons (Core.Types.Atom (Core.Types.Str "parse error here: ~S~%")) appl_23+                                                                 !appl_25 <- appl_24 `pseq` klCons (Core.Types.Atom (Core.Types.UnboundSym "error")) appl_24+                                                                 let !appl_26 = Atom Nil+                                                                 !appl_27 <- appl_26 `pseq` klCons (Core.Types.Atom (Core.Types.Str "parse error~%")) appl_26+                                                                 !appl_28 <- appl_27 `pseq` klCons (Core.Types.Atom (Core.Types.UnboundSym "error")) appl_27+                                                                 let !appl_29 = Atom Nil+                                                                 !appl_30 <- appl_28 `pseq` (appl_29 `pseq` klCons appl_28 appl_29)+                                                                 !appl_31 <- appl_25 `pseq` (appl_30 `pseq` klCons appl_25 appl_30)+                                                                 !appl_32 <- appl_21 `pseq` (appl_31 `pseq` klCons appl_21 appl_31)+                                                                 !appl_33 <- appl_32 `pseq` klCons (Core.Types.Atom (Core.Types.UnboundSym "if")) appl_32+                                                                 let !appl_34 = Atom Nil+                                                                 !appl_35 <- appl_33 `pseq` (appl_34 `pseq` klCons appl_33 appl_34)+                                                                 !appl_36 <- appl_35 `pseq` klCons (Core.Types.Atom (Core.Types.UnboundSym "E")) appl_35+                                                                 !appl_37 <- appl_36 `pseq` klCons (Core.Types.Atom (Core.Types.UnboundSym "lambda")) appl_36+                                                                 let !appl_38 = Atom Nil+                                                                 !appl_39 <- appl_37 `pseq` (appl_38 `pseq` klCons appl_37 appl_38)+                                                                 !appl_40 <- appl_18 `pseq` (appl_39 `pseq` klCons appl_18 appl_39)+                                                                 !appl_41 <- appl_15 `pseq` (appl_40 `pseq` klCons appl_15 appl_40)+                                                                 appl_41 `pseq` klCons (ApplC (wrapNamed "compile" kl_compile)) appl_41+                                           Atom (B (False)) -> do do return kl_V1543+                                           _ -> throwError "if: expected boolean"++kl_shen_prolog_macro :: Core.Types.KLValue ->+                        Core.Types.KLContext Core.Types.Env Core.Types.KLValue+kl_shen_prolog_macro (!kl_V1545) = do let pat_cond_0 kl_V1545 kl_V1545t = do let !appl_1 = ApplC (Func "lambda" (Context (\(!kl_F) -> do let !appl_2 = ApplC (Func "lambda" (Context (\(!kl_Receive) -> do let !appl_3 = ApplC (Func "lambda" (Context (\(!kl_PrologDef) -> do let !appl_4 = ApplC (Func "lambda" (Context (\(!kl_Query) -> do return kl_Query)))+                                                                                                                                                                                                                                                                               let !appl_5 = Atom Nil+                                                                                                                                                                                                                                                                               !appl_6 <- appl_5 `pseq` klCons (ApplC (PL "shen.start-new-prolog-process" kl_shen_start_new_prolog_process)) appl_5+                                                                                                                                                                                                                                                                               let !appl_7 = Atom Nil+                                                                                                                                                                                                                                                                               !appl_8 <- appl_7 `pseq` klCons (Atom (B True)) appl_7+                                                                                                                                                                                                                                                                               !appl_9 <- appl_8 `pseq` klCons (Core.Types.Atom (Core.Types.UnboundSym "freeze")) appl_8+                                                                                                                                                                                                                                                                               let !appl_10 = Atom Nil+                                                                                                                                                                                                                                                                               !appl_11 <- appl_9 `pseq` (appl_10 `pseq` klCons appl_9 appl_10)+                                                                                                                                                                                                                                                                               !appl_12 <- appl_6 `pseq` (appl_11 `pseq` klCons appl_6 appl_11)+                                                                                                                                                                                                                                                                               !appl_13 <- kl_Receive `pseq` (appl_12 `pseq` kl_append kl_Receive appl_12)+                                                                                                                                                                                                                                                                               !appl_14 <- kl_F `pseq` (appl_13 `pseq` klCons kl_F appl_13)+                                                                                                                                                                                                                                                                               appl_14 `pseq` applyWrapper appl_4 [appl_14])))+                                                                                                                                                                                                           let !appl_15 = Atom Nil+                                                                                                                                                                                                           !appl_16 <- kl_F `pseq` (appl_15 `pseq` klCons kl_F appl_15)+                                                                                                                                                                                                           !appl_17 <- appl_16 `pseq` klCons (Core.Types.Atom (Core.Types.UnboundSym "defprolog")) appl_16+                                                                                                                                                                                                           let !appl_18 = Atom Nil+                                                                                                                                                                                                           !appl_19 <- appl_18 `pseq` klCons (Core.Types.Atom (Core.Types.UnboundSym "<--")) appl_18+                                                                                                                                                                                                           !appl_20 <- kl_V1545t `pseq` kl_shen_pass_literals kl_V1545t+                                                                                                                                                                                                           let !appl_21 = Atom Nil+                                                                                                                                                                                                           !appl_22 <- appl_21 `pseq` klCons (Core.Types.Atom (Core.Types.UnboundSym ";")) appl_21+                                                                                                                                                                                                           !appl_23 <- appl_20 `pseq` (appl_22 `pseq` kl_append appl_20 appl_22)+                                                                                                                                                                                                           !appl_24 <- appl_19 `pseq` (appl_23 `pseq` kl_append appl_19 appl_23)+                                                                                                                                                                                                           !appl_25 <- kl_Receive `pseq` (appl_24 `pseq` kl_append kl_Receive appl_24)+                                                                                                                                                                                                           !appl_26 <- appl_17 `pseq` (appl_25 `pseq` kl_append appl_17 appl_25)+                                                                                                                                                                                                           !appl_27 <- appl_26 `pseq` kl_eval appl_26+                                                                                                                                                                                                           appl_27 `pseq` applyWrapper appl_3 [appl_27])))+                                                                                                                                         !appl_28 <- kl_V1545t `pseq` kl_shen_receive_terms kl_V1545t+                                                                                                                                         appl_28 `pseq` applyWrapper appl_2 [appl_28])))+                                                                             !appl_29 <- kl_gensym (Core.Types.Atom (Core.Types.UnboundSym "shen.f"))+                                                                             appl_29 `pseq` applyWrapper appl_1 [appl_29]+                                          pat_cond_30 = do do return kl_V1545+                                       in case kl_V1545 of+                                              !(kl_V1545@(Cons (Atom (UnboundSym "prolog?"))+                                                               (!kl_V1545t))) -> pat_cond_0 kl_V1545 kl_V1545t+                                              !(kl_V1545@(Cons (ApplC (PL "prolog?" _))+                                                               (!kl_V1545t))) -> pat_cond_0 kl_V1545 kl_V1545t+                                              !(kl_V1545@(Cons (ApplC (Func "prolog?" _))+                                                               (!kl_V1545t))) -> pat_cond_0 kl_V1545 kl_V1545t+                                              _ -> pat_cond_30++kl_shen_receive_terms :: Core.Types.KLValue ->+                         Core.Types.KLContext Core.Types.Env Core.Types.KLValue+kl_shen_receive_terms (!kl_V1551) = do let !appl_0 = Atom Nil+                                       !kl_if_1 <- appl_0 `pseq` (kl_V1551 `pseq` eq appl_0 kl_V1551)+                                       case kl_if_1 of+                                           Atom (B (True)) -> do return (Atom Nil)+                                           Atom (B (False)) -> do !kl_if_2 <- let pat_cond_3 kl_V1551 kl_V1551h kl_V1551t = do !kl_if_4 <- let pat_cond_5 kl_V1551h kl_V1551hh kl_V1551ht = do !kl_if_6 <- let pat_cond_7 = do !kl_if_8 <- let pat_cond_9 kl_V1551ht kl_V1551hth kl_V1551htt = do let !appl_10 = Atom Nil+                                                                                                                                                                                                                                                                                                  !kl_if_11 <- appl_10 `pseq` (kl_V1551htt `pseq` eq appl_10 kl_V1551htt)+                                                                                                                                                                                                                                                                                                  case kl_if_11 of+                                                                                                                                                                                                                                                                                                      Atom (B (True)) -> do return (Atom (B True))+                                                                                                                                                                                                                                                                                                      Atom (B (False)) -> do do return (Atom (B False))+                                                                                                                                                                                                                                                                                                      _ -> throwError "if: expected boolean"+                                                                                                                                                                                                                                               pat_cond_12 = do do return (Atom (B False))+                                                                                                                                                                                                                                            in case kl_V1551ht of+                                                                                                                                                                                                                                                   !(kl_V1551ht@(Cons (!kl_V1551hth)+                                                                                                                                                                                                                                                                      (!kl_V1551htt))) -> pat_cond_9 kl_V1551ht kl_V1551hth kl_V1551htt+                                                                                                                                                                                                                                                   _ -> pat_cond_12+                                                                                                                                                                                                                               case kl_if_8 of+                                                                                                                                                                                                                                   Atom (B (True)) -> do return (Atom (B True))+                                                                                                                                                                                                                                   Atom (B (False)) -> do do return (Atom (B False))+                                                                                                                                                                                                                                   _ -> throwError "if: expected boolean"+                                                                                                                                                                                                               pat_cond_13 = do do return (Atom (B False))+                                                                                                                                                                                                            in case kl_V1551hh of+                                                                                                                                                                                                                   kl_V1551hh@(Atom (UnboundSym "receive")) -> pat_cond_7+                                                                                                                                                                                                                   kl_V1551hh@(ApplC (PL "receive"+                                                                                                                                                                                                                                         _)) -> pat_cond_7+                                                                                                                                                                                                                   kl_V1551hh@(ApplC (Func "receive"+                                                                                                                                                                                                                                           _)) -> pat_cond_7+                                                                                                                                                                                                                   _ -> pat_cond_13+                                                                                                                                                                                               case kl_if_6 of+                                                                                                                                                                                                   Atom (B (True)) -> do return (Atom (B True))+                                                                                                                                                                                                   Atom (B (False)) -> do do return (Atom (B False))+                                                                                                                                                                                                   _ -> throwError "if: expected boolean"+                                                                                                                                               pat_cond_14 = do do return (Atom (B False))+                                                                                                                                            in case kl_V1551h of+                                                                                                                                                   !(kl_V1551h@(Cons (!kl_V1551hh)+                                                                                                                                                                     (!kl_V1551ht))) -> pat_cond_5 kl_V1551h kl_V1551hh kl_V1551ht+                                                                                                                                                   _ -> pat_cond_14+                                                                                                                               case kl_if_4 of+                                                                                                                                   Atom (B (True)) -> do return (Atom (B True))+                                                                                                                                   Atom (B (False)) -> do do return (Atom (B False))+                                                                                                                                   _ -> throwError "if: expected boolean"+                                                                                  pat_cond_15 = do do return (Atom (B False))+                                                                               in case kl_V1551 of+                                                                                      !(kl_V1551@(Cons (!kl_V1551h)+                                                                                                       (!kl_V1551t))) -> pat_cond_3 kl_V1551 kl_V1551h kl_V1551t+                                                                                      _ -> pat_cond_15+                                                                  case kl_if_2 of+                                                                      Atom (B (True)) -> do !appl_16 <- kl_V1551 `pseq` hd kl_V1551+                                                                                            !appl_17 <- appl_16 `pseq` tl appl_16+                                                                                            !appl_18 <- appl_17 `pseq` hd appl_17+                                                                                            !appl_19 <- kl_V1551 `pseq` tl kl_V1551+                                                                                            !appl_20 <- appl_19 `pseq` kl_shen_receive_terms appl_19+                                                                                            appl_18 `pseq` (appl_20 `pseq` klCons appl_18 appl_20)+                                                                      Atom (B (False)) -> do let pat_cond_21 kl_V1551 kl_V1551h kl_V1551t = do kl_V1551t `pseq` kl_shen_receive_terms kl_V1551t+                                                                                                 pat_cond_22 = do do kl_shen_f_error (ApplC (wrapNamed "shen.receive-terms" kl_shen_receive_terms))+                                                                                              in case kl_V1551 of+                                                                                                     !(kl_V1551@(Cons (!kl_V1551h)+                                                                                                                      (!kl_V1551t))) -> pat_cond_21 kl_V1551 kl_V1551h kl_V1551t+                                                                                                     _ -> pat_cond_22+                                                                      _ -> throwError "if: expected boolean"+                                           _ -> throwError "if: expected boolean"++kl_shen_pass_literals :: Core.Types.KLValue ->+                         Core.Types.KLContext Core.Types.Env Core.Types.KLValue+kl_shen_pass_literals (!kl_V1555) = do let !appl_0 = Atom Nil+                                       !kl_if_1 <- appl_0 `pseq` (kl_V1555 `pseq` eq appl_0 kl_V1555)+                                       case kl_if_1 of+                                           Atom (B (True)) -> do return (Atom Nil)+                                           Atom (B (False)) -> do !kl_if_2 <- let pat_cond_3 kl_V1555 kl_V1555h kl_V1555t = do !kl_if_4 <- let pat_cond_5 kl_V1555h kl_V1555hh kl_V1555ht = do !kl_if_6 <- let pat_cond_7 = do !kl_if_8 <- let pat_cond_9 kl_V1555ht kl_V1555hth kl_V1555htt = do let !appl_10 = Atom Nil+                                                                                                                                                                                                                                                                                                  !kl_if_11 <- appl_10 `pseq` (kl_V1555htt `pseq` eq appl_10 kl_V1555htt)+                                                                                                                                                                                                                                                                                                  case kl_if_11 of+                                                                                                                                                                                                                                                                                                      Atom (B (True)) -> do return (Atom (B True))+                                                                                                                                                                                                                                                                                                      Atom (B (False)) -> do do return (Atom (B False))+                                                                                                                                                                                                                                                                                                      _ -> throwError "if: expected boolean"+                                                                                                                                                                                                                                               pat_cond_12 = do do return (Atom (B False))+                                                                                                                                                                                                                                            in case kl_V1555ht of+                                                                                                                                                                                                                                                   !(kl_V1555ht@(Cons (!kl_V1555hth)+                                                                                                                                                                                                                                                                      (!kl_V1555htt))) -> pat_cond_9 kl_V1555ht kl_V1555hth kl_V1555htt+                                                                                                                                                                                                                                                   _ -> pat_cond_12+                                                                                                                                                                                                                               case kl_if_8 of+                                                                                                                                                                                                                                   Atom (B (True)) -> do return (Atom (B True))+                                                                                                                                                                                                                                   Atom (B (False)) -> do do return (Atom (B False))+                                                                                                                                                                                                                                   _ -> throwError "if: expected boolean"+                                                                                                                                                                                                               pat_cond_13 = do do return (Atom (B False))+                                                                                                                                                                                                            in case kl_V1555hh of+                                                                                                                                                                                                                   kl_V1555hh@(Atom (UnboundSym "receive")) -> pat_cond_7+                                                                                                                                                                                                                   kl_V1555hh@(ApplC (PL "receive"+                                                                                                                                                                                                                                         _)) -> pat_cond_7+                                                                                                                                                                                                                   kl_V1555hh@(ApplC (Func "receive"+                                                                                                                                                                                                                                           _)) -> pat_cond_7+                                                                                                                                                                                                                   _ -> pat_cond_13+                                                                                                                                                                                               case kl_if_6 of+                                                                                                                                                                                                   Atom (B (True)) -> do return (Atom (B True))+                                                                                                                                                                                                   Atom (B (False)) -> do do return (Atom (B False))+                                                                                                                                                                                                   _ -> throwError "if: expected boolean"+                                                                                                                                               pat_cond_14 = do do return (Atom (B False))+                                                                                                                                            in case kl_V1555h of+                                                                                                                                                   !(kl_V1555h@(Cons (!kl_V1555hh)+                                                                                                                                                                     (!kl_V1555ht))) -> pat_cond_5 kl_V1555h kl_V1555hh kl_V1555ht+                                                                                                                                                   _ -> pat_cond_14+                                                                                                                               case kl_if_4 of+                                                                                                                                   Atom (B (True)) -> do return (Atom (B True))+                                                                                                                                   Atom (B (False)) -> do do return (Atom (B False))+                                                                                                                                   _ -> throwError "if: expected boolean"+                                                                                  pat_cond_15 = do do return (Atom (B False))+                                                                               in case kl_V1555 of+                                                                                      !(kl_V1555@(Cons (!kl_V1555h)+                                                                                                       (!kl_V1555t))) -> pat_cond_3 kl_V1555 kl_V1555h kl_V1555t+                                                                                      _ -> pat_cond_15+                                                                  case kl_if_2 of+                                                                      Atom (B (True)) -> do !appl_16 <- kl_V1555 `pseq` tl kl_V1555+                                                                                            appl_16 `pseq` kl_shen_pass_literals appl_16+                                                                      Atom (B (False)) -> do let pat_cond_17 kl_V1555 kl_V1555h kl_V1555t = do !appl_18 <- kl_V1555t `pseq` kl_shen_pass_literals kl_V1555t+                                                                                                                                               kl_V1555h `pseq` (appl_18 `pseq` klCons kl_V1555h appl_18)+                                                                                                 pat_cond_19 = do do kl_shen_f_error (ApplC (wrapNamed "shen.pass-literals" kl_shen_pass_literals))+                                                                                              in case kl_V1555 of+                                                                                                     !(kl_V1555@(Cons (!kl_V1555h)+                                                                                                                      (!kl_V1555t))) -> pat_cond_17 kl_V1555 kl_V1555h kl_V1555t+                                                                                                     _ -> pat_cond_19+                                                                      _ -> throwError "if: expected boolean"+                                           _ -> throwError "if: expected boolean"++kl_shen_defprolog_macro :: Core.Types.KLValue ->+                           Core.Types.KLContext Core.Types.Env Core.Types.KLValue+kl_shen_defprolog_macro (!kl_V1557) = do let pat_cond_0 kl_V1557 kl_V1557t kl_V1557th kl_V1557tt = do let !appl_1 = ApplC (Func "lambda" (Context (\(!kl_Y) -> do kl_Y `pseq` kl_shen_LBdefprologRB kl_Y)))+                                                                                                      let !appl_2 = ApplC (Func "lambda" (Context (\(!kl_Y) -> do kl_V1557th `pseq` (kl_Y `pseq` kl_shen_prolog_error kl_V1557th kl_Y))))+                                                                                                      appl_1 `pseq` (kl_V1557t `pseq` (appl_2 `pseq` kl_compile appl_1 kl_V1557t appl_2))+                                             pat_cond_3 = do do return kl_V1557+                                          in case kl_V1557 of+                                                 !(kl_V1557@(Cons (Atom (UnboundSym "defprolog"))+                                                                  (!(kl_V1557t@(Cons (!kl_V1557th)+                                                                                     (!kl_V1557tt)))))) -> pat_cond_0 kl_V1557 kl_V1557t kl_V1557th kl_V1557tt+                                                 !(kl_V1557@(Cons (ApplC (PL "defprolog" _))+                                                                  (!(kl_V1557t@(Cons (!kl_V1557th)+                                                                                     (!kl_V1557tt)))))) -> pat_cond_0 kl_V1557 kl_V1557t kl_V1557th kl_V1557tt+                                                 !(kl_V1557@(Cons (ApplC (Func "defprolog" _))+                                                                  (!(kl_V1557t@(Cons (!kl_V1557th)+                                                                                     (!kl_V1557tt)))))) -> pat_cond_0 kl_V1557 kl_V1557t kl_V1557th kl_V1557tt+                                                 _ -> pat_cond_3++kl_shen_datatype_macro :: Core.Types.KLValue ->+                          Core.Types.KLContext Core.Types.Env Core.Types.KLValue+kl_shen_datatype_macro (!kl_V1559) = do let pat_cond_0 kl_V1559 kl_V1559t kl_V1559th kl_V1559tt = do !appl_1 <- kl_V1559th `pseq` kl_shen_intern_type kl_V1559th+                                                                                                     let !appl_2 = Atom Nil+                                                                                                     !appl_3 <- appl_2 `pseq` klCons (Core.Types.Atom (Core.Types.UnboundSym "X")) appl_2+                                                                                                     !appl_4 <- appl_3 `pseq` klCons (ApplC (wrapNamed "shen.<datatype-rules>" kl_shen_LBdatatype_rulesRB)) appl_3+                                                                                                     let !appl_5 = Atom Nil+                                                                                                     !appl_6 <- appl_4 `pseq` (appl_5 `pseq` klCons appl_4 appl_5)+                                                                                                     !appl_7 <- appl_6 `pseq` klCons (Core.Types.Atom (Core.Types.UnboundSym "X")) appl_6+                                                                                                     !appl_8 <- appl_7 `pseq` klCons (Core.Types.Atom (Core.Types.UnboundSym "lambda")) appl_7+                                                                                                     !appl_9 <- kl_V1559tt `pseq` kl_shen_rcons_form kl_V1559tt+                                                                                                     let !appl_10 = Atom Nil+                                                                                                     !appl_11 <- appl_10 `pseq` klCons (ApplC (wrapNamed "shen.datatype-error" kl_shen_datatype_error)) appl_10+                                                                                                     !appl_12 <- appl_11 `pseq` klCons (ApplC (wrapNamed "function" kl_function)) appl_11+                                                                                                     let !appl_13 = Atom Nil+                                                                                                     !appl_14 <- appl_12 `pseq` (appl_13 `pseq` klCons appl_12 appl_13)+                                                                                                     !appl_15 <- appl_9 `pseq` (appl_14 `pseq` klCons appl_9 appl_14)+                                                                                                     !appl_16 <- appl_8 `pseq` (appl_15 `pseq` klCons appl_8 appl_15)+                                                                                                     !appl_17 <- appl_16 `pseq` klCons (ApplC (wrapNamed "compile" kl_compile)) appl_16+                                                                                                     let !appl_18 = Atom Nil+                                                                                                     !appl_19 <- appl_17 `pseq` (appl_18 `pseq` klCons appl_17 appl_18)+                                                                                                     !appl_20 <- appl_1 `pseq` (appl_19 `pseq` klCons appl_1 appl_19)+                                                                                                     appl_20 `pseq` klCons (ApplC (wrapNamed "shen.process-datatype" kl_shen_process_datatype)) appl_20+                                            pat_cond_21 = do do return kl_V1559+                                         in case kl_V1559 of+                                                !(kl_V1559@(Cons (Atom (UnboundSym "datatype"))+                                                                 (!(kl_V1559t@(Cons (!kl_V1559th)+                                                                                    (!kl_V1559tt)))))) -> pat_cond_0 kl_V1559 kl_V1559t kl_V1559th kl_V1559tt+                                                !(kl_V1559@(Cons (ApplC (PL "datatype" _))+                                                                 (!(kl_V1559t@(Cons (!kl_V1559th)+                                                                                    (!kl_V1559tt)))))) -> pat_cond_0 kl_V1559 kl_V1559t kl_V1559th kl_V1559tt+                                                !(kl_V1559@(Cons (ApplC (Func "datatype" _))+                                                                 (!(kl_V1559t@(Cons (!kl_V1559th)+                                                                                    (!kl_V1559tt)))))) -> pat_cond_0 kl_V1559 kl_V1559t kl_V1559th kl_V1559tt+                                                _ -> pat_cond_21++kl_shen_intern_type :: Core.Types.KLValue ->+                       Core.Types.KLContext Core.Types.Env Core.Types.KLValue+kl_shen_intern_type (!kl_V1561) = do !appl_0 <- kl_V1561 `pseq` str kl_V1561+                                     !appl_1 <- appl_0 `pseq` cn (Core.Types.Atom (Core.Types.Str "type#")) appl_0+                                     appl_1 `pseq` intern appl_1++kl_shen_Ats_macro :: Core.Types.KLValue ->+                     Core.Types.KLContext Core.Types.Env Core.Types.KLValue+kl_shen_Ats_macro (!kl_V1563) = do let pat_cond_0 kl_V1563 kl_V1563t kl_V1563th kl_V1563tt kl_V1563tth kl_V1563ttt kl_V1563ttth kl_V1563tttt = do !appl_1 <- kl_V1563tt `pseq` klCons (ApplC (wrapNamed "@s" kl_Ats)) kl_V1563tt+                                                                                                                                                  !appl_2 <- appl_1 `pseq` kl_shen_Ats_macro appl_1+                                                                                                                                                  let !appl_3 = Atom Nil+                                                                                                                                                  !appl_4 <- appl_2 `pseq` (appl_3 `pseq` klCons appl_2 appl_3)+                                                                                                                                                  !appl_5 <- kl_V1563th `pseq` (appl_4 `pseq` klCons kl_V1563th appl_4)+                                                                                                                                                  appl_5 `pseq` klCons (ApplC (wrapNamed "@s" kl_Ats)) appl_5+                                       pat_cond_6 = do !kl_if_7 <- let pat_cond_8 kl_V1563 kl_V1563h kl_V1563t = do !kl_if_9 <- let pat_cond_10 = do !kl_if_11 <- let pat_cond_12 kl_V1563t kl_V1563th kl_V1563tt = do !kl_if_13 <- let pat_cond_14 kl_V1563tt kl_V1563tth kl_V1563ttt = do let !appl_15 = Atom Nil+                                                                                                                                                                                                                                                                                            !kl_if_16 <- appl_15 `pseq` (kl_V1563ttt `pseq` eq appl_15 kl_V1563ttt)+                                                                                                                                                                                                                                                                                            !kl_if_17 <- case kl_if_16 of+                                                                                                                                                                                                                                                                                                             Atom (B (True)) -> do !kl_if_18 <- kl_V1563th `pseq` stringP kl_V1563th+                                                                                                                                                                                                                                                                                                                                   case kl_if_18 of+                                                                                                                                                                                                                                                                                                                                       Atom (B (True)) -> do return (Atom (B True))+                                                                                                                                                                                                                                                                                                                                       Atom (B (False)) -> do do return (Atom (B False))+                                                                                                                                                                                                                                                                                                                                       _ -> throwError "if: expected boolean"+                                                                                                                                                                                                                                                                                                             Atom (B (False)) -> do do return (Atom (B False))+                                                                                                                                                                                                                                                                                                             _ -> throwError "if: expected boolean"+                                                                                                                                                                                                                                                                                            case kl_if_17 of+                                                                                                                                                                                                                                                                                                Atom (B (True)) -> do return (Atom (B True))+                                                                                                                                                                                                                                                                                                Atom (B (False)) -> do do return (Atom (B False))+                                                                                                                                                                                                                                                                                                _ -> throwError "if: expected boolean"+                                                                                                                                                                                                                                        pat_cond_19 = do do return (Atom (B False))+                                                                                                                                                                                                                                     in case kl_V1563tt of+                                                                                                                                                                                                                                            !(kl_V1563tt@(Cons (!kl_V1563tth)+                                                                                                                                                                                                                                                               (!kl_V1563ttt))) -> pat_cond_14 kl_V1563tt kl_V1563tth kl_V1563ttt+                                                                                                                                                                                                                                            _ -> pat_cond_19+                                                                                                                                                                                                                       case kl_if_13 of+                                                                                                                                                                                                                           Atom (B (True)) -> do return (Atom (B True))+                                                                                                                                                                                                                           Atom (B (False)) -> do do return (Atom (B False))+                                                                                                                                                                                                                           _ -> throwError "if: expected boolean"+                                                                                                                                                                      pat_cond_20 = do do return (Atom (B False))+                                                                                                                                                                   in case kl_V1563t of+                                                                                                                                                                          !(kl_V1563t@(Cons (!kl_V1563th)+                                                                                                                                                                                            (!kl_V1563tt))) -> pat_cond_12 kl_V1563t kl_V1563th kl_V1563tt+                                                                                                                                                                          _ -> pat_cond_20+                                                                                                                                                     case kl_if_11 of+                                                                                                                                                         Atom (B (True)) -> do return (Atom (B True))+                                                                                                                                                         Atom (B (False)) -> do do return (Atom (B False))+                                                                                                                                                         _ -> throwError "if: expected boolean"+                                                                                                                                    pat_cond_21 = do do return (Atom (B False))+                                                                                                                                 in case kl_V1563h of+                                                                                                                                        kl_V1563h@(Atom (UnboundSym "@s")) -> pat_cond_10+                                                                                                                                        kl_V1563h@(ApplC (PL "@s"+                                                                                                                                                             _)) -> pat_cond_10+                                                                                                                                        kl_V1563h@(ApplC (Func "@s"+                                                                                                                                                               _)) -> pat_cond_10+                                                                                                                                        _ -> pat_cond_21+                                                                                                                    case kl_if_9 of+                                                                                                                        Atom (B (True)) -> do return (Atom (B True))+                                                                                                                        Atom (B (False)) -> do do return (Atom (B False))+                                                                                                                        _ -> throwError "if: expected boolean"+                                                                       pat_cond_22 = do do return (Atom (B False))+                                                                    in case kl_V1563 of+                                                                           !(kl_V1563@(Cons (!kl_V1563h)+                                                                                            (!kl_V1563t))) -> pat_cond_8 kl_V1563 kl_V1563h kl_V1563t+                                                                           _ -> pat_cond_22+                                                       case kl_if_7 of+                                                           Atom (B (True)) -> do let !appl_23 = ApplC (Func "lambda" (Context (\(!kl_E) -> do !appl_24 <- kl_E `pseq` kl_length kl_E+                                                                                                                                              !kl_if_25 <- appl_24 `pseq` greaterThan appl_24 (Core.Types.Atom (Core.Types.N (Core.Types.KI 1)))+                                                                                                                                              case kl_if_25 of+                                                                                                                                                  Atom (B (True)) -> do !appl_26 <- kl_V1563 `pseq` tl kl_V1563+                                                                                                                                                                        !appl_27 <- appl_26 `pseq` tl appl_26+                                                                                                                                                                        !appl_28 <- kl_E `pseq` (appl_27 `pseq` kl_append kl_E appl_27)+                                                                                                                                                                        !appl_29 <- appl_28 `pseq` klCons (ApplC (wrapNamed "@s" kl_Ats)) appl_28+                                                                                                                                                                        appl_29 `pseq` kl_shen_Ats_macro appl_29+                                                                                                                                                  Atom (B (False)) -> do do return kl_V1563+                                                                                                                                                  _ -> throwError "if: expected boolean")))+                                                                                 !appl_30 <- kl_V1563 `pseq` tl kl_V1563+                                                                                 !appl_31 <- appl_30 `pseq` hd appl_30+                                                                                 !appl_32 <- appl_31 `pseq` kl_explode appl_31+                                                                                 appl_32 `pseq` applyWrapper appl_23 [appl_32]+                                                           Atom (B (False)) -> do do return kl_V1563+                                                           _ -> throwError "if: expected boolean"+                                    in case kl_V1563 of+                                           !(kl_V1563@(Cons (Atom (UnboundSym "@s"))+                                                            (!(kl_V1563t@(Cons (!kl_V1563th)+                                                                               (!(kl_V1563tt@(Cons (!kl_V1563tth)+                                                                                                   (!(kl_V1563ttt@(Cons (!kl_V1563ttth)+                                                                                                                        (!kl_V1563tttt)))))))))))) -> pat_cond_0 kl_V1563 kl_V1563t kl_V1563th kl_V1563tt kl_V1563tth kl_V1563ttt kl_V1563ttth kl_V1563tttt+                                           !(kl_V1563@(Cons (ApplC (PL "@s" _))+                                                            (!(kl_V1563t@(Cons (!kl_V1563th)+                                                                               (!(kl_V1563tt@(Cons (!kl_V1563tth)+                                                                                                   (!(kl_V1563ttt@(Cons (!kl_V1563ttth)+                                                                                                                        (!kl_V1563tttt)))))))))))) -> pat_cond_0 kl_V1563 kl_V1563t kl_V1563th kl_V1563tt kl_V1563tth kl_V1563ttt kl_V1563ttth kl_V1563tttt+                                           !(kl_V1563@(Cons (ApplC (Func "@s" _))+                                                            (!(kl_V1563t@(Cons (!kl_V1563th)+                                                                               (!(kl_V1563tt@(Cons (!kl_V1563tth)+                                                                                                   (!(kl_V1563ttt@(Cons (!kl_V1563ttth)+                                                                                                                        (!kl_V1563tttt)))))))))))) -> pat_cond_0 kl_V1563 kl_V1563t kl_V1563th kl_V1563tt kl_V1563tth kl_V1563ttt kl_V1563ttth kl_V1563tttt+                                           _ -> pat_cond_6++kl_shen_synonyms_macro :: Core.Types.KLValue ->+                          Core.Types.KLContext Core.Types.Env Core.Types.KLValue+kl_shen_synonyms_macro (!kl_V1565) = do let pat_cond_0 kl_V1565 kl_V1565t = do !appl_1 <- kl_V1565t `pseq` kl_shen_curry_synonyms kl_V1565t+                                                                               !appl_2 <- appl_1 `pseq` kl_shen_rcons_form appl_1+                                                                               let !appl_3 = Atom Nil+                                                                               !appl_4 <- appl_2 `pseq` (appl_3 `pseq` klCons appl_2 appl_3)+                                                                               appl_4 `pseq` klCons (ApplC (wrapNamed "shen.synonyms-help" kl_shen_synonyms_help)) appl_4+                                            pat_cond_5 = do do return kl_V1565+                                         in case kl_V1565 of+                                                !(kl_V1565@(Cons (Atom (UnboundSym "synonyms"))+                                                                 (!kl_V1565t))) -> pat_cond_0 kl_V1565 kl_V1565t+                                                !(kl_V1565@(Cons (ApplC (PL "synonyms" _))+                                                                 (!kl_V1565t))) -> pat_cond_0 kl_V1565 kl_V1565t+                                                !(kl_V1565@(Cons (ApplC (Func "synonyms" _))+                                                                 (!kl_V1565t))) -> pat_cond_0 kl_V1565 kl_V1565t+                                                _ -> pat_cond_5++kl_shen_curry_synonyms :: Core.Types.KLValue ->+                          Core.Types.KLContext Core.Types.Env Core.Types.KLValue+kl_shen_curry_synonyms (!kl_V1567) = do let !appl_0 = ApplC (Func "lambda" (Context (\(!kl_X) -> do kl_X `pseq` kl_shen_curry_type kl_X)))+                                        appl_0 `pseq` (kl_V1567 `pseq` kl_map appl_0 kl_V1567)++kl_shen_nl_macro :: Core.Types.KLValue ->+                    Core.Types.KLContext Core.Types.Env Core.Types.KLValue+kl_shen_nl_macro (!kl_V1569) = do !kl_if_0 <- let pat_cond_1 kl_V1569 kl_V1569h kl_V1569t = do !kl_if_2 <- let pat_cond_3 = do let !appl_4 = Atom Nil+                                                                                                                               !kl_if_5 <- appl_4 `pseq` (kl_V1569t `pseq` eq appl_4 kl_V1569t)+                                                                                                                               case kl_if_5 of+                                                                                                                                   Atom (B (True)) -> do return (Atom (B True))+                                                                                                                                   Atom (B (False)) -> do do return (Atom (B False))+                                                                                                                                   _ -> throwError "if: expected boolean"+                                                                                                               pat_cond_6 = do do return (Atom (B False))+                                                                                                            in case kl_V1569h of+                                                                                                                   kl_V1569h@(Atom (UnboundSym "nl")) -> pat_cond_3+                                                                                                                   kl_V1569h@(ApplC (PL "nl"+                                                                                                                                        _)) -> pat_cond_3+                                                                                                                   kl_V1569h@(ApplC (Func "nl"+                                                                                                                                          _)) -> pat_cond_3+                                                                                                                   _ -> pat_cond_6+                                                                                               case kl_if_2 of+                                                                                                   Atom (B (True)) -> do return (Atom (B True))+                                                                                                   Atom (B (False)) -> do do return (Atom (B False))+                                                                                                   _ -> throwError "if: expected boolean"+                                                  pat_cond_7 = do do return (Atom (B False))+                                               in case kl_V1569 of+                                                      !(kl_V1569@(Cons (!kl_V1569h)+                                                                       (!kl_V1569t))) -> pat_cond_1 kl_V1569 kl_V1569h kl_V1569t+                                                      _ -> pat_cond_7+                                  case kl_if_0 of+                                      Atom (B (True)) -> do let !appl_8 = Atom Nil+                                                            !appl_9 <- appl_8 `pseq` klCons (Core.Types.Atom (Core.Types.N (Core.Types.KI 1))) appl_8+                                                            appl_9 `pseq` klCons (ApplC (wrapNamed "nl" kl_nl)) appl_9+                                      Atom (B (False)) -> do do return kl_V1569+                                      _ -> throwError "if: expected boolean"++kl_shen_assoc_macro :: Core.Types.KLValue ->+                       Core.Types.KLContext Core.Types.Env Core.Types.KLValue+kl_shen_assoc_macro (!kl_V1571) = do !kl_if_0 <- let pat_cond_1 kl_V1571 kl_V1571h kl_V1571t = do !kl_if_2 <- let pat_cond_3 kl_V1571t kl_V1571th kl_V1571tt = do !kl_if_4 <- let pat_cond_5 kl_V1571tt kl_V1571tth kl_V1571ttt = do !kl_if_6 <- let pat_cond_7 kl_V1571ttt kl_V1571ttth kl_V1571tttt = do let !appl_8 = Atom Nil+                                                                                                                                                                                                                                                                                                           !appl_9 <- appl_8 `pseq` klCons (ApplC (wrapNamed "do" kl_do)) appl_8+                                                                                                                                                                                                                                                                                                           !appl_10 <- appl_9 `pseq` klCons (ApplC (wrapNamed "*" multiply)) appl_9+                                                                                                                                                                                                                                                                                                           !appl_11 <- appl_10 `pseq` klCons (ApplC (wrapNamed "+" add)) appl_10+                                                                                                                                                                                                                                                                                                           !appl_12 <- appl_11 `pseq` klCons (Core.Types.Atom (Core.Types.UnboundSym "or")) appl_11+                                                                                                                                                                                                                                                                                                           !appl_13 <- appl_12 `pseq` klCons (Core.Types.Atom (Core.Types.UnboundSym "and")) appl_12+                                                                                                                                                                                                                                                                                                           !appl_14 <- appl_13 `pseq` klCons (ApplC (wrapNamed "append" kl_append)) appl_13+                                                                                                                                                                                                                                                                                                           !appl_15 <- appl_14 `pseq` klCons (ApplC (wrapNamed "@v" kl_Atv)) appl_14+                                                                                                                                                                                                                                                                                                           !appl_16 <- appl_15 `pseq` klCons (ApplC (wrapNamed "@p" kl_Atp)) appl_15+                                                                                                                                                                                                                                                                                                           !kl_if_17 <- kl_V1571h `pseq` (appl_16 `pseq` kl_elementP kl_V1571h appl_16)+                                                                                                                                                                                                                                                                                                           case kl_if_17 of+                                                                                                                                                                                                                                                                                                               Atom (B (True)) -> do return (Atom (B True))+                                                                                                                                                                                                                                                                                                               Atom (B (False)) -> do do return (Atom (B False))+                                                                                                                                                                                                                                                                                                               _ -> throwError "if: expected boolean"+                                                                                                                                                                                                                                                     pat_cond_18 = do do return (Atom (B False))+                                                                                                                                                                                                                                                  in case kl_V1571ttt of+                                                                                                                                                                                                                                                         !(kl_V1571ttt@(Cons (!kl_V1571ttth)+                                                                                                                                                                                                                                                                             (!kl_V1571tttt))) -> pat_cond_7 kl_V1571ttt kl_V1571ttth kl_V1571tttt+                                                                                                                                                                                                                                                         _ -> pat_cond_18+                                                                                                                                                                                                                                     case kl_if_6 of+                                                                                                                                                                                                                                         Atom (B (True)) -> do return (Atom (B True))+                                                                                                                                                                                                                                         Atom (B (False)) -> do do return (Atom (B False))+                                                                                                                                                                                                                                         _ -> throwError "if: expected boolean"+                                                                                                                                                                                  pat_cond_19 = do do return (Atom (B False))+                                                                                                                                                                               in case kl_V1571tt of+                                                                                                                                                                                      !(kl_V1571tt@(Cons (!kl_V1571tth)+                                                                                                                                                                                                         (!kl_V1571ttt))) -> pat_cond_5 kl_V1571tt kl_V1571tth kl_V1571ttt+                                                                                                                                                                                      _ -> pat_cond_19+                                                                                                                                                                  case kl_if_4 of+                                                                                                                                                                      Atom (B (True)) -> do return (Atom (B True))+                                                                                                                                                                      Atom (B (False)) -> do do return (Atom (B False))+                                                                                                                                                                      _ -> throwError "if: expected boolean"+                                                                                                                  pat_cond_20 = do do return (Atom (B False))+                                                                                                               in case kl_V1571t of+                                                                                                                      !(kl_V1571t@(Cons (!kl_V1571th)+                                                                                                                                        (!kl_V1571tt))) -> pat_cond_3 kl_V1571t kl_V1571th kl_V1571tt+                                                                                                                      _ -> pat_cond_20+                                                                                                  case kl_if_2 of+                                                                                                      Atom (B (True)) -> do return (Atom (B True))+                                                                                                      Atom (B (False)) -> do do return (Atom (B False))+                                                                                                      _ -> throwError "if: expected boolean"+                                                     pat_cond_21 = do do return (Atom (B False))+                                                  in case kl_V1571 of+                                                         !(kl_V1571@(Cons (!kl_V1571h)+                                                                          (!kl_V1571t))) -> pat_cond_1 kl_V1571 kl_V1571h kl_V1571t+                                                         _ -> pat_cond_21+                                     case kl_if_0 of+                                         Atom (B (True)) -> do !appl_22 <- kl_V1571 `pseq` hd kl_V1571+                                                               !appl_23 <- kl_V1571 `pseq` tl kl_V1571+                                                               !appl_24 <- appl_23 `pseq` hd appl_23+                                                               !appl_25 <- kl_V1571 `pseq` hd kl_V1571+                                                               !appl_26 <- kl_V1571 `pseq` tl kl_V1571+                                                               !appl_27 <- appl_26 `pseq` tl appl_26+                                                               !appl_28 <- appl_25 `pseq` (appl_27 `pseq` klCons appl_25 appl_27)+                                                               !appl_29 <- appl_28 `pseq` kl_shen_assoc_macro appl_28+                                                               let !appl_30 = Atom Nil+                                                               !appl_31 <- appl_29 `pseq` (appl_30 `pseq` klCons appl_29 appl_30)+                                                               !appl_32 <- appl_24 `pseq` (appl_31 `pseq` klCons appl_24 appl_31)+                                                               appl_22 `pseq` (appl_32 `pseq` klCons appl_22 appl_32)+                                         Atom (B (False)) -> do do return kl_V1571+                                         _ -> throwError "if: expected boolean"++kl_shen_let_macro :: Core.Types.KLValue ->+                     Core.Types.KLContext Core.Types.Env Core.Types.KLValue+kl_shen_let_macro (!kl_V1573) = do let pat_cond_0 kl_V1573 kl_V1573t kl_V1573th kl_V1573tt kl_V1573tth kl_V1573ttt kl_V1573ttth kl_V1573tttt kl_V1573tttth kl_V1573ttttt = do !appl_1 <- kl_V1573ttt `pseq` klCons (Core.Types.Atom (Core.Types.UnboundSym "let")) kl_V1573ttt+                                                                                                                                                                              !appl_2 <- appl_1 `pseq` kl_shen_let_macro appl_1+                                                                                                                                                                              let !appl_3 = Atom Nil+                                                                                                                                                                              !appl_4 <- appl_2 `pseq` (appl_3 `pseq` klCons appl_2 appl_3)+                                                                                                                                                                              !appl_5 <- kl_V1573tth `pseq` (appl_4 `pseq` klCons kl_V1573tth appl_4)+                                                                                                                                                                              !appl_6 <- kl_V1573th `pseq` (appl_5 `pseq` klCons kl_V1573th appl_5)+                                                                                                                                                                              appl_6 `pseq` klCons (Core.Types.Atom (Core.Types.UnboundSym "let")) appl_6+                                       pat_cond_7 = do do return kl_V1573+                                    in case kl_V1573 of+                                           !(kl_V1573@(Cons (Atom (UnboundSym "let"))+                                                            (!(kl_V1573t@(Cons (!kl_V1573th)+                                                                               (!(kl_V1573tt@(Cons (!kl_V1573tth)+                                                                                                   (!(kl_V1573ttt@(Cons (!kl_V1573ttth)+                                                                                                                        (!(kl_V1573tttt@(Cons (!kl_V1573tttth)+                                                                                                                                              (!kl_V1573ttttt))))))))))))))) -> pat_cond_0 kl_V1573 kl_V1573t kl_V1573th kl_V1573tt kl_V1573tth kl_V1573ttt kl_V1573ttth kl_V1573tttt kl_V1573tttth kl_V1573ttttt+                                           !(kl_V1573@(Cons (ApplC (PL "let" _))+                                                            (!(kl_V1573t@(Cons (!kl_V1573th)+                                                                               (!(kl_V1573tt@(Cons (!kl_V1573tth)+                                                                                                   (!(kl_V1573ttt@(Cons (!kl_V1573ttth)+                                                                                                                        (!(kl_V1573tttt@(Cons (!kl_V1573tttth)+                                                                                                                                              (!kl_V1573ttttt))))))))))))))) -> pat_cond_0 kl_V1573 kl_V1573t kl_V1573th kl_V1573tt kl_V1573tth kl_V1573ttt kl_V1573ttth kl_V1573tttt kl_V1573tttth kl_V1573ttttt+                                           !(kl_V1573@(Cons (ApplC (Func "let" _))+                                                            (!(kl_V1573t@(Cons (!kl_V1573th)+                                                                               (!(kl_V1573tt@(Cons (!kl_V1573tth)+                                                                                                   (!(kl_V1573ttt@(Cons (!kl_V1573ttth)+                                                                                                                        (!(kl_V1573tttt@(Cons (!kl_V1573tttth)+                                                                                                                                              (!kl_V1573ttttt))))))))))))))) -> pat_cond_0 kl_V1573 kl_V1573t kl_V1573th kl_V1573tt kl_V1573tth kl_V1573ttt kl_V1573ttth kl_V1573tttt kl_V1573tttth kl_V1573ttttt+                                           _ -> pat_cond_7++kl_shen_abs_macro :: Core.Types.KLValue ->+                     Core.Types.KLContext Core.Types.Env Core.Types.KLValue+kl_shen_abs_macro (!kl_V1575) = do let pat_cond_0 kl_V1575 kl_V1575t kl_V1575th kl_V1575tt kl_V1575tth kl_V1575ttt kl_V1575ttth kl_V1575tttt = do !appl_1 <- kl_V1575tt `pseq` klCons (Core.Types.Atom (Core.Types.UnboundSym "/.")) kl_V1575tt+                                                                                                                                                  !appl_2 <- appl_1 `pseq` kl_shen_abs_macro appl_1+                                                                                                                                                  let !appl_3 = Atom Nil+                                                                                                                                                  !appl_4 <- appl_2 `pseq` (appl_3 `pseq` klCons appl_2 appl_3)+                                                                                                                                                  !appl_5 <- kl_V1575th `pseq` (appl_4 `pseq` klCons kl_V1575th appl_4)+                                                                                                                                                  appl_5 `pseq` klCons (Core.Types.Atom (Core.Types.UnboundSym "lambda")) appl_5+                                       pat_cond_6 = do !kl_if_7 <- let pat_cond_8 kl_V1575 kl_V1575h kl_V1575t = do !kl_if_9 <- let pat_cond_10 = do !kl_if_11 <- let pat_cond_12 kl_V1575t kl_V1575th kl_V1575tt = do !kl_if_13 <- let pat_cond_14 kl_V1575tt kl_V1575tth kl_V1575ttt = do let !appl_15 = Atom Nil+                                                                                                                                                                                                                                                                                            !kl_if_16 <- appl_15 `pseq` (kl_V1575ttt `pseq` eq appl_15 kl_V1575ttt)+                                                                                                                                                                                                                                                                                            case kl_if_16 of+                                                                                                                                                                                                                                                                                                Atom (B (True)) -> do return (Atom (B True))+                                                                                                                                                                                                                                                                                                Atom (B (False)) -> do do return (Atom (B False))+                                                                                                                                                                                                                                                                                                _ -> throwError "if: expected boolean"+                                                                                                                                                                                                                                        pat_cond_17 = do do return (Atom (B False))+                                                                                                                                                                                                                                     in case kl_V1575tt of+                                                                                                                                                                                                                                            !(kl_V1575tt@(Cons (!kl_V1575tth)+                                                                                                                                                                                                                                                               (!kl_V1575ttt))) -> pat_cond_14 kl_V1575tt kl_V1575tth kl_V1575ttt+                                                                                                                                                                                                                                            _ -> pat_cond_17+                                                                                                                                                                                                                       case kl_if_13 of+                                                                                                                                                                                                                           Atom (B (True)) -> do return (Atom (B True))+                                                                                                                                                                                                                           Atom (B (False)) -> do do return (Atom (B False))+                                                                                                                                                                                                                           _ -> throwError "if: expected boolean"+                                                                                                                                                                      pat_cond_18 = do do return (Atom (B False))+                                                                                                                                                                   in case kl_V1575t of+                                                                                                                                                                          !(kl_V1575t@(Cons (!kl_V1575th)+                                                                                                                                                                                            (!kl_V1575tt))) -> pat_cond_12 kl_V1575t kl_V1575th kl_V1575tt+                                                                                                                                                                          _ -> pat_cond_18+                                                                                                                                                     case kl_if_11 of+                                                                                                                                                         Atom (B (True)) -> do return (Atom (B True))+                                                                                                                                                         Atom (B (False)) -> do do return (Atom (B False))+                                                                                                                                                         _ -> throwError "if: expected boolean"+                                                                                                                                    pat_cond_19 = do do return (Atom (B False))+                                                                                                                                 in case kl_V1575h of+                                                                                                                                        kl_V1575h@(Atom (UnboundSym "/.")) -> pat_cond_10+                                                                                                                                        kl_V1575h@(ApplC (PL "/."+                                                                                                                                                             _)) -> pat_cond_10+                                                                                                                                        kl_V1575h@(ApplC (Func "/."+                                                                                                                                                               _)) -> pat_cond_10+                                                                                                                                        _ -> pat_cond_19+                                                                                                                    case kl_if_9 of+                                                                                                                        Atom (B (True)) -> do return (Atom (B True))+                                                                                                                        Atom (B (False)) -> do do return (Atom (B False))+                                                                                                                        _ -> throwError "if: expected boolean"+                                                                       pat_cond_20 = do do return (Atom (B False))+                                                                    in case kl_V1575 of+                                                                           !(kl_V1575@(Cons (!kl_V1575h)+                                                                                            (!kl_V1575t))) -> pat_cond_8 kl_V1575 kl_V1575h kl_V1575t+                                                                           _ -> pat_cond_20+                                                       case kl_if_7 of+                                                           Atom (B (True)) -> do !appl_21 <- kl_V1575 `pseq` tl kl_V1575+                                                                                 appl_21 `pseq` klCons (Core.Types.Atom (Core.Types.UnboundSym "lambda")) appl_21+                                                           Atom (B (False)) -> do do return kl_V1575+                                                           _ -> throwError "if: expected boolean"+                                    in case kl_V1575 of+                                           !(kl_V1575@(Cons (Atom (UnboundSym "/."))+                                                            (!(kl_V1575t@(Cons (!kl_V1575th)+                                                                               (!(kl_V1575tt@(Cons (!kl_V1575tth)+                                                                                                   (!(kl_V1575ttt@(Cons (!kl_V1575ttth)+                                                                                                                        (!kl_V1575tttt)))))))))))) -> pat_cond_0 kl_V1575 kl_V1575t kl_V1575th kl_V1575tt kl_V1575tth kl_V1575ttt kl_V1575ttth kl_V1575tttt+                                           !(kl_V1575@(Cons (ApplC (PL "/." _))+                                                            (!(kl_V1575t@(Cons (!kl_V1575th)+                                                                               (!(kl_V1575tt@(Cons (!kl_V1575tth)+                                                                                                   (!(kl_V1575ttt@(Cons (!kl_V1575ttth)+                                                                                                                        (!kl_V1575tttt)))))))))))) -> pat_cond_0 kl_V1575 kl_V1575t kl_V1575th kl_V1575tt kl_V1575tth kl_V1575ttt kl_V1575ttth kl_V1575tttt+                                           !(kl_V1575@(Cons (ApplC (Func "/." _))+                                                            (!(kl_V1575t@(Cons (!kl_V1575th)+                                                                               (!(kl_V1575tt@(Cons (!kl_V1575tth)+                                                                                                   (!(kl_V1575ttt@(Cons (!kl_V1575ttth)+                                                                                                                        (!kl_V1575tttt)))))))))))) -> pat_cond_0 kl_V1575 kl_V1575t kl_V1575th kl_V1575tt kl_V1575tth kl_V1575ttt kl_V1575ttth kl_V1575tttt+                                           _ -> pat_cond_6++kl_shen_cases_macro :: Core.Types.KLValue ->+                       Core.Types.KLContext Core.Types.Env Core.Types.KLValue+kl_shen_cases_macro (!kl_V1579) = do let pat_cond_0 kl_V1579 kl_V1579t kl_V1579tt kl_V1579tth kl_V1579ttt = do return kl_V1579tth+                                         pat_cond_1 = do !kl_if_2 <- let pat_cond_3 kl_V1579 kl_V1579h kl_V1579t = do !kl_if_4 <- let pat_cond_5 = do !kl_if_6 <- let pat_cond_7 kl_V1579t kl_V1579th kl_V1579tt = do !kl_if_8 <- let pat_cond_9 kl_V1579tt kl_V1579tth kl_V1579ttt = do let !appl_10 = Atom Nil+                                                                                                                                                                                                                                                                                         !kl_if_11 <- appl_10 `pseq` (kl_V1579ttt `pseq` eq appl_10 kl_V1579ttt)+                                                                                                                                                                                                                                                                                         case kl_if_11 of+                                                                                                                                                                                                                                                                                             Atom (B (True)) -> do return (Atom (B True))+                                                                                                                                                                                                                                                                                             Atom (B (False)) -> do do return (Atom (B False))+                                                                                                                                                                                                                                                                                             _ -> throwError "if: expected boolean"+                                                                                                                                                                                                                                      pat_cond_12 = do do return (Atom (B False))+                                                                                                                                                                                                                                   in case kl_V1579tt of+                                                                                                                                                                                                                                          !(kl_V1579tt@(Cons (!kl_V1579tth)+                                                                                                                                                                                                                                                             (!kl_V1579ttt))) -> pat_cond_9 kl_V1579tt kl_V1579tth kl_V1579ttt+                                                                                                                                                                                                                                          _ -> pat_cond_12+                                                                                                                                                                                                                      case kl_if_8 of+                                                                                                                                                                                                                          Atom (B (True)) -> do return (Atom (B True))+                                                                                                                                                                                                                          Atom (B (False)) -> do do return (Atom (B False))+                                                                                                                                                                                                                          _ -> throwError "if: expected boolean"+                                                                                                                                                                      pat_cond_13 = do do return (Atom (B False))+                                                                                                                                                                   in case kl_V1579t of+                                                                                                                                                                          !(kl_V1579t@(Cons (!kl_V1579th)+                                                                                                                                                                                            (!kl_V1579tt))) -> pat_cond_7 kl_V1579t kl_V1579th kl_V1579tt+                                                                                                                                                                          _ -> pat_cond_13+                                                                                                                                                      case kl_if_6 of+                                                                                                                                                          Atom (B (True)) -> do return (Atom (B True))+                                                                                                                                                          Atom (B (False)) -> do do return (Atom (B False))+                                                                                                                                                          _ -> throwError "if: expected boolean"+                                                                                                                                      pat_cond_14 = do do return (Atom (B False))+                                                                                                                                   in case kl_V1579h of+                                                                                                                                          kl_V1579h@(Atom (UnboundSym "cases")) -> pat_cond_5+                                                                                                                                          kl_V1579h@(ApplC (PL "cases"+                                                                                                                                                               _)) -> pat_cond_5+                                                                                                                                          kl_V1579h@(ApplC (Func "cases"+                                                                                                                                                                 _)) -> pat_cond_5+                                                                                                                                          _ -> pat_cond_14+                                                                                                                      case kl_if_4 of+                                                                                                                          Atom (B (True)) -> do return (Atom (B True))+                                                                                                                          Atom (B (False)) -> do do return (Atom (B False))+                                                                                                                          _ -> throwError "if: expected boolean"+                                                                         pat_cond_15 = do do return (Atom (B False))+                                                                      in case kl_V1579 of+                                                                             !(kl_V1579@(Cons (!kl_V1579h)+                                                                                              (!kl_V1579t))) -> pat_cond_3 kl_V1579 kl_V1579h kl_V1579t+                                                                             _ -> pat_cond_15+                                                         case kl_if_2 of+                                                             Atom (B (True)) -> do !appl_16 <- kl_V1579 `pseq` tl kl_V1579+                                                                                   !appl_17 <- appl_16 `pseq` hd appl_16+                                                                                   !appl_18 <- kl_V1579 `pseq` tl kl_V1579+                                                                                   !appl_19 <- appl_18 `pseq` tl appl_18+                                                                                   !appl_20 <- appl_19 `pseq` hd appl_19+                                                                                   let !appl_21 = Atom Nil+                                                                                   !appl_22 <- appl_21 `pseq` klCons (Core.Types.Atom (Core.Types.Str "error: cases exhausted")) appl_21+                                                                                   !appl_23 <- appl_22 `pseq` klCons (ApplC (wrapNamed "simple-error" simpleError)) appl_22+                                                                                   let !appl_24 = Atom Nil+                                                                                   !appl_25 <- appl_23 `pseq` (appl_24 `pseq` klCons appl_23 appl_24)+                                                                                   !appl_26 <- appl_20 `pseq` (appl_25 `pseq` klCons appl_20 appl_25)+                                                                                   !appl_27 <- appl_17 `pseq` (appl_26 `pseq` klCons appl_17 appl_26)+                                                                                   appl_27 `pseq` klCons (Core.Types.Atom (Core.Types.UnboundSym "if")) appl_27+                                                             Atom (B (False)) -> do let pat_cond_28 kl_V1579 kl_V1579t kl_V1579th kl_V1579tt kl_V1579tth kl_V1579ttt = do !appl_29 <- kl_V1579ttt `pseq` klCons (Core.Types.Atom (Core.Types.UnboundSym "cases")) kl_V1579ttt+                                                                                                                                                                          !appl_30 <- appl_29 `pseq` kl_shen_cases_macro appl_29+                                                                                                                                                                          let !appl_31 = Atom Nil+                                                                                                                                                                          !appl_32 <- appl_30 `pseq` (appl_31 `pseq` klCons appl_30 appl_31)+                                                                                                                                                                          !appl_33 <- kl_V1579tth `pseq` (appl_32 `pseq` klCons kl_V1579tth appl_32)+                                                                                                                                                                          !appl_34 <- kl_V1579th `pseq` (appl_33 `pseq` klCons kl_V1579th appl_33)+                                                                                                                                                                          appl_34 `pseq` klCons (Core.Types.Atom (Core.Types.UnboundSym "if")) appl_34+                                                                                        pat_cond_35 = do !kl_if_36 <- let pat_cond_37 kl_V1579 kl_V1579h kl_V1579t = do !kl_if_38 <- let pat_cond_39 = do !kl_if_40 <- let pat_cond_41 kl_V1579t kl_V1579th kl_V1579tt = do let !appl_42 = Atom Nil+                                                                                                                                                                                                                                                                            !kl_if_43 <- appl_42 `pseq` (kl_V1579tt `pseq` eq appl_42 kl_V1579tt)+                                                                                                                                                                                                                                                                            case kl_if_43 of+                                                                                                                                                                                                                                                                                Atom (B (True)) -> do return (Atom (B True))+                                                                                                                                                                                                                                                                                Atom (B (False)) -> do do return (Atom (B False))+                                                                                                                                                                                                                                                                                _ -> throwError "if: expected boolean"+                                                                                                                                                                                                                           pat_cond_44 = do do return (Atom (B False))+                                                                                                                                                                                                                        in case kl_V1579t of+                                                                                                                                                                                                                               !(kl_V1579t@(Cons (!kl_V1579th)+                                                                                                                                                                                                                                                 (!kl_V1579tt))) -> pat_cond_41 kl_V1579t kl_V1579th kl_V1579tt+                                                                                                                                                                                                                               _ -> pat_cond_44+                                                                                                                                                                                                          case kl_if_40 of+                                                                                                                                                                                                              Atom (B (True)) -> do return (Atom (B True))+                                                                                                                                                                                                              Atom (B (False)) -> do do return (Atom (B False))+                                                                                                                                                                                                              _ -> throwError "if: expected boolean"+                                                                                                                                                                                         pat_cond_45 = do do return (Atom (B False))+                                                                                                                                                                                      in case kl_V1579h of+                                                                                                                                                                                             kl_V1579h@(Atom (UnboundSym "cases")) -> pat_cond_39+                                                                                                                                                                                             kl_V1579h@(ApplC (PL "cases"+                                                                                                                                                                                                                  _)) -> pat_cond_39+                                                                                                                                                                                             kl_V1579h@(ApplC (Func "cases"+                                                                                                                                                                                                                    _)) -> pat_cond_39+                                                                                                                                                                                             _ -> pat_cond_45+                                                                                                                                                                        case kl_if_38 of+                                                                                                                                                                            Atom (B (True)) -> do return (Atom (B True))+                                                                                                                                                                            Atom (B (False)) -> do do return (Atom (B False))+                                                                                                                                                                            _ -> throwError "if: expected boolean"+                                                                                                                          pat_cond_46 = do do return (Atom (B False))+                                                                                                                       in case kl_V1579 of+                                                                                                                              !(kl_V1579@(Cons (!kl_V1579h)+                                                                                                                                               (!kl_V1579t))) -> pat_cond_37 kl_V1579 kl_V1579h kl_V1579t+                                                                                                                              _ -> pat_cond_46+                                                                                                         case kl_if_36 of+                                                                                                             Atom (B (True)) -> do simpleError (Core.Types.Atom (Core.Types.Str "error: odd number of case elements\n"))+                                                                                                             Atom (B (False)) -> do do return kl_V1579+                                                                                                             _ -> throwError "if: expected boolean"+                                                                                     in case kl_V1579 of+                                                                                            !(kl_V1579@(Cons (Atom (UnboundSym "cases"))+                                                                                                             (!(kl_V1579t@(Cons (!kl_V1579th)+                                                                                                                                (!(kl_V1579tt@(Cons (!kl_V1579tth)+                                                                                                                                                    (!kl_V1579ttt))))))))) -> pat_cond_28 kl_V1579 kl_V1579t kl_V1579th kl_V1579tt kl_V1579tth kl_V1579ttt+                                                                                            !(kl_V1579@(Cons (ApplC (PL "cases"+                                                                                                                        _))+                                                                                                             (!(kl_V1579t@(Cons (!kl_V1579th)+                                                                                                                                (!(kl_V1579tt@(Cons (!kl_V1579tth)+                                                                                                                                                    (!kl_V1579ttt))))))))) -> pat_cond_28 kl_V1579 kl_V1579t kl_V1579th kl_V1579tt kl_V1579tth kl_V1579ttt+                                                                                            !(kl_V1579@(Cons (ApplC (Func "cases"+                                                                                                                          _))+                                                                                                             (!(kl_V1579t@(Cons (!kl_V1579th)+                                                                                                                                (!(kl_V1579tt@(Cons (!kl_V1579tth)+                                                                                                                                                    (!kl_V1579ttt))))))))) -> pat_cond_28 kl_V1579 kl_V1579t kl_V1579th kl_V1579tt kl_V1579tth kl_V1579ttt+                                                                                            _ -> pat_cond_35+                                                             _ -> throwError "if: expected boolean"+                                      in case kl_V1579 of+                                             !(kl_V1579@(Cons (Atom (UnboundSym "cases"))+                                                              (!(kl_V1579t@(Cons (Atom (UnboundSym "true"))+                                                                                 (!(kl_V1579tt@(Cons (!kl_V1579tth)+                                                                                                     (!kl_V1579ttt))))))))) -> pat_cond_0 kl_V1579 kl_V1579t kl_V1579tt kl_V1579tth kl_V1579ttt+                                             !(kl_V1579@(Cons (Atom (UnboundSym "cases"))+                                                              (!(kl_V1579t@(Cons (Atom (B (True)))+                                                                                 (!(kl_V1579tt@(Cons (!kl_V1579tth)+                                                                                                     (!kl_V1579ttt))))))))) -> pat_cond_0 kl_V1579 kl_V1579t kl_V1579tt kl_V1579tth kl_V1579ttt+                                             !(kl_V1579@(Cons (ApplC (PL "cases" _))+                                                              (!(kl_V1579t@(Cons (Atom (UnboundSym "true"))+                                                                                 (!(kl_V1579tt@(Cons (!kl_V1579tth)+                                                                                                     (!kl_V1579ttt))))))))) -> pat_cond_0 kl_V1579 kl_V1579t kl_V1579tt kl_V1579tth kl_V1579ttt+                                             !(kl_V1579@(Cons (ApplC (PL "cases" _))+                                                              (!(kl_V1579t@(Cons (Atom (B (True)))+                                                                                 (!(kl_V1579tt@(Cons (!kl_V1579tth)+                                                                                                     (!kl_V1579ttt))))))))) -> pat_cond_0 kl_V1579 kl_V1579t kl_V1579tt kl_V1579tth kl_V1579ttt+                                             !(kl_V1579@(Cons (ApplC (Func "cases" _))+                                                              (!(kl_V1579t@(Cons (Atom (UnboundSym "true"))+                                                                                 (!(kl_V1579tt@(Cons (!kl_V1579tth)+                                                                                                     (!kl_V1579ttt))))))))) -> pat_cond_0 kl_V1579 kl_V1579t kl_V1579tt kl_V1579tth kl_V1579ttt+                                             !(kl_V1579@(Cons (ApplC (Func "cases" _))+                                                              (!(kl_V1579t@(Cons (Atom (B (True)))+                                                                                 (!(kl_V1579tt@(Cons (!kl_V1579tth)+                                                                                                     (!kl_V1579ttt))))))))) -> pat_cond_0 kl_V1579 kl_V1579t kl_V1579tt kl_V1579tth kl_V1579ttt+                                             _ -> pat_cond_1++kl_shen_timer_macro :: Core.Types.KLValue ->+                       Core.Types.KLContext Core.Types.Env Core.Types.KLValue+kl_shen_timer_macro (!kl_V1581) = do !kl_if_0 <- let pat_cond_1 kl_V1581 kl_V1581h kl_V1581t = do !kl_if_2 <- let pat_cond_3 = do !kl_if_4 <- let pat_cond_5 kl_V1581t kl_V1581th kl_V1581tt = do let !appl_6 = Atom Nil+                                                                                                                                                                                                  !kl_if_7 <- appl_6 `pseq` (kl_V1581tt `pseq` eq appl_6 kl_V1581tt)+                                                                                                                                                                                                  case kl_if_7 of+                                                                                                                                                                                                      Atom (B (True)) -> do return (Atom (B True))+                                                                                                                                                                                                      Atom (B (False)) -> do do return (Atom (B False))+                                                                                                                                                                                                      _ -> throwError "if: expected boolean"+                                                                                                                                                  pat_cond_8 = do do return (Atom (B False))+                                                                                                                                               in case kl_V1581t of+                                                                                                                                                      !(kl_V1581t@(Cons (!kl_V1581th)+                                                                                                                                                                        (!kl_V1581tt))) -> pat_cond_5 kl_V1581t kl_V1581th kl_V1581tt+                                                                                                                                                      _ -> pat_cond_8+                                                                                                                                  case kl_if_4 of+                                                                                                                                      Atom (B (True)) -> do return (Atom (B True))+                                                                                                                                      Atom (B (False)) -> do do return (Atom (B False))+                                                                                                                                      _ -> throwError "if: expected boolean"+                                                                                                                  pat_cond_9 = do do return (Atom (B False))+                                                                                                               in case kl_V1581h of+                                                                                                                      kl_V1581h@(Atom (UnboundSym "time")) -> pat_cond_3+                                                                                                                      kl_V1581h@(ApplC (PL "time"+                                                                                                                                           _)) -> pat_cond_3+                                                                                                                      kl_V1581h@(ApplC (Func "time"+                                                                                                                                             _)) -> pat_cond_3+                                                                                                                      _ -> pat_cond_9+                                                                                                  case kl_if_2 of+                                                                                                      Atom (B (True)) -> do return (Atom (B True))+                                                                                                      Atom (B (False)) -> do do return (Atom (B False))+                                                                                                      _ -> throwError "if: expected boolean"+                                                     pat_cond_10 = do do return (Atom (B False))+                                                  in case kl_V1581 of+                                                         !(kl_V1581@(Cons (!kl_V1581h)+                                                                          (!kl_V1581t))) -> pat_cond_1 kl_V1581 kl_V1581h kl_V1581t+                                                         _ -> pat_cond_10+                                     case kl_if_0 of+                                         Atom (B (True)) -> do let !appl_11 = Atom Nil+                                                               !appl_12 <- appl_11 `pseq` klCons (Core.Types.Atom (Core.Types.UnboundSym "run")) appl_11+                                                               !appl_13 <- appl_12 `pseq` klCons (ApplC (wrapNamed "get-time" getTime)) appl_12+                                                               !appl_14 <- kl_V1581 `pseq` tl kl_V1581+                                                               !appl_15 <- appl_14 `pseq` hd appl_14+                                                               let !appl_16 = Atom Nil+                                                               !appl_17 <- appl_16 `pseq` klCons (Core.Types.Atom (Core.Types.UnboundSym "run")) appl_16+                                                               !appl_18 <- appl_17 `pseq` klCons (ApplC (wrapNamed "get-time" getTime)) appl_17+                                                               let !appl_19 = Atom Nil+                                                               !appl_20 <- appl_19 `pseq` klCons (Core.Types.Atom (Core.Types.UnboundSym "Start")) appl_19+                                                               !appl_21 <- appl_20 `pseq` klCons (Core.Types.Atom (Core.Types.UnboundSym "Finish")) appl_20+                                                               !appl_22 <- appl_21 `pseq` klCons (ApplC (wrapNamed "-" Primitives.subtract)) appl_21+                                                               let !appl_23 = Atom Nil+                                                               !appl_24 <- appl_23 `pseq` klCons (Core.Types.Atom (Core.Types.UnboundSym "Time")) appl_23+                                                               !appl_25 <- appl_24 `pseq` klCons (ApplC (wrapNamed "str" str)) appl_24+                                                               let !appl_26 = Atom Nil+                                                               !appl_27 <- appl_26 `pseq` klCons (Core.Types.Atom (Core.Types.Str " secs\n")) appl_26+                                                               !appl_28 <- appl_25 `pseq` (appl_27 `pseq` klCons appl_25 appl_27)+                                                               !appl_29 <- appl_28 `pseq` klCons (ApplC (wrapNamed "cn" cn)) appl_28+                                                               let !appl_30 = Atom Nil+                                                               !appl_31 <- appl_29 `pseq` (appl_30 `pseq` klCons appl_29 appl_30)+                                                               !appl_32 <- appl_31 `pseq` klCons (Core.Types.Atom (Core.Types.Str "\nrun time: ")) appl_31+                                                               !appl_33 <- appl_32 `pseq` klCons (ApplC (wrapNamed "cn" cn)) appl_32+                                                               let !appl_34 = Atom Nil+                                                               !appl_35 <- appl_34 `pseq` klCons (ApplC (PL "stoutput" kl_stoutput)) appl_34+                                                               let !appl_36 = Atom Nil+                                                               !appl_37 <- appl_35 `pseq` (appl_36 `pseq` klCons appl_35 appl_36)+                                                               !appl_38 <- appl_33 `pseq` (appl_37 `pseq` klCons appl_33 appl_37)+                                                               !appl_39 <- appl_38 `pseq` klCons (ApplC (wrapNamed "shen.prhush" kl_shen_prhush)) appl_38+                                                               let !appl_40 = Atom Nil+                                                               !appl_41 <- appl_40 `pseq` klCons (Core.Types.Atom (Core.Types.UnboundSym "Result")) appl_40+                                                               !appl_42 <- appl_39 `pseq` (appl_41 `pseq` klCons appl_39 appl_41)+                                                               !appl_43 <- appl_42 `pseq` klCons (Core.Types.Atom (Core.Types.UnboundSym "Message")) appl_42+                                                               !appl_44 <- appl_22 `pseq` (appl_43 `pseq` klCons appl_22 appl_43)+                                                               !appl_45 <- appl_44 `pseq` klCons (Core.Types.Atom (Core.Types.UnboundSym "Time")) appl_44+                                                               !appl_46 <- appl_18 `pseq` (appl_45 `pseq` klCons appl_18 appl_45)+                                                               !appl_47 <- appl_46 `pseq` klCons (Core.Types.Atom (Core.Types.UnboundSym "Finish")) appl_46+                                                               !appl_48 <- appl_15 `pseq` (appl_47 `pseq` klCons appl_15 appl_47)+                                                               !appl_49 <- appl_48 `pseq` klCons (Core.Types.Atom (Core.Types.UnboundSym "Result")) appl_48+                                                               !appl_50 <- appl_13 `pseq` (appl_49 `pseq` klCons appl_13 appl_49)+                                                               !appl_51 <- appl_50 `pseq` klCons (Core.Types.Atom (Core.Types.UnboundSym "Start")) appl_50+                                                               !appl_52 <- appl_51 `pseq` klCons (Core.Types.Atom (Core.Types.UnboundSym "let")) appl_51+                                                               appl_52 `pseq` kl_shen_let_macro appl_52+                                         Atom (B (False)) -> do do return kl_V1581+                                         _ -> throwError "if: expected boolean"++kl_shen_tuple_up :: Core.Types.KLValue ->+                    Core.Types.KLContext Core.Types.Env Core.Types.KLValue+kl_shen_tuple_up (!kl_V1583) = do let pat_cond_0 kl_V1583 kl_V1583h kl_V1583t = do !appl_1 <- kl_V1583t `pseq` kl_shen_tuple_up kl_V1583t+                                                                                   let !appl_2 = Atom Nil+                                                                                   !appl_3 <- appl_1 `pseq` (appl_2 `pseq` klCons appl_1 appl_2)+                                                                                   !appl_4 <- kl_V1583h `pseq` (appl_3 `pseq` klCons kl_V1583h appl_3)+                                                                                   appl_4 `pseq` klCons (ApplC (wrapNamed "@p" kl_Atp)) appl_4+                                      pat_cond_5 = do do return kl_V1583+                                   in case kl_V1583 of+                                          !(kl_V1583@(Cons (!kl_V1583h)+                                                           (!kl_V1583t))) -> pat_cond_0 kl_V1583 kl_V1583h kl_V1583t+                                          _ -> pat_cond_5++kl_shen_putDivget_macro :: Core.Types.KLValue ->+                           Core.Types.KLContext Core.Types.Env Core.Types.KLValue+kl_shen_putDivget_macro (!kl_V1585) = do !kl_if_0 <- let pat_cond_1 kl_V1585 kl_V1585h kl_V1585t = do !kl_if_2 <- let pat_cond_3 = do !kl_if_4 <- let pat_cond_5 kl_V1585t kl_V1585th kl_V1585tt = do !kl_if_6 <- let pat_cond_7 kl_V1585tt kl_V1585tth kl_V1585ttt = do !kl_if_8 <- let pat_cond_9 kl_V1585ttt kl_V1585ttth kl_V1585tttt = do let !appl_10 = Atom Nil+                                                                                                                                                                                                                                                                                                                                               !kl_if_11 <- appl_10 `pseq` (kl_V1585tttt `pseq` eq appl_10 kl_V1585tttt)+                                                                                                                                                                                                                                                                                                                                               case kl_if_11 of+                                                                                                                                                                                                                                                                                                                                                   Atom (B (True)) -> do return (Atom (B True))+                                                                                                                                                                                                                                                                                                                                                   Atom (B (False)) -> do do return (Atom (B False))+                                                                                                                                                                                                                                                                                                                                                   _ -> throwError "if: expected boolean"+                                                                                                                                                                                                                                                                                         pat_cond_12 = do do return (Atom (B False))+                                                                                                                                                                                                                                                                                      in case kl_V1585ttt of+                                                                                                                                                                                                                                                                                             !(kl_V1585ttt@(Cons (!kl_V1585ttth)+                                                                                                                                                                                                                                                                                                                 (!kl_V1585tttt))) -> pat_cond_9 kl_V1585ttt kl_V1585ttth kl_V1585tttt+                                                                                                                                                                                                                                                                                             _ -> pat_cond_12+                                                                                                                                                                                                                                                                         case kl_if_8 of+                                                                                                                                                                                                                                                                             Atom (B (True)) -> do return (Atom (B True))+                                                                                                                                                                                                                                                                             Atom (B (False)) -> do do return (Atom (B False))+                                                                                                                                                                                                                                                                             _ -> throwError "if: expected boolean"+                                                                                                                                                                                                                      pat_cond_13 = do do return (Atom (B False))+                                                                                                                                                                                                                   in case kl_V1585tt of+                                                                                                                                                                                                                          !(kl_V1585tt@(Cons (!kl_V1585tth)+                                                                                                                                                                                                                                             (!kl_V1585ttt))) -> pat_cond_7 kl_V1585tt kl_V1585tth kl_V1585ttt+                                                                                                                                                                                                                          _ -> pat_cond_13+                                                                                                                                                                                                      case kl_if_6 of+                                                                                                                                                                                                          Atom (B (True)) -> do return (Atom (B True))+                                                                                                                                                                                                          Atom (B (False)) -> do do return (Atom (B False))+                                                                                                                                                                                                          _ -> throwError "if: expected boolean"+                                                                                                                                                      pat_cond_14 = do do return (Atom (B False))+                                                                                                                                                   in case kl_V1585t of+                                                                                                                                                          !(kl_V1585t@(Cons (!kl_V1585th)+                                                                                                                                                                            (!kl_V1585tt))) -> pat_cond_5 kl_V1585t kl_V1585th kl_V1585tt+                                                                                                                                                          _ -> pat_cond_14+                                                                                                                                      case kl_if_4 of+                                                                                                                                          Atom (B (True)) -> do return (Atom (B True))+                                                                                                                                          Atom (B (False)) -> do do return (Atom (B False))+                                                                                                                                          _ -> throwError "if: expected boolean"+                                                                                                                      pat_cond_15 = do do return (Atom (B False))+                                                                                                                   in case kl_V1585h of+                                                                                                                          kl_V1585h@(Atom (UnboundSym "put")) -> pat_cond_3+                                                                                                                          kl_V1585h@(ApplC (PL "put"+                                                                                                                                               _)) -> pat_cond_3+                                                                                                                          kl_V1585h@(ApplC (Func "put"+                                                                                                                                                 _)) -> pat_cond_3+                                                                                                                          _ -> pat_cond_15+                                                                                                      case kl_if_2 of+                                                                                                          Atom (B (True)) -> do return (Atom (B True))+                                                                                                          Atom (B (False)) -> do do return (Atom (B False))+                                                                                                          _ -> throwError "if: expected boolean"+                                                         pat_cond_16 = do do return (Atom (B False))+                                                      in case kl_V1585 of+                                                             !(kl_V1585@(Cons (!kl_V1585h)+                                                                              (!kl_V1585t))) -> pat_cond_1 kl_V1585 kl_V1585h kl_V1585t+                                                             _ -> pat_cond_16+                                         case kl_if_0 of+                                             Atom (B (True)) -> do !appl_17 <- kl_V1585 `pseq` tl kl_V1585+                                                                   !appl_18 <- appl_17 `pseq` hd appl_17+                                                                   !appl_19 <- kl_V1585 `pseq` tl kl_V1585+                                                                   !appl_20 <- appl_19 `pseq` tl appl_19+                                                                   !appl_21 <- appl_20 `pseq` hd appl_20+                                                                   !appl_22 <- kl_V1585 `pseq` tl kl_V1585+                                                                   !appl_23 <- appl_22 `pseq` tl appl_22+                                                                   !appl_24 <- appl_23 `pseq` tl appl_23+                                                                   !appl_25 <- appl_24 `pseq` hd appl_24+                                                                   let !appl_26 = Atom Nil+                                                                   !appl_27 <- appl_26 `pseq` klCons (Core.Types.Atom (Core.Types.UnboundSym "*property-vector*")) appl_26+                                                                   !appl_28 <- appl_27 `pseq` klCons (ApplC (wrapNamed "value" value)) appl_27+                                                                   let !appl_29 = Atom Nil+                                                                   !appl_30 <- appl_28 `pseq` (appl_29 `pseq` klCons appl_28 appl_29)+                                                                   !appl_31 <- appl_25 `pseq` (appl_30 `pseq` klCons appl_25 appl_30)+                                                                   !appl_32 <- appl_21 `pseq` (appl_31 `pseq` klCons appl_21 appl_31)+                                                                   !appl_33 <- appl_18 `pseq` (appl_32 `pseq` klCons appl_18 appl_32)+                                                                   appl_33 `pseq` klCons (ApplC (wrapNamed "put" kl_put)) appl_33+                                             Atom (B (False)) -> do !kl_if_34 <- let pat_cond_35 kl_V1585 kl_V1585h kl_V1585t = do !kl_if_36 <- let pat_cond_37 = do !kl_if_38 <- let pat_cond_39 kl_V1585t kl_V1585th kl_V1585tt = do !kl_if_40 <- let pat_cond_41 kl_V1585tt kl_V1585tth kl_V1585ttt = do let !appl_42 = Atom Nil+                                                                                                                                                                                                                                                                                                            !kl_if_43 <- appl_42 `pseq` (kl_V1585ttt `pseq` eq appl_42 kl_V1585ttt)+                                                                                                                                                                                                                                                                                                            case kl_if_43 of+                                                                                                                                                                                                                                                                                                                Atom (B (True)) -> do return (Atom (B True))+                                                                                                                                                                                                                                                                                                                Atom (B (False)) -> do do return (Atom (B False))+                                                                                                                                                                                                                                                                                                                _ -> throwError "if: expected boolean"+                                                                                                                                                                                                                                                        pat_cond_44 = do do return (Atom (B False))+                                                                                                                                                                                                                                                     in case kl_V1585tt of+                                                                                                                                                                                                                                                            !(kl_V1585tt@(Cons (!kl_V1585tth)+                                                                                                                                                                                                                                                                               (!kl_V1585ttt))) -> pat_cond_41 kl_V1585tt kl_V1585tth kl_V1585ttt+                                                                                                                                                                                                                                                            _ -> pat_cond_44+                                                                                                                                                                                                                                       case kl_if_40 of+                                                                                                                                                                                                                                           Atom (B (True)) -> do return (Atom (B True))+                                                                                                                                                                                                                                           Atom (B (False)) -> do do return (Atom (B False))+                                                                                                                                                                                                                                           _ -> throwError "if: expected boolean"+                                                                                                                                                                                      pat_cond_45 = do do return (Atom (B False))+                                                                                                                                                                                   in case kl_V1585t of+                                                                                                                                                                                          !(kl_V1585t@(Cons (!kl_V1585th)+                                                                                                                                                                                                            (!kl_V1585tt))) -> pat_cond_39 kl_V1585t kl_V1585th kl_V1585tt+                                                                                                                                                                                          _ -> pat_cond_45+                                                                                                                                                                     case kl_if_38 of+                                                                                                                                                                         Atom (B (True)) -> do return (Atom (B True))+                                                                                                                                                                         Atom (B (False)) -> do do return (Atom (B False))+                                                                                                                                                                         _ -> throwError "if: expected boolean"+                                                                                                                                                    pat_cond_46 = do do return (Atom (B False))+                                                                                                                                                 in case kl_V1585h of+                                                                                                                                                        kl_V1585h@(Atom (UnboundSym "get")) -> pat_cond_37+                                                                                                                                                        kl_V1585h@(ApplC (PL "get"+                                                                                                                                                                             _)) -> pat_cond_37+                                                                                                                                                        kl_V1585h@(ApplC (Func "get"+                                                                                                                                                                               _)) -> pat_cond_37+                                                                                                                                                        _ -> pat_cond_46+                                                                                                                                   case kl_if_36 of+                                                                                                                                       Atom (B (True)) -> do return (Atom (B True))+                                                                                                                                       Atom (B (False)) -> do do return (Atom (B False))+                                                                                                                                       _ -> throwError "if: expected boolean"+                                                                                     pat_cond_47 = do do return (Atom (B False))+                                                                                  in case kl_V1585 of+                                                                                         !(kl_V1585@(Cons (!kl_V1585h)+                                                                                                          (!kl_V1585t))) -> pat_cond_35 kl_V1585 kl_V1585h kl_V1585t+                                                                                         _ -> pat_cond_47+                                                                    case kl_if_34 of+                                                                        Atom (B (True)) -> do !appl_48 <- kl_V1585 `pseq` tl kl_V1585+                                                                                              !appl_49 <- appl_48 `pseq` hd appl_48+                                                                                              !appl_50 <- kl_V1585 `pseq` tl kl_V1585+                                                                                              !appl_51 <- appl_50 `pseq` tl appl_50+                                                                                              !appl_52 <- appl_51 `pseq` hd appl_51+                                                                                              let !appl_53 = Atom Nil+                                                                                              !appl_54 <- appl_53 `pseq` klCons (Core.Types.Atom (Core.Types.UnboundSym "*property-vector*")) appl_53+                                                                                              !appl_55 <- appl_54 `pseq` klCons (ApplC (wrapNamed "value" value)) appl_54+                                                                                              let !appl_56 = Atom Nil+                                                                                              !appl_57 <- appl_55 `pseq` (appl_56 `pseq` klCons appl_55 appl_56)+                                                                                              !appl_58 <- appl_52 `pseq` (appl_57 `pseq` klCons appl_52 appl_57)+                                                                                              !appl_59 <- appl_49 `pseq` (appl_58 `pseq` klCons appl_49 appl_58)+                                                                                              appl_59 `pseq` klCons (ApplC (wrapNamed "get" kl_get)) appl_59+                                                                        Atom (B (False)) -> do !kl_if_60 <- let pat_cond_61 kl_V1585 kl_V1585h kl_V1585t = do !kl_if_62 <- let pat_cond_63 = do !kl_if_64 <- let pat_cond_65 kl_V1585t kl_V1585th kl_V1585tt = do !kl_if_66 <- let pat_cond_67 kl_V1585tt kl_V1585tth kl_V1585ttt = do !kl_if_68 <- let pat_cond_69 kl_V1585ttt kl_V1585ttth kl_V1585tttt = do let !appl_70 = Atom Nil+                                                                                                                                                                                                                                                                                                                                                                                                               !kl_if_71 <- appl_70 `pseq` (kl_V1585tttt `pseq` eq appl_70 kl_V1585tttt)+                                                                                                                                                                                                                                                                                                                                                                                                               case kl_if_71 of+                                                                                                                                                                                                                                                                                                                                                                                                                   Atom (B (True)) -> do return (Atom (B True))+                                                                                                                                                                                                                                                                                                                                                                                                                   Atom (B (False)) -> do do return (Atom (B False))+                                                                                                                                                                                                                                                                                                                                                                                                                   _ -> throwError "if: expected boolean"+                                                                                                                                                                                                                                                                                                                                                        pat_cond_72 = do do return (Atom (B False))+                                                                                                                                                                                                                                                                                                                                                     in case kl_V1585ttt of+                                                                                                                                                                                                                                                                                                                                                            !(kl_V1585ttt@(Cons (!kl_V1585ttth)+                                                                                                                                                                                                                                                                                                                                                                                (!kl_V1585tttt))) -> pat_cond_69 kl_V1585ttt kl_V1585ttth kl_V1585tttt+                                                                                                                                                                                                                                                                                                                                                            _ -> pat_cond_72+                                                                                                                                                                                                                                                                                                                                       case kl_if_68 of+                                                                                                                                                                                                                                                                                                                                           Atom (B (True)) -> do return (Atom (B True))+                                                                                                                                                                                                                                                                                                                                           Atom (B (False)) -> do do return (Atom (B False))+                                                                                                                                                                                                                                                                                                                                           _ -> throwError "if: expected boolean"+                                                                                                                                                                                                                                                                                   pat_cond_73 = do do return (Atom (B False))+                                                                                                                                                                                                                                                                                in case kl_V1585tt of+                                                                                                                                                                                                                                                                                       !(kl_V1585tt@(Cons (!kl_V1585tth)+                                                                                                                                                                                                                                                                                                          (!kl_V1585ttt))) -> pat_cond_67 kl_V1585tt kl_V1585tth kl_V1585ttt+                                                                                                                                                                                                                                                                                       _ -> pat_cond_73+                                                                                                                                                                                                                                                                  case kl_if_66 of+                                                                                                                                                                                                                                                                      Atom (B (True)) -> do return (Atom (B True))+                                                                                                                                                                                                                                                                      Atom (B (False)) -> do do return (Atom (B False))+                                                                                                                                                                                                                                                                      _ -> throwError "if: expected boolean"+                                                                                                                                                                                                                 pat_cond_74 = do do return (Atom (B False))+                                                                                                                                                                                                              in case kl_V1585t of+                                                                                                                                                                                                                     !(kl_V1585t@(Cons (!kl_V1585th)+                                                                                                                                                                                                                                       (!kl_V1585tt))) -> pat_cond_65 kl_V1585t kl_V1585th kl_V1585tt+                                                                                                                                                                                                                     _ -> pat_cond_74+                                                                                                                                                                                                case kl_if_64 of+                                                                                                                                                                                                    Atom (B (True)) -> do return (Atom (B True))+                                                                                                                                                                                                    Atom (B (False)) -> do do return (Atom (B False))+                                                                                                                                                                                                    _ -> throwError "if: expected boolean"+                                                                                                                                                                               pat_cond_75 = do do return (Atom (B False))+                                                                                                                                                                            in case kl_V1585h of+                                                                                                                                                                                   kl_V1585h@(Atom (UnboundSym "get/or")) -> pat_cond_63+                                                                                                                                                                                   kl_V1585h@(ApplC (PL "get/or"+                                                                                                                                                                                                        _)) -> pat_cond_63+                                                                                                                                                                                   kl_V1585h@(ApplC (Func "get/or"+                                                                                                                                                                                                          _)) -> pat_cond_63+                                                                                                                                                                                   _ -> pat_cond_75+                                                                                                                                                              case kl_if_62 of+                                                                                                                                                                  Atom (B (True)) -> do return (Atom (B True))+                                                                                                                                                                  Atom (B (False)) -> do do return (Atom (B False))+                                                                                                                                                                  _ -> throwError "if: expected boolean"+                                                                                                                pat_cond_76 = do do return (Atom (B False))+                                                                                                             in case kl_V1585 of+                                                                                                                    !(kl_V1585@(Cons (!kl_V1585h)+                                                                                                                                     (!kl_V1585t))) -> pat_cond_61 kl_V1585 kl_V1585h kl_V1585t+                                                                                                                    _ -> pat_cond_76+                                                                                               case kl_if_60 of+                                                                                                   Atom (B (True)) -> do !appl_77 <- kl_V1585 `pseq` tl kl_V1585+                                                                                                                         !appl_78 <- appl_77 `pseq` hd appl_77+                                                                                                                         !appl_79 <- kl_V1585 `pseq` tl kl_V1585+                                                                                                                         !appl_80 <- appl_79 `pseq` tl appl_79+                                                                                                                         !appl_81 <- appl_80 `pseq` hd appl_80+                                                                                                                         !appl_82 <- kl_V1585 `pseq` tl kl_V1585+                                                                                                                         !appl_83 <- appl_82 `pseq` tl appl_82+                                                                                                                         !appl_84 <- appl_83 `pseq` tl appl_83+                                                                                                                         !appl_85 <- appl_84 `pseq` hd appl_84+                                                                                                                         let !appl_86 = Atom Nil+                                                                                                                         !appl_87 <- appl_86 `pseq` klCons (Core.Types.Atom (Core.Types.UnboundSym "*property-vector*")) appl_86+                                                                                                                         !appl_88 <- appl_87 `pseq` klCons (ApplC (wrapNamed "value" value)) appl_87+                                                                                                                         let !appl_89 = Atom Nil+                                                                                                                         !appl_90 <- appl_88 `pseq` (appl_89 `pseq` klCons appl_88 appl_89)+                                                                                                                         !appl_91 <- appl_85 `pseq` (appl_90 `pseq` klCons appl_85 appl_90)+                                                                                                                         !appl_92 <- appl_81 `pseq` (appl_91 `pseq` klCons appl_81 appl_91)+                                                                                                                         !appl_93 <- appl_78 `pseq` (appl_92 `pseq` klCons appl_78 appl_92)+                                                                                                                         appl_93 `pseq` klCons (ApplC (wrapNamed "get/or" kl_getDivor)) appl_93+                                                                                                   Atom (B (False)) -> do !kl_if_94 <- let pat_cond_95 kl_V1585 kl_V1585h kl_V1585t = do !kl_if_96 <- let pat_cond_97 = do !kl_if_98 <- let pat_cond_99 kl_V1585t kl_V1585th kl_V1585tt = do !kl_if_100 <- let pat_cond_101 kl_V1585tt kl_V1585tth kl_V1585ttt = do let !appl_102 = Atom Nil+                                                                                                                                                                                                                                                                                                                                                                    !kl_if_103 <- appl_102 `pseq` (kl_V1585ttt `pseq` eq appl_102 kl_V1585ttt)+                                                                                                                                                                                                                                                                                                                                                                    case kl_if_103 of+                                                                                                                                                                                                                                                                                                                                                                        Atom (B (True)) -> do return (Atom (B True))+                                                                                                                                                                                                                                                                                                                                                                        Atom (B (False)) -> do do return (Atom (B False))+                                                                                                                                                                                                                                                                                                                                                                        _ -> throwError "if: expected boolean"+                                                                                                                                                                                                                                                                                                               pat_cond_104 = do do return (Atom (B False))+                                                                                                                                                                                                                                                                                                            in case kl_V1585tt of+                                                                                                                                                                                                                                                                                                                   !(kl_V1585tt@(Cons (!kl_V1585tth)+                                                                                                                                                                                                                                                                                                                                      (!kl_V1585ttt))) -> pat_cond_101 kl_V1585tt kl_V1585tth kl_V1585ttt+                                                                                                                                                                                                                                                                                                                   _ -> pat_cond_104+                                                                                                                                                                                                                                                                                             case kl_if_100 of+                                                                                                                                                                                                                                                                                                 Atom (B (True)) -> do return (Atom (B True))+                                                                                                                                                                                                                                                                                                 Atom (B (False)) -> do do return (Atom (B False))+                                                                                                                                                                                                                                                                                                 _ -> throwError "if: expected boolean"+                                                                                                                                                                                                                                            pat_cond_105 = do do return (Atom (B False))+                                                                                                                                                                                                                                         in case kl_V1585t of+                                                                                                                                                                                                                                                !(kl_V1585t@(Cons (!kl_V1585th)+                                                                                                                                                                                                                                                                  (!kl_V1585tt))) -> pat_cond_99 kl_V1585t kl_V1585th kl_V1585tt+                                                                                                                                                                                                                                                _ -> pat_cond_105+                                                                                                                                                                                                                           case kl_if_98 of+                                                                                                                                                                                                                               Atom (B (True)) -> do return (Atom (B True))+                                                                                                                                                                                                                               Atom (B (False)) -> do do return (Atom (B False))+                                                                                                                                                                                                                               _ -> throwError "if: expected boolean"+                                                                                                                                                                                                          pat_cond_106 = do do return (Atom (B False))+                                                                                                                                                                                                       in case kl_V1585h of+                                                                                                                                                                                                              kl_V1585h@(Atom (UnboundSym "unput")) -> pat_cond_97+                                                                                                                                                                                                              kl_V1585h@(ApplC (PL "unput"+                                                                                                                                                                                                                                   _)) -> pat_cond_97+                                                                                                                                                                                                              kl_V1585h@(ApplC (Func "unput"+                                                                                                                                                                                                                                     _)) -> pat_cond_97+                                                                                                                                                                                                              _ -> pat_cond_106+                                                                                                                                                                                         case kl_if_96 of+                                                                                                                                                                                             Atom (B (True)) -> do return (Atom (B True))+                                                                                                                                                                                             Atom (B (False)) -> do do return (Atom (B False))+                                                                                                                                                                                             _ -> throwError "if: expected boolean"+                                                                                                                                           pat_cond_107 = do do return (Atom (B False))+                                                                                                                                        in case kl_V1585 of+                                                                                                                                               !(kl_V1585@(Cons (!kl_V1585h)+                                                                                                                                                                (!kl_V1585t))) -> pat_cond_95 kl_V1585 kl_V1585h kl_V1585t+                                                                                                                                               _ -> pat_cond_107+                                                                                                                          case kl_if_94 of+                                                                                                                              Atom (B (True)) -> do !appl_108 <- kl_V1585 `pseq` tl kl_V1585+                                                                                                                                                    !appl_109 <- appl_108 `pseq` hd appl_108+                                                                                                                                                    !appl_110 <- kl_V1585 `pseq` tl kl_V1585+                                                                                                                                                    !appl_111 <- appl_110 `pseq` tl appl_110+                                                                                                                                                    !appl_112 <- appl_111 `pseq` hd appl_111+                                                                                                                                                    let !appl_113 = Atom Nil+                                                                                                                                                    !appl_114 <- appl_113 `pseq` klCons (Core.Types.Atom (Core.Types.UnboundSym "*property-vector*")) appl_113+                                                                                                                                                    !appl_115 <- appl_114 `pseq` klCons (ApplC (wrapNamed "value" value)) appl_114+                                                                                                                                                    let !appl_116 = Atom Nil+                                                                                                                                                    !appl_117 <- appl_115 `pseq` (appl_116 `pseq` klCons appl_115 appl_116)+                                                                                                                                                    !appl_118 <- appl_112 `pseq` (appl_117 `pseq` klCons appl_112 appl_117)+                                                                                                                                                    !appl_119 <- appl_109 `pseq` (appl_118 `pseq` klCons appl_109 appl_118)+                                                                                                                                                    appl_119 `pseq` klCons (ApplC (wrapNamed "unput" kl_unput)) appl_119+                                                                                                                              Atom (B (False)) -> do do return kl_V1585+                                                                                                                              _ -> throwError "if: expected boolean"+                                                                                                   _ -> throwError "if: expected boolean"+                                                                        _ -> throwError "if: expected boolean"+                                             _ -> throwError "if: expected boolean"++kl_shen_function_macro :: Core.Types.KLValue ->+                          Core.Types.KLContext Core.Types.Env Core.Types.KLValue+kl_shen_function_macro (!kl_V1587) = do !kl_if_0 <- let pat_cond_1 kl_V1587 kl_V1587h kl_V1587t = do !kl_if_2 <- let pat_cond_3 = do !kl_if_4 <- let pat_cond_5 kl_V1587t kl_V1587th kl_V1587tt = do let !appl_6 = Atom Nil+                                                                                                                                                                                                     !kl_if_7 <- appl_6 `pseq` (kl_V1587tt `pseq` eq appl_6 kl_V1587tt)+                                                                                                                                                                                                     case kl_if_7 of+                                                                                                                                                                                                         Atom (B (True)) -> do return (Atom (B True))+                                                                                                                                                                                                         Atom (B (False)) -> do do return (Atom (B False))+                                                                                                                                                                                                         _ -> throwError "if: expected boolean"+                                                                                                                                                     pat_cond_8 = do do return (Atom (B False))+                                                                                                                                                  in case kl_V1587t of+                                                                                                                                                         !(kl_V1587t@(Cons (!kl_V1587th)+                                                                                                                                                                           (!kl_V1587tt))) -> pat_cond_5 kl_V1587t kl_V1587th kl_V1587tt+                                                                                                                                                         _ -> pat_cond_8+                                                                                                                                     case kl_if_4 of+                                                                                                                                         Atom (B (True)) -> do return (Atom (B True))+                                                                                                                                         Atom (B (False)) -> do do return (Atom (B False))+                                                                                                                                         _ -> throwError "if: expected boolean"+                                                                                                                     pat_cond_9 = do do return (Atom (B False))+                                                                                                                  in case kl_V1587h of+                                                                                                                         kl_V1587h@(Atom (UnboundSym "function")) -> pat_cond_3+                                                                                                                         kl_V1587h@(ApplC (PL "function"+                                                                                                                                              _)) -> pat_cond_3+                                                                                                                         kl_V1587h@(ApplC (Func "function"+                                                                                                                                                _)) -> pat_cond_3+                                                                                                                         _ -> pat_cond_9+                                                                                                     case kl_if_2 of+                                                                                                         Atom (B (True)) -> do return (Atom (B True))+                                                                                                         Atom (B (False)) -> do do return (Atom (B False))+                                                                                                         _ -> throwError "if: expected boolean"+                                                        pat_cond_10 = do do return (Atom (B False))+                                                     in case kl_V1587 of+                                                            !(kl_V1587@(Cons (!kl_V1587h)+                                                                             (!kl_V1587t))) -> pat_cond_1 kl_V1587 kl_V1587h kl_V1587t+                                                            _ -> pat_cond_10+                                        case kl_if_0 of+                                            Atom (B (True)) -> do !appl_11 <- kl_V1587 `pseq` tl kl_V1587+                                                                  !appl_12 <- appl_11 `pseq` hd appl_11+                                                                  !appl_13 <- kl_V1587 `pseq` tl kl_V1587+                                                                  !appl_14 <- appl_13 `pseq` hd appl_13+                                                                  let !aw_15 = Core.Types.Atom (Core.Types.UnboundSym "arity")+                                                                  !appl_16 <- appl_14 `pseq` applyWrapper aw_15 [appl_14]+                                                                  appl_12 `pseq` (appl_16 `pseq` kl_shen_function_abstraction appl_12 appl_16)+                                            Atom (B (False)) -> do do return kl_V1587+                                            _ -> throwError "if: expected boolean"++kl_shen_function_abstraction :: Core.Types.KLValue ->+                                Core.Types.KLValue ->+                                Core.Types.KLContext Core.Types.Env Core.Types.KLValue+kl_shen_function_abstraction (!kl_V1590) (!kl_V1591) = do let pat_cond_0 = do !appl_1 <- kl_V1590 `pseq` kl_shen_app kl_V1590 (Core.Types.Atom (Core.Types.Str " has no lambda form\n")) (Core.Types.Atom (Core.Types.UnboundSym "shen.a"))+                                                                              appl_1 `pseq` simpleError appl_1+                                                              pat_cond_2 = do let !appl_3 = Atom Nil+                                                                              !appl_4 <- kl_V1590 `pseq` (appl_3 `pseq` klCons kl_V1590 appl_3)+                                                                              appl_4 `pseq` klCons (ApplC (wrapNamed "function" kl_function)) appl_4+                                                              pat_cond_5 = do do let !appl_6 = Atom Nil+                                                                                 kl_V1590 `pseq` (kl_V1591 `pseq` (appl_6 `pseq` kl_shen_function_abstraction_help kl_V1590 kl_V1591 appl_6))+                                                           in case kl_V1591 of+                                                                  kl_V1591@(Atom (N (KI 0))) -> pat_cond_0+                                                                  kl_V1591@(Atom (N (KI (-1)))) -> pat_cond_2+                                                                  _ -> pat_cond_5++kl_shen_function_abstraction_help :: Core.Types.KLValue ->+                                     Core.Types.KLValue ->+                                     Core.Types.KLValue ->+                                     Core.Types.KLContext Core.Types.Env Core.Types.KLValue+kl_shen_function_abstraction_help (!kl_V1595) (!kl_V1596) (!kl_V1597) = do let pat_cond_0 = do kl_V1595 `pseq` (kl_V1597 `pseq` klCons kl_V1595 kl_V1597)+                                                                               pat_cond_1 = do do let !appl_2 = ApplC (Func "lambda" (Context (\(!kl_X) -> do !appl_3 <- kl_V1596 `pseq` Primitives.subtract kl_V1596 (Core.Types.Atom (Core.Types.N (Core.Types.KI 1)))+                                                                                                                                                              let !appl_4 = Atom Nil+                                                                                                                                                              !appl_5 <- kl_X `pseq` (appl_4 `pseq` klCons kl_X appl_4)+                                                                                                                                                              !appl_6 <- kl_V1597 `pseq` (appl_5 `pseq` kl_append kl_V1597 appl_5)+                                                                                                                                                              !appl_7 <- kl_V1595 `pseq` (appl_3 `pseq` (appl_6 `pseq` kl_shen_function_abstraction_help kl_V1595 appl_3 appl_6))+                                                                                                                                                              let !appl_8 = Atom Nil+                                                                                                                                                              !appl_9 <- appl_7 `pseq` (appl_8 `pseq` klCons appl_7 appl_8)+                                                                                                                                                              !appl_10 <- kl_X `pseq` (appl_9 `pseq` klCons kl_X appl_9)+                                                                                                                                                              appl_10 `pseq` klCons (Core.Types.Atom (Core.Types.UnboundSym "/.")) appl_10)))+                                                                                                  !appl_11 <- kl_gensym (Core.Types.Atom (Core.Types.UnboundSym "V"))+                                                                                                  appl_11 `pseq` applyWrapper appl_2 [appl_11]+                                                                            in case kl_V1596 of+                                                                                   kl_V1596@(Atom (N (KI 0))) -> pat_cond_0+                                                                                   _ -> pat_cond_1++kl_undefmacro :: Core.Types.KLValue ->+                 Core.Types.KLContext Core.Types.Env Core.Types.KLValue+kl_undefmacro (!kl_V1599) = do let !appl_0 = ApplC (Func "lambda" (Context (\(!kl_MacroReg) -> do let !appl_1 = ApplC (Func "lambda" (Context (\(!kl_Pos) -> do let !appl_2 = ApplC (Func "lambda" (Context (\(!kl_Remove1) -> do let !appl_3 = ApplC (Func "lambda" (Context (\(!kl_Remove2) -> do return kl_V1599)))+                                                                                                                                                                                                                                  !appl_4 <- value (Core.Types.Atom (Core.Types.UnboundSym "*macros*"))+                                                                                                                                                                                                                                  !appl_5 <- kl_Pos `pseq` (appl_4 `pseq` kl_shen_remove_nth kl_Pos appl_4)+                                                                                                                                                                                                                                  !appl_6 <- appl_5 `pseq` klSet (Core.Types.Atom (Core.Types.UnboundSym "*macros*")) appl_5+                                                                                                                                                                                                                                  appl_6 `pseq` applyWrapper appl_3 [appl_6])))+                                                                                                                                                                !appl_7 <- kl_V1599 `pseq` (kl_MacroReg `pseq` kl_remove kl_V1599 kl_MacroReg)+                                                                                                                                                                !appl_8 <- appl_7 `pseq` klSet (Core.Types.Atom (Core.Types.UnboundSym "shen.*macroreg*")) appl_7+                                                                                                                                                                appl_8 `pseq` applyWrapper appl_2 [appl_8])))+                                                                                                  !appl_9 <- kl_V1599 `pseq` (kl_MacroReg `pseq` kl_shen_findpos kl_V1599 kl_MacroReg)+                                                                                                  appl_9 `pseq` applyWrapper appl_1 [appl_9])))+                               !appl_10 <- value (Core.Types.Atom (Core.Types.UnboundSym "shen.*macroreg*"))+                               appl_10 `pseq` applyWrapper appl_0 [appl_10]++kl_shen_findpos :: Core.Types.KLValue ->+                   Core.Types.KLValue ->+                   Core.Types.KLContext Core.Types.Env Core.Types.KLValue+kl_shen_findpos (!kl_V1609) (!kl_V1610) = do let !appl_0 = Atom Nil+                                             !kl_if_1 <- appl_0 `pseq` (kl_V1610 `pseq` eq appl_0 kl_V1610)+                                             case kl_if_1 of+                                                 Atom (B (True)) -> do !appl_2 <- kl_V1609 `pseq` kl_shen_app kl_V1609 (Core.Types.Atom (Core.Types.Str " is not a macro\n")) (Core.Types.Atom (Core.Types.UnboundSym "shen.a"))+                                                                       appl_2 `pseq` simpleError appl_2+                                                 Atom (B (False)) -> do let pat_cond_3 kl_V1610 kl_V1610h kl_V1610t = do return (Core.Types.Atom (Core.Types.N (Core.Types.KI 1)))+                                                                            pat_cond_4 kl_V1610 kl_V1610h kl_V1610t = do !appl_5 <- kl_V1609 `pseq` (kl_V1610t `pseq` kl_shen_findpos kl_V1609 kl_V1610t)+                                                                                                                         appl_5 `pseq` add (Core.Types.Atom (Core.Types.N (Core.Types.KI 1))) appl_5+                                                                            pat_cond_6 = do do kl_shen_f_error (ApplC (wrapNamed "shen.findpos" kl_shen_findpos))+                                                                         in case kl_V1610 of+                                                                                !(kl_V1610@(Cons (!kl_V1610h)+                                                                                                 (!kl_V1610t))) | eqCore kl_V1610h kl_V1609 -> pat_cond_3 kl_V1610 kl_V1610h kl_V1610t+                                                                                !(kl_V1610@(Cons (!kl_V1610h)+                                                                                                 (!kl_V1610t))) -> pat_cond_4 kl_V1610 kl_V1610h kl_V1610t+                                                                                _ -> pat_cond_6+                                                 _ -> throwError "if: expected boolean"++kl_shen_remove_nth :: Core.Types.KLValue ->+                      Core.Types.KLValue ->+                      Core.Types.KLContext Core.Types.Env Core.Types.KLValue+kl_shen_remove_nth (!kl_V1615) (!kl_V1616) = do !kl_if_0 <- let pat_cond_1 = do let pat_cond_2 kl_V1616 kl_V1616h kl_V1616t = do return (Atom (B True))+                                                                                    pat_cond_3 = do do return (Atom (B False))+                                                                                 in case kl_V1616 of+                                                                                        !(kl_V1616@(Cons (!kl_V1616h)+                                                                                                         (!kl_V1616t))) -> pat_cond_2 kl_V1616 kl_V1616h kl_V1616t+                                                                                        _ -> pat_cond_3+                                                                pat_cond_4 = do do return (Atom (B False))+                                                             in case kl_V1615 of+                                                                    kl_V1615@(Atom (N (KI 1))) -> pat_cond_1+                                                                    _ -> pat_cond_4+                                                case kl_if_0 of+                                                    Atom (B (True)) -> do kl_V1616 `pseq` tl kl_V1616+                                                    Atom (B (False)) -> do let pat_cond_5 kl_V1616 kl_V1616h kl_V1616t = do !appl_6 <- kl_V1615 `pseq` Primitives.subtract kl_V1615 (Core.Types.Atom (Core.Types.N (Core.Types.KI 1)))+                                                                                                                            !appl_7 <- appl_6 `pseq` (kl_V1616t `pseq` kl_shen_remove_nth appl_6 kl_V1616t)+                                                                                                                            kl_V1616h `pseq` (appl_7 `pseq` klCons kl_V1616h appl_7)+                                                                               pat_cond_8 = do do kl_shen_f_error (ApplC (wrapNamed "shen.remove-nth" kl_shen_remove_nth))+                                                                            in case kl_V1616 of+                                                                                   !(kl_V1616@(Cons (!kl_V1616h)+                                                                                                    (!kl_V1616t))) -> pat_cond_5 kl_V1616 kl_V1616h kl_V1616t+                                                                                   _ -> pat_cond_8+                                                    _ -> throwError "if: expected boolean"++expr10 :: Core.Types.KLContext Core.Types.Env Core.Types.KLValue+expr10 = do (do return (Core.Types.Atom (Core.Types.Str "Copyright (c) 2015, Mark Tarver\n\nAll rights reserved.\n\nRedistribution and use in source and binary forms, with or without\nmodification, are permitted provided that the following conditions are met:\n1. Redistributions of source code must retain the above copyright\n   notice, this list of conditions and the following disclaimer.\n2. Redistributions in binary form must reproduce the above copyright\n   notice, this list of conditions and the following disclaimer in the\n   documentation and/or other materials provided with the distribution.\n3. The name of Mark Tarver may not be used to endorse or promote products\n   derived from this software without specific prior written permission.\n\nTHIS SOFTWARE IS PROVIDED BY Mark Tarver ''AS IS'' AND ANY\nEXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED\nWARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE\nDISCLAIMED. IN NO EVENT SHALL Mark Tarver BE LIABLE FOR ANY\nDIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES\n(INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;\nLOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND\nON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT\n(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS\nSOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE."))) `catchError` (\(!kl_E) -> do return (Core.Types.Atom (Core.Types.Str "E")))
Shentong/Backend/PortInfo.hs view
@@ -9,10 +9,10 @@ import Control.Monad.Except
 import Control.Parallel
 import Environment
-import Primitives as Primitives
+import Core.Primitives as Primitives
 import Backend.Utils
-import Types as Types
-import Utils
+import Core.Types as Types
+import Core.Utils
 import Wrap
 import Backend.Toplevel
 import Backend.Core
@@ -57,10 +57,10 @@ -}
 
 expr14 :: Types.KLContext Types.Env Types.KLValue
-expr14 = do (do klSet (Types.Atom (Types.UnboundSym "*os*")) (Types.Atom (Types.Str "Windows 7"))) `catchError` (\(!kl_E) -> do return (Types.Atom (Types.Str "E")))
+expr14 = do (do klSet (Types.Atom (Types.UnboundSym "*os*")) (Types.Atom (Types.Str "Arch Linux 4.10"))) `catchError` (\(!kl_E) -> do return (Types.Atom (Types.Str "E")))
             (do klSet (Types.Atom (Types.UnboundSym "*language*")) (Types.Atom (Types.Str "Haskell 2010"))) `catchError` (\(!kl_E) -> do return (Types.Atom (Types.Str "E")))
-            (do klSet (Types.Atom (Types.UnboundSym "*version*")) (Types.Atom (Types.Str "version 19.1"))) `catchError` (\(!kl_E) -> do return (Types.Atom (Types.Str "E")))
-            (do klSet (Types.Atom (Types.UnboundSym "*port*")) (Types.Atom (Types.Str "0.3.1"))) `catchError` (\(!kl_E) -> do return (Types.Atom (Types.Str "E")))
+            (do klSet (Types.Atom (Types.UnboundSym "*version*")) (Types.Atom (Types.Str "version 20.0"))) `catchError` (\(!kl_E) -> do return (Types.Atom (Types.Str "E")))
+            (do klSet (Types.Atom (Types.UnboundSym "*port*")) (Types.Atom (Types.Str "0.3.2"))) `catchError` (\(!kl_E) -> do return (Types.Atom (Types.Str "E")))
             (do klSet (Types.Atom (Types.UnboundSym "*porters*")) (Types.Atom (Types.Str "Mark Thom"))) `catchError` (\(!kl_E) -> do return (Types.Atom (Types.Str "E")))
             (do klSet (Types.Atom (Types.UnboundSym "*implementation*")) (Types.Atom (Types.Str "GHC 8.0.1"))) `catchError` (\(!kl_E) -> do return (Types.Atom (Types.Str "E")))
             (do klSet (Types.Atom (Types.UnboundSym "*release*")) (Types.Atom (Types.Str "0.1"))) `catchError` (\(!kl_E) -> do return (Types.Atom (Types.Str "E")))
Shentong/Backend/Prolog.hs view

file too large to diff

Shentong/Backend/Reader.hs view
@@ -1,2799 +1,2962 @@-{-# LANGUAGE BangPatterns #-}
-{-# LANGUAGE OverloadedStrings #-}
-{-# LANGUAGE Strict #-}
-{-# LANGUAGE StrictData #-}
-{-# LANGUAGE ViewPatterns #-}
-
-module Backend.Reader where
-
-import Control.Monad.Except
-import Control.Parallel
-import Environment
-import Primitives as Primitives
-import Backend.Utils
-import Types as Types
-import Utils
-import Wrap
-import Backend.Toplevel
-import Backend.Core
-import Backend.Sys
-import Backend.Sequent
-import Backend.Yacc
-
-{-
-Copyright (c) 2015, Mark Tarver
-All rights reserved.
-
-Redistribution and use in source and binary forms, with or without
-modification, are permitted provided that the following conditions are met:
-
-1. Redistributions of source code must retain the above copyright
-   notice, this list of conditions and the following disclaimer.
-2. Redistributions in binary form must reproduce the above copyright
-   notice, this list of conditions and the following disclaimer in the
-   documentation and/or other materials provided with the distribution.
-3. The name of Mark Tarver may not be used to endorse or promote products
-   derived from this software without specific prior written permission.
-
-THIS SOFTWARE IS PROVIDED BY Mark Tarver ''AS IS'' AND ANY
-EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
-WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
-DISCLAIMED. IN NO EVENT SHALL Mark Tarver BE LIABLE FOR ANY
-DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
-(INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
-LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND
-ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
-(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
-SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
--}
-
-kl_read_file_as_bytelist :: Types.KLValue ->
-                            Types.KLContext Types.Env Types.KLValue
-kl_read_file_as_bytelist (!kl_V2161) = do let !appl_0 = ApplC (Func "lambda" (Context (\(!kl_Stream) -> do let !appl_1 = ApplC (Func "lambda" (Context (\(!kl_Byte) -> do let !appl_2 = ApplC (Func "lambda" (Context (\(!kl_Bytes) -> do let !appl_3 = ApplC (Func "lambda" (Context (\(!kl_Close) -> do kl_Bytes `pseq` kl_reverse kl_Bytes)))
-                                                                                                                                                                                                                                          !appl_4 <- kl_Stream `pseq` closeStream kl_Stream
-                                                                                                                                                                                                                                          appl_4 `pseq` applyWrapper appl_3 [appl_4])))
-                                                                                                                                                                          !appl_5 <- kl_Stream `pseq` (kl_Byte `pseq` kl_shen_read_file_as_bytelist_help kl_Stream kl_Byte (Types.Atom Types.Nil))
-                                                                                                                                                                          appl_5 `pseq` applyWrapper appl_2 [appl_5])))
-                                                                                                           !appl_6 <- kl_Stream `pseq` readByte kl_Stream
-                                                                                                           appl_6 `pseq` applyWrapper appl_1 [appl_6])))
-                                          !appl_7 <- kl_V2161 `pseq` openStream kl_V2161 (Types.Atom (Types.UnboundSym "in"))
-                                          appl_7 `pseq` applyWrapper appl_0 [appl_7]
-
-kl_shen_read_file_as_bytelist_help :: Types.KLValue ->
-                                      Types.KLValue ->
-                                      Types.KLValue -> Types.KLContext Types.Env Types.KLValue
-kl_shen_read_file_as_bytelist_help (!kl_V2165) (!kl_V2166) (!kl_V2167) = do let pat_cond_0 = do return kl_V2167
-                                                                                pat_cond_1 = do do !appl_2 <- kl_V2165 `pseq` readByte kl_V2165
-                                                                                                   !appl_3 <- kl_V2166 `pseq` (kl_V2167 `pseq` klCons kl_V2166 kl_V2167)
-                                                                                                   kl_V2165 `pseq` (appl_2 `pseq` (appl_3 `pseq` kl_shen_read_file_as_bytelist_help kl_V2165 appl_2 appl_3))
-                                                                             in case kl_V2166 of
-                                                                                    kl_V2166@(Atom (N (KI (-1)))) -> pat_cond_0
-                                                                                    _ -> pat_cond_1
-
-kl_read_file_as_string :: Types.KLValue ->
-                          Types.KLContext Types.Env Types.KLValue
-kl_read_file_as_string (!kl_V2169) = do let !appl_0 = ApplC (Func "lambda" (Context (\(!kl_Stream) -> do !appl_1 <- kl_Stream `pseq` readByte kl_Stream
-                                                                                                         kl_Stream `pseq` (appl_1 `pseq` kl_shen_rfas_h kl_Stream appl_1 (Types.Atom (Types.Str ""))))))
-                                        !appl_2 <- kl_V2169 `pseq` openStream kl_V2169 (Types.Atom (Types.UnboundSym "in"))
-                                        appl_2 `pseq` applyWrapper appl_0 [appl_2]
-
-kl_shen_rfas_h :: Types.KLValue ->
-                  Types.KLValue ->
-                  Types.KLValue -> Types.KLContext Types.Env Types.KLValue
-kl_shen_rfas_h (!kl_V2173) (!kl_V2174) (!kl_V2175) = do let pat_cond_0 = do !appl_1 <- kl_V2173 `pseq` closeStream kl_V2173
-                                                                            appl_1 `pseq` (kl_V2175 `pseq` kl_do appl_1 kl_V2175)
-                                                            pat_cond_2 = do do !appl_3 <- kl_V2173 `pseq` readByte kl_V2173
-                                                                               !appl_4 <- kl_V2174 `pseq` nToString kl_V2174
-                                                                               !appl_5 <- kl_V2175 `pseq` (appl_4 `pseq` cn kl_V2175 appl_4)
-                                                                               kl_V2173 `pseq` (appl_3 `pseq` (appl_5 `pseq` kl_shen_rfas_h kl_V2173 appl_3 appl_5))
-                                                         in case kl_V2174 of
-                                                                kl_V2174@(Atom (N (KI (-1)))) -> pat_cond_0
-                                                                _ -> pat_cond_2
-
-kl_input :: Types.KLValue ->
-            Types.KLContext Types.Env Types.KLValue
-kl_input (!kl_V2177) = do !appl_0 <- kl_V2177 `pseq` kl_read kl_V2177
-                          appl_0 `pseq` evalKL appl_0
-
-kl_inputPlus :: Types.KLValue ->
-                Types.KLValue -> Types.KLContext Types.Env Types.KLValue
-kl_inputPlus (!kl_V2180) (!kl_V2181) = do let !appl_0 = ApplC (Func "lambda" (Context (\(!kl_MonoP) -> do let !appl_1 = ApplC (Func "lambda" (Context (\(!kl_Input) -> do let !aw_2 = Types.Atom (Types.UnboundSym "shen.demodulate")
-                                                                                                                                                                          !appl_3 <- kl_V2180 `pseq` applyWrapper aw_2 [kl_V2180]
-                                                                                                                                                                          let !aw_4 = Types.Atom (Types.UnboundSym "shen.typecheck")
-                                                                                                                                                                          !appl_5 <- kl_Input `pseq` (appl_3 `pseq` applyWrapper aw_4 [kl_Input,
-                                                                                                                                                                                                                                       appl_3])
-                                                                                                                                                                          !kl_if_6 <- appl_5 `pseq` eq (Atom (B False)) appl_5
-                                                                                                                                                                          case kl_if_6 of
-                                                                                                                                                                              Atom (B (True)) -> do let !aw_7 = Types.Atom (Types.UnboundSym "shen.app")
-                                                                                                                                                                                                    !appl_8 <- kl_V2180 `pseq` applyWrapper aw_7 [kl_V2180,
-                                                                                                                                                                                                                                                  Types.Atom (Types.Str "\n"),
-                                                                                                                                                                                                                                                  Types.Atom (Types.UnboundSym "shen.r")]
-                                                                                                                                                                                                    !appl_9 <- appl_8 `pseq` cn (Types.Atom (Types.Str " is not of type ")) appl_8
-                                                                                                                                                                                                    let !aw_10 = Types.Atom (Types.UnboundSym "shen.app")
-                                                                                                                                                                                                    !appl_11 <- kl_Input `pseq` (appl_9 `pseq` applyWrapper aw_10 [kl_Input,
-                                                                                                                                                                                                                                                                   appl_9,
-                                                                                                                                                                                                                                                                   Types.Atom (Types.UnboundSym "shen.r")])
-                                                                                                                                                                                                    !appl_12 <- appl_11 `pseq` cn (Types.Atom (Types.Str "type error: ")) appl_11
-                                                                                                                                                                                                    appl_12 `pseq` simpleError appl_12
-                                                                                                                                                                              Atom (B (False)) -> do do kl_Input `pseq` evalKL kl_Input
-                                                                                                                                                                              _ -> throwError "if: expected boolean")))
-                                                                                                          !appl_13 <- kl_V2181 `pseq` kl_read kl_V2181
-                                                                                                          appl_13 `pseq` applyWrapper appl_1 [appl_13])))
-                                          !appl_14 <- kl_V2180 `pseq` kl_shen_monotype kl_V2180
-                                          appl_14 `pseq` applyWrapper appl_0 [appl_14]
-
-kl_shen_monotype :: Types.KLValue ->
-                    Types.KLContext Types.Env Types.KLValue
-kl_shen_monotype (!kl_V2183) = do let pat_cond_0 kl_V2183 kl_V2183h kl_V2183t = do let !appl_1 = ApplC (Func "lambda" (Context (\(!kl_Z) -> do kl_Z `pseq` kl_shen_monotype kl_Z)))
-                                                                                   appl_1 `pseq` (kl_V2183 `pseq` kl_map appl_1 kl_V2183)
-                                      pat_cond_2 = do do !kl_if_3 <- kl_V2183 `pseq` kl_variableP kl_V2183
-                                                         case kl_if_3 of
-                                                             Atom (B (True)) -> do let !aw_4 = Types.Atom (Types.UnboundSym "shen.app")
-                                                                                   !appl_5 <- kl_V2183 `pseq` applyWrapper aw_4 [kl_V2183,
-                                                                                                                                 Types.Atom (Types.Str "\n"),
-                                                                                                                                 Types.Atom (Types.UnboundSym "shen.a")]
-                                                                                   !appl_6 <- appl_5 `pseq` cn (Types.Atom (Types.Str "input+ expects a monotype: not ")) appl_5
-                                                                                   appl_6 `pseq` simpleError appl_6
-                                                             Atom (B (False)) -> do do return kl_V2183
-                                                             _ -> throwError "if: expected boolean"
-                                   in case kl_V2183 of
-                                          !(kl_V2183@(Cons (!kl_V2183h)
-                                                           (!kl_V2183t))) -> pat_cond_0 kl_V2183 kl_V2183h kl_V2183t
-                                          _ -> pat_cond_2
-
-kl_read :: Types.KLValue -> Types.KLContext Types.Env Types.KLValue
-kl_read (!kl_V2185) = do !appl_0 <- kl_V2185 `pseq` readByte kl_V2185
-                         !appl_1 <- kl_V2185 `pseq` (appl_0 `pseq` kl_shen_read_loop kl_V2185 appl_0 (Types.Atom Types.Nil))
-                         appl_1 `pseq` hd appl_1
-
-kl_it :: Types.KLContext Types.Env Types.KLValue
-kl_it = do value (Types.Atom (Types.UnboundSym "shen.*it*"))
-
-kl_shen_read_loop :: Types.KLValue ->
-                     Types.KLValue ->
-                     Types.KLValue -> Types.KLContext Types.Env Types.KLValue
-kl_shen_read_loop (!kl_V2193) (!kl_V2194) (!kl_V2195) = do let pat_cond_0 = do simpleError (Types.Atom (Types.Str "read aborted"))
-                                                               pat_cond_1 = do !kl_if_2 <- kl_V2195 `pseq` kl_emptyP kl_V2195
-                                                                               case kl_if_2 of
-                                                                                   Atom (B (True)) -> do simpleError (Types.Atom (Types.Str "error: empty stream"))
-                                                                                   Atom (B (False)) -> do do let !appl_3 = ApplC (Func "lambda" (Context (\(!kl_X) -> do kl_X `pseq` kl_shen_LBst_inputRB kl_X)))
-                                                                                                             let !appl_4 = ApplC (Func "lambda" (Context (\(!kl_E) -> do return kl_E)))
-                                                                                                             appl_3 `pseq` (kl_V2195 `pseq` (appl_4 `pseq` kl_compile appl_3 kl_V2195 appl_4))
-                                                                                   _ -> throwError "if: expected boolean"
-                                                               pat_cond_5 = do !kl_if_6 <- kl_V2194 `pseq` kl_shen_terminatorP kl_V2194
-                                                                               case kl_if_6 of
-                                                                                   Atom (B (True)) -> do let !appl_7 = ApplC (Func "lambda" (Context (\(!kl_AllBytes) -> do let !appl_8 = ApplC (Func "lambda" (Context (\(!kl_It) -> do let !appl_9 = ApplC (Func "lambda" (Context (\(!kl_Read) -> do !kl_if_10 <- let pat_cond_11 = do return (Atom (B True))
-                                                                                                                                                                                                                                                                                                                         pat_cond_12 = do do !kl_if_13 <- kl_Read `pseq` kl_emptyP kl_Read
-                                                                                                                                                                                                                                                                                                                                             case kl_if_13 of
-                                                                                                                                                                                                                                                                                                                                                 Atom (B (True)) -> do return (Atom (B True))
-                                                                                                                                                                                                                                                                                                                                                 Atom (B (False)) -> do do return (Atom (B False))
-                                                                                                                                                                                                                                                                                                                                                 _ -> throwError "if: expected boolean"
-                                                                                                                                                                                                                                                                                                                      in case kl_Read of
-                                                                                                                                                                                                                                                                                                                             kl_Read@(Atom (UnboundSym "shen.nextbyte")) -> pat_cond_11
-                                                                                                                                                                                                                                                                                                                             kl_Read@(ApplC (PL "shen.nextbyte"
-                                                                                                                                                                                                                                                                                                                                                _)) -> pat_cond_11
-                                                                                                                                                                                                                                                                                                                             kl_Read@(ApplC (Func "shen.nextbyte"
-                                                                                                                                                                                                                                                                                                                                                  _)) -> pat_cond_11
-                                                                                                                                                                                                                                                                                                                             _ -> pat_cond_12
-                                                                                                                                                                                                                                                                                                        case kl_if_10 of
-                                                                                                                                                                                                                                                                                                            Atom (B (True)) -> do !appl_14 <- kl_V2193 `pseq` readByte kl_V2193
-                                                                                                                                                                                                                                                                                                                                  kl_V2193 `pseq` (appl_14 `pseq` (kl_AllBytes `pseq` kl_shen_read_loop kl_V2193 appl_14 kl_AllBytes))
-                                                                                                                                                                                                                                                                                                            Atom (B (False)) -> do do return kl_Read
-                                                                                                                                                                                                                                                                                                            _ -> throwError "if: expected boolean")))
-                                                                                                                                                                                                                                         let !appl_15 = ApplC (Func "lambda" (Context (\(!kl_X) -> do kl_X `pseq` kl_shen_LBst_inputRB kl_X)))
-                                                                                                                                                                                                                                         let !appl_16 = ApplC (Func "lambda" (Context (\(!kl_E) -> do return (Types.Atom (Types.UnboundSym "shen.nextbyte")))))
-                                                                                                                                                                                                                                         !appl_17 <- appl_15 `pseq` (kl_AllBytes `pseq` (appl_16 `pseq` kl_compile appl_15 kl_AllBytes appl_16))
-                                                                                                                                                                                                                                         appl_17 `pseq` applyWrapper appl_9 [appl_17])))
-                                                                                                                                                                            !appl_18 <- kl_AllBytes `pseq` kl_shen_record_it kl_AllBytes
-                                                                                                                                                                            appl_18 `pseq` applyWrapper appl_8 [appl_18])))
-                                                                                                         !appl_19 <- kl_V2194 `pseq` klCons kl_V2194 (Types.Atom Types.Nil)
-                                                                                                         !appl_20 <- kl_V2195 `pseq` (appl_19 `pseq` kl_append kl_V2195 appl_19)
-                                                                                                         appl_20 `pseq` applyWrapper appl_7 [appl_20]
-                                                                                   Atom (B (False)) -> do do !appl_21 <- kl_V2193 `pseq` readByte kl_V2193
-                                                                                                             !appl_22 <- kl_V2194 `pseq` klCons kl_V2194 (Types.Atom Types.Nil)
-                                                                                                             !appl_23 <- kl_V2195 `pseq` (appl_22 `pseq` kl_append kl_V2195 appl_22)
-                                                                                                             kl_V2193 `pseq` (appl_21 `pseq` (appl_23 `pseq` kl_shen_read_loop kl_V2193 appl_21 appl_23))
-                                                                                   _ -> throwError "if: expected boolean"
-                                                            in case kl_V2194 of
-                                                                   kl_V2194@(Atom (N (KI 94))) -> pat_cond_0
-                                                                   kl_V2194@(Atom (N (KI (-1)))) -> pat_cond_1
-                                                                   _ -> pat_cond_5
-
-kl_shen_terminatorP :: Types.KLValue ->
-                       Types.KLContext Types.Env Types.KLValue
-kl_shen_terminatorP (!kl_V2197) = do !appl_0 <- klCons (Types.Atom (Types.N (Types.KI 93))) (Types.Atom Types.Nil)
-                                     !appl_1 <- appl_0 `pseq` klCons (Types.Atom (Types.N (Types.KI 41))) appl_0
-                                     !appl_2 <- appl_1 `pseq` klCons (Types.Atom (Types.N (Types.KI 34))) appl_1
-                                     !appl_3 <- appl_2 `pseq` klCons (Types.Atom (Types.N (Types.KI 32))) appl_2
-                                     !appl_4 <- appl_3 `pseq` klCons (Types.Atom (Types.N (Types.KI 13))) appl_3
-                                     !appl_5 <- appl_4 `pseq` klCons (Types.Atom (Types.N (Types.KI 10))) appl_4
-                                     !appl_6 <- appl_5 `pseq` klCons (Types.Atom (Types.N (Types.KI 9))) appl_5
-                                     kl_V2197 `pseq` (appl_6 `pseq` kl_elementP kl_V2197 appl_6)
-
-kl_lineread :: Types.KLValue ->
-               Types.KLContext Types.Env Types.KLValue
-kl_lineread (!kl_V2199) = do !appl_0 <- kl_V2199 `pseq` readByte kl_V2199
-                             appl_0 `pseq` (kl_V2199 `pseq` kl_shen_lineread_loop appl_0 (Types.Atom Types.Nil) kl_V2199)
-
-kl_shen_lineread_loop :: Types.KLValue ->
-                         Types.KLValue ->
-                         Types.KLValue -> Types.KLContext Types.Env Types.KLValue
-kl_shen_lineread_loop (!kl_V2204) (!kl_V2205) (!kl_V2206) = do let pat_cond_0 = do !kl_if_1 <- kl_V2205 `pseq` kl_emptyP kl_V2205
-                                                                                   case kl_if_1 of
-                                                                                       Atom (B (True)) -> do simpleError (Types.Atom (Types.Str "empty stream"))
-                                                                                       Atom (B (False)) -> do do let !appl_2 = ApplC (Func "lambda" (Context (\(!kl_X) -> do kl_X `pseq` kl_shen_LBst_inputRB kl_X)))
-                                                                                                                 let !appl_3 = ApplC (Func "lambda" (Context (\(!kl_E) -> do return kl_E)))
-                                                                                                                 appl_2 `pseq` (kl_V2205 `pseq` (appl_3 `pseq` kl_compile appl_2 kl_V2205 appl_3))
-                                                                                       _ -> throwError "if: expected boolean"
-                                                                   pat_cond_4 = do !appl_5 <- kl_shen_hat
-                                                                                   !kl_if_6 <- kl_V2204 `pseq` (appl_5 `pseq` eq kl_V2204 appl_5)
-                                                                                   case kl_if_6 of
-                                                                                       Atom (B (True)) -> do simpleError (Types.Atom (Types.Str "line read aborted"))
-                                                                                       Atom (B (False)) -> do !appl_7 <- kl_shen_newline
-                                                                                                              !appl_8 <- kl_shen_carriage_return
-                                                                                                              !appl_9 <- appl_8 `pseq` klCons appl_8 (Types.Atom Types.Nil)
-                                                                                                              !appl_10 <- appl_7 `pseq` (appl_9 `pseq` klCons appl_7 appl_9)
-                                                                                                              !kl_if_11 <- kl_V2204 `pseq` (appl_10 `pseq` kl_elementP kl_V2204 appl_10)
-                                                                                                              case kl_if_11 of
-                                                                                                                  Atom (B (True)) -> do let !appl_12 = ApplC (Func "lambda" (Context (\(!kl_Line) -> do let !appl_13 = ApplC (Func "lambda" (Context (\(!kl_It) -> do !kl_if_14 <- let pat_cond_15 = do return (Atom (B True))
-                                                                                                                                                                                                                                                                                       pat_cond_16 = do do !kl_if_17 <- kl_Line `pseq` kl_emptyP kl_Line
-                                                                                                                                                                                                                                                                                                           case kl_if_17 of
-                                                                                                                                                                                                                                                                                                               Atom (B (True)) -> do return (Atom (B True))
-                                                                                                                                                                                                                                                                                                               Atom (B (False)) -> do do return (Atom (B False))
-                                                                                                                                                                                                                                                                                                               _ -> throwError "if: expected boolean"
-                                                                                                                                                                                                                                                                                    in case kl_Line of
-                                                                                                                                                                                                                                                                                           kl_Line@(Atom (UnboundSym "shen.nextline")) -> pat_cond_15
-                                                                                                                                                                                                                                                                                           kl_Line@(ApplC (PL "shen.nextline"
-                                                                                                                                                                                                                                                                                                              _)) -> pat_cond_15
-                                                                                                                                                                                                                                                                                           kl_Line@(ApplC (Func "shen.nextline"
-                                                                                                                                                                                                                                                                                                                _)) -> pat_cond_15
-                                                                                                                                                                                                                                                                                           _ -> pat_cond_16
-                                                                                                                                                                                                                                                                      case kl_if_14 of
-                                                                                                                                                                                                                                                                          Atom (B (True)) -> do !appl_18 <- kl_V2206 `pseq` readByte kl_V2206
-                                                                                                                                                                                                                                                                                                !appl_19 <- kl_V2204 `pseq` klCons kl_V2204 (Types.Atom Types.Nil)
-                                                                                                                                                                                                                                                                                                !appl_20 <- kl_V2205 `pseq` (appl_19 `pseq` kl_append kl_V2205 appl_19)
-                                                                                                                                                                                                                                                                                                appl_18 `pseq` (appl_20 `pseq` (kl_V2206 `pseq` kl_shen_lineread_loop appl_18 appl_20 kl_V2206))
-                                                                                                                                                                                                                                                                          Atom (B (False)) -> do do return kl_Line
-                                                                                                                                                                                                                                                                          _ -> throwError "if: expected boolean")))
-                                                                                                                                                                                                        !appl_21 <- kl_V2205 `pseq` kl_shen_record_it kl_V2205
-                                                                                                                                                                                                        appl_21 `pseq` applyWrapper appl_13 [appl_21])))
-                                                                                                                                        let !appl_22 = ApplC (Func "lambda" (Context (\(!kl_X) -> do kl_X `pseq` kl_shen_LBst_inputRB kl_X)))
-                                                                                                                                        let !appl_23 = ApplC (Func "lambda" (Context (\(!kl_E) -> do return (Types.Atom (Types.UnboundSym "shen.nextline")))))
-                                                                                                                                        !appl_24 <- appl_22 `pseq` (kl_V2205 `pseq` (appl_23 `pseq` kl_compile appl_22 kl_V2205 appl_23))
-                                                                                                                                        appl_24 `pseq` applyWrapper appl_12 [appl_24]
-                                                                                                                  Atom (B (False)) -> do do !appl_25 <- kl_V2206 `pseq` readByte kl_V2206
-                                                                                                                                            !appl_26 <- kl_V2204 `pseq` klCons kl_V2204 (Types.Atom Types.Nil)
-                                                                                                                                            !appl_27 <- kl_V2205 `pseq` (appl_26 `pseq` kl_append kl_V2205 appl_26)
-                                                                                                                                            appl_25 `pseq` (appl_27 `pseq` (kl_V2206 `pseq` kl_shen_lineread_loop appl_25 appl_27 kl_V2206))
-                                                                                                                  _ -> throwError "if: expected boolean"
-                                                                                       _ -> throwError "if: expected boolean"
-                                                                in case kl_V2204 of
-                                                                       kl_V2204@(Atom (N (KI (-1)))) -> pat_cond_0
-                                                                       _ -> pat_cond_4
-
-kl_shen_record_it :: Types.KLValue ->
-                     Types.KLContext Types.Env Types.KLValue
-kl_shen_record_it (!kl_V2208) = do let !appl_0 = ApplC (Func "lambda" (Context (\(!kl_TrimLeft) -> do let !appl_1 = ApplC (Func "lambda" (Context (\(!kl_TrimRight) -> do let !appl_2 = ApplC (Func "lambda" (Context (\(!kl_Trimmed) -> do kl_Trimmed `pseq` kl_shen_record_it_h kl_Trimmed)))
-                                                                                                                                                                          !appl_3 <- kl_TrimRight `pseq` kl_reverse kl_TrimRight
-                                                                                                                                                                          appl_3 `pseq` applyWrapper appl_2 [appl_3])))
-                                                                                                      !appl_4 <- kl_TrimLeft `pseq` kl_reverse kl_TrimLeft
-                                                                                                      !appl_5 <- appl_4 `pseq` kl_shen_trim_whitespace appl_4
-                                                                                                      appl_5 `pseq` applyWrapper appl_1 [appl_5])))
-                                   !appl_6 <- kl_V2208 `pseq` kl_shen_trim_whitespace kl_V2208
-                                   appl_6 `pseq` applyWrapper appl_0 [appl_6]
-
-kl_shen_trim_whitespace :: Types.KLValue ->
-                           Types.KLContext Types.Env Types.KLValue
-kl_shen_trim_whitespace (!kl_V2210) = do !kl_if_0 <- let pat_cond_1 kl_V2210 kl_V2210h kl_V2210t = do !appl_2 <- klCons (Types.Atom (Types.N (Types.KI 32))) (Types.Atom Types.Nil)
-                                                                                                      !appl_3 <- appl_2 `pseq` klCons (Types.Atom (Types.N (Types.KI 13))) appl_2
-                                                                                                      !appl_4 <- appl_3 `pseq` klCons (Types.Atom (Types.N (Types.KI 10))) appl_3
-                                                                                                      !appl_5 <- appl_4 `pseq` klCons (Types.Atom (Types.N (Types.KI 9))) appl_4
-                                                                                                      !kl_if_6 <- kl_V2210h `pseq` (appl_5 `pseq` kl_elementP kl_V2210h appl_5)
-                                                                                                      case kl_if_6 of
-                                                                                                          Atom (B (True)) -> do return (Atom (B True))
-                                                                                                          Atom (B (False)) -> do do return (Atom (B False))
-                                                                                                          _ -> throwError "if: expected boolean"
-                                                         pat_cond_7 = do do return (Atom (B False))
-                                                      in case kl_V2210 of
-                                                             !(kl_V2210@(Cons (!kl_V2210h)
-                                                                              (!kl_V2210t))) -> pat_cond_1 kl_V2210 kl_V2210h kl_V2210t
-                                                             _ -> pat_cond_7
-                                         case kl_if_0 of
-                                             Atom (B (True)) -> do !appl_8 <- kl_V2210 `pseq` tl kl_V2210
-                                                                   appl_8 `pseq` kl_shen_trim_whitespace appl_8
-                                             Atom (B (False)) -> do do return kl_V2210
-                                             _ -> throwError "if: expected boolean"
-
-kl_shen_record_it_h :: Types.KLValue ->
-                       Types.KLContext Types.Env Types.KLValue
-kl_shen_record_it_h (!kl_V2212) = do let !appl_0 = ApplC (Func "lambda" (Context (\(!kl_X) -> do kl_X `pseq` nToString kl_X)))
-                                     !appl_1 <- appl_0 `pseq` (kl_V2212 `pseq` kl_map appl_0 kl_V2212)
-                                     !appl_2 <- appl_1 `pseq` kl_shen_cn_all appl_1
-                                     !appl_3 <- appl_2 `pseq` klSet (Types.Atom (Types.UnboundSym "shen.*it*")) appl_2
-                                     appl_3 `pseq` (kl_V2212 `pseq` kl_do appl_3 kl_V2212)
-
-kl_shen_cn_all :: Types.KLValue ->
-                  Types.KLContext Types.Env Types.KLValue
-kl_shen_cn_all (!kl_V2214) = do let pat_cond_0 = do return (Types.Atom (Types.Str ""))
-                                    pat_cond_1 kl_V2214 kl_V2214h kl_V2214t = do !appl_2 <- kl_V2214t `pseq` kl_shen_cn_all kl_V2214t
-                                                                                 kl_V2214h `pseq` (appl_2 `pseq` cn kl_V2214h appl_2)
-                                    pat_cond_3 = do do let !aw_4 = Types.Atom (Types.UnboundSym "shen.f_error")
-                                                       applyWrapper aw_4 [ApplC (wrapNamed "shen.cn-all" kl_shen_cn_all)]
-                                 in case kl_V2214 of
-                                        kl_V2214@(Atom (Nil)) -> pat_cond_0
-                                        !(kl_V2214@(Cons (!kl_V2214h)
-                                                         (!kl_V2214t))) -> pat_cond_1 kl_V2214 kl_V2214h kl_V2214t
-                                        _ -> pat_cond_3
-
-kl_read_file :: Types.KLValue ->
-                Types.KLContext Types.Env Types.KLValue
-kl_read_file (!kl_V2216) = do let !appl_0 = ApplC (Func "lambda" (Context (\(!kl_Bytelist) -> do let !appl_1 = ApplC (Func "lambda" (Context (\(!kl_X) -> do kl_X `pseq` kl_shen_LBst_inputRB kl_X)))
-                                                                                                 let !appl_2 = ApplC (Func "lambda" (Context (\(!kl_X) -> do kl_X `pseq` kl_shen_read_error kl_X)))
-                                                                                                 appl_1 `pseq` (kl_Bytelist `pseq` (appl_2 `pseq` kl_compile appl_1 kl_Bytelist appl_2)))))
-                              !appl_3 <- kl_V2216 `pseq` kl_read_file_as_bytelist kl_V2216
-                              appl_3 `pseq` applyWrapper appl_0 [appl_3]
-
-kl_read_from_string :: Types.KLValue ->
-                       Types.KLContext Types.Env Types.KLValue
-kl_read_from_string (!kl_V2218) = do let !appl_0 = ApplC (Func "lambda" (Context (\(!kl_Ns) -> do let !appl_1 = ApplC (Func "lambda" (Context (\(!kl_X) -> do kl_X `pseq` kl_shen_LBst_inputRB kl_X)))
-                                                                                                  let !appl_2 = ApplC (Func "lambda" (Context (\(!kl_X) -> do kl_X `pseq` kl_shen_read_error kl_X)))
-                                                                                                  appl_1 `pseq` (kl_Ns `pseq` (appl_2 `pseq` kl_compile appl_1 kl_Ns appl_2)))))
-                                     let !appl_3 = ApplC (Func "lambda" (Context (\(!kl_X) -> do kl_X `pseq` stringToN kl_X)))
-                                     !appl_4 <- kl_V2218 `pseq` kl_explode kl_V2218
-                                     !appl_5 <- appl_3 `pseq` (appl_4 `pseq` kl_map appl_3 appl_4)
-                                     appl_5 `pseq` applyWrapper appl_0 [appl_5]
-
-kl_shen_read_error :: Types.KLValue ->
-                      Types.KLContext Types.Env Types.KLValue
-kl_shen_read_error (!kl_V2226) = do let pat_cond_0 kl_V2226 kl_V2226h kl_V2226hh kl_V2226ht kl_V2226t kl_V2226th = do !appl_1 <- kl_V2226h `pseq` kl_shen_compress_50 (Types.Atom (Types.N (Types.KI 50))) kl_V2226h
-                                                                                                                      let !aw_2 = Types.Atom (Types.UnboundSym "shen.app")
-                                                                                                                      !appl_3 <- appl_1 `pseq` applyWrapper aw_2 [appl_1,
-                                                                                                                                                                  Types.Atom (Types.Str "\n"),
-                                                                                                                                                                  Types.Atom (Types.UnboundSym "shen.a")]
-                                                                                                                      !appl_4 <- appl_3 `pseq` cn (Types.Atom (Types.Str "read error here:\n\n ")) appl_3
-                                                                                                                      appl_4 `pseq` simpleError appl_4
-                                        pat_cond_5 = do do simpleError (Types.Atom (Types.Str "read error\n"))
-                                     in case kl_V2226 of
-                                            !(kl_V2226@(Cons (!(kl_V2226h@(Cons (!kl_V2226hh)
-                                                                                (!kl_V2226ht))))
-                                                             (!(kl_V2226t@(Cons (!kl_V2226th)
-                                                                                (Atom (Nil))))))) -> pat_cond_0 kl_V2226 kl_V2226h kl_V2226hh kl_V2226ht kl_V2226t kl_V2226th
-                                            _ -> pat_cond_5
-
-kl_shen_compress_50 :: Types.KLValue ->
-                       Types.KLValue -> Types.KLContext Types.Env Types.KLValue
-kl_shen_compress_50 (!kl_V2233) (!kl_V2234) = do let pat_cond_0 = do return (Types.Atom (Types.Str ""))
-                                                     pat_cond_1 = do let pat_cond_2 = do return (Types.Atom (Types.Str ""))
-                                                                         pat_cond_3 = do let pat_cond_4 kl_V2234 kl_V2234h kl_V2234t = do !appl_5 <- kl_V2234h `pseq` nToString kl_V2234h
-                                                                                                                                          !appl_6 <- kl_V2233 `pseq` Primitives.subtract kl_V2233 (Types.Atom (Types.N (Types.KI 1)))
-                                                                                                                                          !appl_7 <- appl_6 `pseq` (kl_V2234t `pseq` kl_shen_compress_50 appl_6 kl_V2234t)
-                                                                                                                                          appl_5 `pseq` (appl_7 `pseq` cn appl_5 appl_7)
-                                                                                             pat_cond_8 = do do let !aw_9 = Types.Atom (Types.UnboundSym "shen.f_error")
-                                                                                                                applyWrapper aw_9 [ApplC (wrapNamed "shen.compress-50" kl_shen_compress_50)]
-                                                                                          in case kl_V2234 of
-                                                                                                 !(kl_V2234@(Cons (!kl_V2234h)
-                                                                                                                  (!kl_V2234t))) -> pat_cond_4 kl_V2234 kl_V2234h kl_V2234t
-                                                                                                 _ -> pat_cond_8
-                                                                      in case kl_V2233 of
-                                                                             kl_V2233@(Atom (N (KI 0))) -> pat_cond_2
-                                                                             _ -> pat_cond_3
-                                                  in case kl_V2234 of
-                                                         kl_V2234@(Atom (Nil)) -> pat_cond_0
-                                                         _ -> pat_cond_1
-
-kl_shen_LBst_inputRB :: Types.KLValue ->
-                        Types.KLContext Types.Env Types.KLValue
-kl_shen_LBst_inputRB (!kl_V2236) = do let !appl_0 = ApplC (Func "lambda" (Context (\(!kl_YaccParse) -> do !appl_1 <- kl_fail
-                                                                                                          !kl_if_2 <- kl_YaccParse `pseq` (appl_1 `pseq` eq kl_YaccParse appl_1)
-                                                                                                          case kl_if_2 of
-                                                                                                              Atom (B (True)) -> do let !appl_3 = ApplC (Func "lambda" (Context (\(!kl_YaccParse) -> do !appl_4 <- kl_fail
-                                                                                                                                                                                                        !kl_if_5 <- kl_YaccParse `pseq` (appl_4 `pseq` eq kl_YaccParse appl_4)
-                                                                                                                                                                                                        case kl_if_5 of
-                                                                                                                                                                                                            Atom (B (True)) -> do let !appl_6 = ApplC (Func "lambda" (Context (\(!kl_YaccParse) -> do !appl_7 <- kl_fail
-                                                                                                                                                                                                                                                                                                      !kl_if_8 <- kl_YaccParse `pseq` (appl_7 `pseq` eq kl_YaccParse appl_7)
-                                                                                                                                                                                                                                                                                                      case kl_if_8 of
-                                                                                                                                                                                                                                                                                                          Atom (B (True)) -> do let !appl_9 = ApplC (Func "lambda" (Context (\(!kl_YaccParse) -> do !appl_10 <- kl_fail
-                                                                                                                                                                                                                                                                                                                                                                                                    !kl_if_11 <- kl_YaccParse `pseq` (appl_10 `pseq` eq kl_YaccParse appl_10)
-                                                                                                                                                                                                                                                                                                                                                                                                    case kl_if_11 of
-                                                                                                                                                                                                                                                                                                                                                                                                        Atom (B (True)) -> do let !appl_12 = ApplC (Func "lambda" (Context (\(!kl_YaccParse) -> do !appl_13 <- kl_fail
-                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                   !kl_if_14 <- kl_YaccParse `pseq` (appl_13 `pseq` eq kl_YaccParse appl_13)
-                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                   case kl_if_14 of
-                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                       Atom (B (True)) -> do let !appl_15 = ApplC (Func "lambda" (Context (\(!kl_YaccParse) -> do !appl_16 <- kl_fail
-                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                  !kl_if_17 <- kl_YaccParse `pseq` (appl_16 `pseq` eq kl_YaccParse appl_16)
-                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                  case kl_if_17 of
-                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                      Atom (B (True)) -> do let !appl_18 = ApplC (Func "lambda" (Context (\(!kl_YaccParse) -> do !appl_19 <- kl_fail
-                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                 !kl_if_20 <- kl_YaccParse `pseq` (appl_19 `pseq` eq kl_YaccParse appl_19)
-                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                 case kl_if_20 of
-                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                     Atom (B (True)) -> do let !appl_21 = ApplC (Func "lambda" (Context (\(!kl_YaccParse) -> do !appl_22 <- kl_fail
-                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                !kl_if_23 <- kl_YaccParse `pseq` (appl_22 `pseq` eq kl_YaccParse appl_22)
-                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                case kl_if_23 of
-                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                    Atom (B (True)) -> do let !appl_24 = ApplC (Func "lambda" (Context (\(!kl_YaccParse) -> do !appl_25 <- kl_fail
-                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                               !kl_if_26 <- kl_YaccParse `pseq` (appl_25 `pseq` eq kl_YaccParse appl_25)
-                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                               case kl_if_26 of
-                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                   Atom (B (True)) -> do let !appl_27 = ApplC (Func "lambda" (Context (\(!kl_YaccParse) -> do !appl_28 <- kl_fail
-                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                              !kl_if_29 <- kl_YaccParse `pseq` (appl_28 `pseq` eq kl_YaccParse appl_28)
-                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                              case kl_if_29 of
-                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                  Atom (B (True)) -> do let !appl_30 = ApplC (Func "lambda" (Context (\(!kl_YaccParse) -> do !appl_31 <- kl_fail
-                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                             !kl_if_32 <- kl_YaccParse `pseq` (appl_31 `pseq` eq kl_YaccParse appl_31)
-                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                             case kl_if_32 of
-                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                 Atom (B (True)) -> do let !appl_33 = ApplC (Func "lambda" (Context (\(!kl_YaccParse) -> do !appl_34 <- kl_fail
-                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                            !kl_if_35 <- kl_YaccParse `pseq` (appl_34 `pseq` eq kl_YaccParse appl_34)
-                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                            case kl_if_35 of
-                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                Atom (B (True)) -> do let !appl_36 = ApplC (Func "lambda" (Context (\(!kl_YaccParse) -> do !appl_37 <- kl_fail
-                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                           !kl_if_38 <- kl_YaccParse `pseq` (appl_37 `pseq` eq kl_YaccParse appl_37)
-                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                           case kl_if_38 of
-                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                               Atom (B (True)) -> do let !appl_39 = ApplC (Func "lambda" (Context (\(!kl_Parse_LBeRB) -> do !appl_40 <- kl_fail
-                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                            !appl_41 <- appl_40 `pseq` (kl_Parse_LBeRB `pseq` eq appl_40 kl_Parse_LBeRB)
-                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                            !kl_if_42 <- appl_41 `pseq` kl_not appl_41
-                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                            case kl_if_42 of
-                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                Atom (B (True)) -> do !appl_43 <- kl_Parse_LBeRB `pseq` hd kl_Parse_LBeRB
-                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                      appl_43 `pseq` kl_shen_pair appl_43 (Types.Atom Types.Nil)
-                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                Atom (B (False)) -> do do kl_fail
-                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                _ -> throwError "if: expected boolean")))
-                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                     !appl_44 <- kl_V2236 `pseq` kl_LBeRB kl_V2236
-                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                     appl_44 `pseq` applyWrapper appl_39 [appl_44]
-                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                               Atom (B (False)) -> do do return kl_YaccParse
-                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                               _ -> throwError "if: expected boolean")))
-                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                      let !appl_45 = ApplC (Func "lambda" (Context (\(!kl_Parse_shen_LBwhitespacesRB) -> do !appl_46 <- kl_fail
-                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                            !appl_47 <- appl_46 `pseq` (kl_Parse_shen_LBwhitespacesRB `pseq` eq appl_46 kl_Parse_shen_LBwhitespacesRB)
-                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                            !kl_if_48 <- appl_47 `pseq` kl_not appl_47
-                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                            case kl_if_48 of
-                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                Atom (B (True)) -> do let !appl_49 = ApplC (Func "lambda" (Context (\(!kl_Parse_shen_LBst_inputRB) -> do !appl_50 <- kl_fail
-                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                         !appl_51 <- appl_50 `pseq` (kl_Parse_shen_LBst_inputRB `pseq` eq appl_50 kl_Parse_shen_LBst_inputRB)
-                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                         !kl_if_52 <- appl_51 `pseq` kl_not appl_51
-                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                         case kl_if_52 of
-                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                             Atom (B (True)) -> do !appl_53 <- kl_Parse_shen_LBst_inputRB `pseq` hd kl_Parse_shen_LBst_inputRB
-                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                   !appl_54 <- kl_Parse_shen_LBst_inputRB `pseq` kl_shen_hdtl kl_Parse_shen_LBst_inputRB
-                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                   appl_53 `pseq` (appl_54 `pseq` kl_shen_pair appl_53 appl_54)
-                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                             Atom (B (False)) -> do do kl_fail
-                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                             _ -> throwError "if: expected boolean")))
-                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                      !appl_55 <- kl_Parse_shen_LBwhitespacesRB `pseq` kl_shen_LBst_inputRB kl_Parse_shen_LBwhitespacesRB
-                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                      appl_55 `pseq` applyWrapper appl_49 [appl_55]
-                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                Atom (B (False)) -> do do kl_fail
-                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                _ -> throwError "if: expected boolean")))
-                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                      !appl_56 <- kl_V2236 `pseq` kl_shen_LBwhitespacesRB kl_V2236
-                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                      !appl_57 <- appl_56 `pseq` applyWrapper appl_45 [appl_56]
-                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                      appl_57 `pseq` applyWrapper appl_36 [appl_57]
-                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                Atom (B (False)) -> do do return kl_YaccParse
-                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                _ -> throwError "if: expected boolean")))
-                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                       let !appl_58 = ApplC (Func "lambda" (Context (\(!kl_Parse_shen_LBatomRB) -> do !appl_59 <- kl_fail
-                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                      !appl_60 <- appl_59 `pseq` (kl_Parse_shen_LBatomRB `pseq` eq appl_59 kl_Parse_shen_LBatomRB)
-                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                      !kl_if_61 <- appl_60 `pseq` kl_not appl_60
-                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                      case kl_if_61 of
-                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                          Atom (B (True)) -> do let !appl_62 = ApplC (Func "lambda" (Context (\(!kl_Parse_shen_LBst_inputRB) -> do !appl_63 <- kl_fail
-                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                   !appl_64 <- appl_63 `pseq` (kl_Parse_shen_LBst_inputRB `pseq` eq appl_63 kl_Parse_shen_LBst_inputRB)
-                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                   !kl_if_65 <- appl_64 `pseq` kl_not appl_64
-                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                   case kl_if_65 of
-                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                       Atom (B (True)) -> do !appl_66 <- kl_Parse_shen_LBst_inputRB `pseq` hd kl_Parse_shen_LBst_inputRB
-                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                             !appl_67 <- kl_Parse_shen_LBatomRB `pseq` kl_shen_hdtl kl_Parse_shen_LBatomRB
-                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                             let !aw_68 = Types.Atom (Types.UnboundSym "macroexpand")
-                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                             !appl_69 <- appl_67 `pseq` applyWrapper aw_68 [appl_67]
-                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                             !appl_70 <- kl_Parse_shen_LBst_inputRB `pseq` kl_shen_hdtl kl_Parse_shen_LBst_inputRB
-                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                             !appl_71 <- appl_69 `pseq` (appl_70 `pseq` klCons appl_69 appl_70)
-                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                             appl_66 `pseq` (appl_71 `pseq` kl_shen_pair appl_66 appl_71)
-                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                       Atom (B (False)) -> do do kl_fail
-                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                       _ -> throwError "if: expected boolean")))
-                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                !appl_72 <- kl_Parse_shen_LBatomRB `pseq` kl_shen_LBst_inputRB kl_Parse_shen_LBatomRB
-                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                appl_72 `pseq` applyWrapper appl_62 [appl_72]
-                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                          Atom (B (False)) -> do do kl_fail
-                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                          _ -> throwError "if: expected boolean")))
-                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                       !appl_73 <- kl_V2236 `pseq` kl_shen_LBatomRB kl_V2236
-                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                       !appl_74 <- appl_73 `pseq` applyWrapper appl_58 [appl_73]
-                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                       appl_74 `pseq` applyWrapper appl_33 [appl_74]
-                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                 Atom (B (False)) -> do do return kl_YaccParse
-                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                 _ -> throwError "if: expected boolean")))
-                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                        let !appl_75 = ApplC (Func "lambda" (Context (\(!kl_Parse_shen_LBcommentRB) -> do !appl_76 <- kl_fail
-                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                          !appl_77 <- appl_76 `pseq` (kl_Parse_shen_LBcommentRB `pseq` eq appl_76 kl_Parse_shen_LBcommentRB)
-                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                          !kl_if_78 <- appl_77 `pseq` kl_not appl_77
-                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                          case kl_if_78 of
-                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                              Atom (B (True)) -> do let !appl_79 = ApplC (Func "lambda" (Context (\(!kl_Parse_shen_LBst_inputRB) -> do !appl_80 <- kl_fail
-                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                       !appl_81 <- appl_80 `pseq` (kl_Parse_shen_LBst_inputRB `pseq` eq appl_80 kl_Parse_shen_LBst_inputRB)
-                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                       !kl_if_82 <- appl_81 `pseq` kl_not appl_81
-                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                       case kl_if_82 of
-                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                           Atom (B (True)) -> do !appl_83 <- kl_Parse_shen_LBst_inputRB `pseq` hd kl_Parse_shen_LBst_inputRB
-                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                 !appl_84 <- kl_Parse_shen_LBst_inputRB `pseq` kl_shen_hdtl kl_Parse_shen_LBst_inputRB
-                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                 appl_83 `pseq` (appl_84 `pseq` kl_shen_pair appl_83 appl_84)
-                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                           Atom (B (False)) -> do do kl_fail
-                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                           _ -> throwError "if: expected boolean")))
-                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                    !appl_85 <- kl_Parse_shen_LBcommentRB `pseq` kl_shen_LBst_inputRB kl_Parse_shen_LBcommentRB
-                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                    appl_85 `pseq` applyWrapper appl_79 [appl_85]
-                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                              Atom (B (False)) -> do do kl_fail
-                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                              _ -> throwError "if: expected boolean")))
-                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                        !appl_86 <- kl_V2236 `pseq` kl_shen_LBcommentRB kl_V2236
-                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                        !appl_87 <- appl_86 `pseq` applyWrapper appl_75 [appl_86]
-                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                        appl_87 `pseq` applyWrapper appl_30 [appl_87]
-                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                  Atom (B (False)) -> do do return kl_YaccParse
-                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                  _ -> throwError "if: expected boolean")))
-                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                         let !appl_88 = ApplC (Func "lambda" (Context (\(!kl_Parse_shen_LBcommaRB) -> do !appl_89 <- kl_fail
-                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                         !appl_90 <- appl_89 `pseq` (kl_Parse_shen_LBcommaRB `pseq` eq appl_89 kl_Parse_shen_LBcommaRB)
-                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                         !kl_if_91 <- appl_90 `pseq` kl_not appl_90
-                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                         case kl_if_91 of
-                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                             Atom (B (True)) -> do let !appl_92 = ApplC (Func "lambda" (Context (\(!kl_Parse_shen_LBst_inputRB) -> do !appl_93 <- kl_fail
-                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                      !appl_94 <- appl_93 `pseq` (kl_Parse_shen_LBst_inputRB `pseq` eq appl_93 kl_Parse_shen_LBst_inputRB)
-                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                      !kl_if_95 <- appl_94 `pseq` kl_not appl_94
-                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                      case kl_if_95 of
-                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                          Atom (B (True)) -> do !appl_96 <- kl_Parse_shen_LBst_inputRB `pseq` hd kl_Parse_shen_LBst_inputRB
-                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                !appl_97 <- intern (Types.Atom (Types.Str ","))
-                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                !appl_98 <- kl_Parse_shen_LBst_inputRB `pseq` kl_shen_hdtl kl_Parse_shen_LBst_inputRB
-                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                !appl_99 <- appl_97 `pseq` (appl_98 `pseq` klCons appl_97 appl_98)
-                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                appl_96 `pseq` (appl_99 `pseq` kl_shen_pair appl_96 appl_99)
-                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                          Atom (B (False)) -> do do kl_fail
-                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                          _ -> throwError "if: expected boolean")))
-                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                   !appl_100 <- kl_Parse_shen_LBcommaRB `pseq` kl_shen_LBst_inputRB kl_Parse_shen_LBcommaRB
-                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                   appl_100 `pseq` applyWrapper appl_92 [appl_100]
-                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                             Atom (B (False)) -> do do kl_fail
-                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                             _ -> throwError "if: expected boolean")))
-                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                         !appl_101 <- kl_V2236 `pseq` kl_shen_LBcommaRB kl_V2236
-                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                         !appl_102 <- appl_101 `pseq` applyWrapper appl_88 [appl_101]
-                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                         appl_102 `pseq` applyWrapper appl_27 [appl_102]
-                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                   Atom (B (False)) -> do do return kl_YaccParse
-                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                   _ -> throwError "if: expected boolean")))
-                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                          let !appl_103 = ApplC (Func "lambda" (Context (\(!kl_Parse_shen_LBcolonRB) -> do !appl_104 <- kl_fail
-                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                           !appl_105 <- appl_104 `pseq` (kl_Parse_shen_LBcolonRB `pseq` eq appl_104 kl_Parse_shen_LBcolonRB)
-                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                           !kl_if_106 <- appl_105 `pseq` kl_not appl_105
-                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                           case kl_if_106 of
-                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                               Atom (B (True)) -> do let !appl_107 = ApplC (Func "lambda" (Context (\(!kl_Parse_shen_LBst_inputRB) -> do !appl_108 <- kl_fail
-                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                         !appl_109 <- appl_108 `pseq` (kl_Parse_shen_LBst_inputRB `pseq` eq appl_108 kl_Parse_shen_LBst_inputRB)
-                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                         !kl_if_110 <- appl_109 `pseq` kl_not appl_109
-                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                         case kl_if_110 of
-                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                             Atom (B (True)) -> do !appl_111 <- kl_Parse_shen_LBst_inputRB `pseq` hd kl_Parse_shen_LBst_inputRB
-                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                   !appl_112 <- kl_Parse_shen_LBst_inputRB `pseq` kl_shen_hdtl kl_Parse_shen_LBst_inputRB
-                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                   !appl_113 <- appl_112 `pseq` klCons (Types.Atom (Types.UnboundSym ":")) appl_112
-                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                   appl_111 `pseq` (appl_113 `pseq` kl_shen_pair appl_111 appl_113)
-                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                             Atom (B (False)) -> do do kl_fail
-                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                             _ -> throwError "if: expected boolean")))
-                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                     !appl_114 <- kl_Parse_shen_LBcolonRB `pseq` kl_shen_LBst_inputRB kl_Parse_shen_LBcolonRB
-                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                     appl_114 `pseq` applyWrapper appl_107 [appl_114]
-                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                               Atom (B (False)) -> do do kl_fail
-                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                               _ -> throwError "if: expected boolean")))
-                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                          !appl_115 <- kl_V2236 `pseq` kl_shen_LBcolonRB kl_V2236
-                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                          !appl_116 <- appl_115 `pseq` applyWrapper appl_103 [appl_115]
-                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                          appl_116 `pseq` applyWrapper appl_24 [appl_116]
-                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                    Atom (B (False)) -> do do return kl_YaccParse
-                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                    _ -> throwError "if: expected boolean")))
-                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                           let !appl_117 = ApplC (Func "lambda" (Context (\(!kl_Parse_shen_LBcolonRB) -> do !appl_118 <- kl_fail
-                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                            !appl_119 <- appl_118 `pseq` (kl_Parse_shen_LBcolonRB `pseq` eq appl_118 kl_Parse_shen_LBcolonRB)
-                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                            !kl_if_120 <- appl_119 `pseq` kl_not appl_119
-                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                            case kl_if_120 of
-                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                Atom (B (True)) -> do let !appl_121 = ApplC (Func "lambda" (Context (\(!kl_Parse_shen_LBminusRB) -> do !appl_122 <- kl_fail
-                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                       !appl_123 <- appl_122 `pseq` (kl_Parse_shen_LBminusRB `pseq` eq appl_122 kl_Parse_shen_LBminusRB)
-                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                       !kl_if_124 <- appl_123 `pseq` kl_not appl_123
-                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                       case kl_if_124 of
-                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                           Atom (B (True)) -> do let !appl_125 = ApplC (Func "lambda" (Context (\(!kl_Parse_shen_LBst_inputRB) -> do !appl_126 <- kl_fail
-                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                     !appl_127 <- appl_126 `pseq` (kl_Parse_shen_LBst_inputRB `pseq` eq appl_126 kl_Parse_shen_LBst_inputRB)
-                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                     !kl_if_128 <- appl_127 `pseq` kl_not appl_127
-                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                     case kl_if_128 of
-                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                         Atom (B (True)) -> do !appl_129 <- kl_Parse_shen_LBst_inputRB `pseq` hd kl_Parse_shen_LBst_inputRB
-                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                               !appl_130 <- kl_Parse_shen_LBst_inputRB `pseq` kl_shen_hdtl kl_Parse_shen_LBst_inputRB
-                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                               !appl_131 <- appl_130 `pseq` klCons (Types.Atom (Types.UnboundSym ":-")) appl_130
-                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                               appl_129 `pseq` (appl_131 `pseq` kl_shen_pair appl_129 appl_131)
-                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                         Atom (B (False)) -> do do kl_fail
-                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                         _ -> throwError "if: expected boolean")))
-                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                 !appl_132 <- kl_Parse_shen_LBminusRB `pseq` kl_shen_LBst_inputRB kl_Parse_shen_LBminusRB
-                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                 appl_132 `pseq` applyWrapper appl_125 [appl_132]
-                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                           Atom (B (False)) -> do do kl_fail
-                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                           _ -> throwError "if: expected boolean")))
-                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                      !appl_133 <- kl_Parse_shen_LBcolonRB `pseq` kl_shen_LBminusRB kl_Parse_shen_LBcolonRB
-                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                      appl_133 `pseq` applyWrapper appl_121 [appl_133]
-                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                Atom (B (False)) -> do do kl_fail
-                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                _ -> throwError "if: expected boolean")))
-                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                           !appl_134 <- kl_V2236 `pseq` kl_shen_LBcolonRB kl_V2236
-                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                           !appl_135 <- appl_134 `pseq` applyWrapper appl_117 [appl_134]
-                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                           appl_135 `pseq` applyWrapper appl_21 [appl_135]
-                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                     Atom (B (False)) -> do do return kl_YaccParse
-                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                     _ -> throwError "if: expected boolean")))
-                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                            let !appl_136 = ApplC (Func "lambda" (Context (\(!kl_Parse_shen_LBcolonRB) -> do !appl_137 <- kl_fail
-                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                             !appl_138 <- appl_137 `pseq` (kl_Parse_shen_LBcolonRB `pseq` eq appl_137 kl_Parse_shen_LBcolonRB)
-                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                             !kl_if_139 <- appl_138 `pseq` kl_not appl_138
-                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                             case kl_if_139 of
-                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                 Atom (B (True)) -> do let !appl_140 = ApplC (Func "lambda" (Context (\(!kl_Parse_shen_LBequalRB) -> do !appl_141 <- kl_fail
-                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                        !appl_142 <- appl_141 `pseq` (kl_Parse_shen_LBequalRB `pseq` eq appl_141 kl_Parse_shen_LBequalRB)
-                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                        !kl_if_143 <- appl_142 `pseq` kl_not appl_142
-                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                        case kl_if_143 of
-                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                            Atom (B (True)) -> do let !appl_144 = ApplC (Func "lambda" (Context (\(!kl_Parse_shen_LBst_inputRB) -> do !appl_145 <- kl_fail
-                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                      !appl_146 <- appl_145 `pseq` (kl_Parse_shen_LBst_inputRB `pseq` eq appl_145 kl_Parse_shen_LBst_inputRB)
-                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                      !kl_if_147 <- appl_146 `pseq` kl_not appl_146
-                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                      case kl_if_147 of
-                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                          Atom (B (True)) -> do !appl_148 <- kl_Parse_shen_LBst_inputRB `pseq` hd kl_Parse_shen_LBst_inputRB
-                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                !appl_149 <- kl_Parse_shen_LBst_inputRB `pseq` kl_shen_hdtl kl_Parse_shen_LBst_inputRB
-                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                !appl_150 <- appl_149 `pseq` klCons (Types.Atom (Types.UnboundSym ":=")) appl_149
-                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                appl_148 `pseq` (appl_150 `pseq` kl_shen_pair appl_148 appl_150)
-                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                          Atom (B (False)) -> do do kl_fail
-                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                          _ -> throwError "if: expected boolean")))
-                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                  !appl_151 <- kl_Parse_shen_LBequalRB `pseq` kl_shen_LBst_inputRB kl_Parse_shen_LBequalRB
-                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                  appl_151 `pseq` applyWrapper appl_144 [appl_151]
-                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                            Atom (B (False)) -> do do kl_fail
-                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                            _ -> throwError "if: expected boolean")))
-                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                       !appl_152 <- kl_Parse_shen_LBcolonRB `pseq` kl_shen_LBequalRB kl_Parse_shen_LBcolonRB
-                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                       appl_152 `pseq` applyWrapper appl_140 [appl_152]
-                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                 Atom (B (False)) -> do do kl_fail
-                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                 _ -> throwError "if: expected boolean")))
-                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                            !appl_153 <- kl_V2236 `pseq` kl_shen_LBcolonRB kl_V2236
-                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                            !appl_154 <- appl_153 `pseq` applyWrapper appl_136 [appl_153]
-                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                            appl_154 `pseq` applyWrapper appl_18 [appl_154]
-                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                      Atom (B (False)) -> do do return kl_YaccParse
-                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                      _ -> throwError "if: expected boolean")))
-                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                             let !appl_155 = ApplC (Func "lambda" (Context (\(!kl_Parse_shen_LBsemicolonRB) -> do !appl_156 <- kl_fail
-                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                  !appl_157 <- appl_156 `pseq` (kl_Parse_shen_LBsemicolonRB `pseq` eq appl_156 kl_Parse_shen_LBsemicolonRB)
-                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                  !kl_if_158 <- appl_157 `pseq` kl_not appl_157
-                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                  case kl_if_158 of
-                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                      Atom (B (True)) -> do let !appl_159 = ApplC (Func "lambda" (Context (\(!kl_Parse_shen_LBst_inputRB) -> do !appl_160 <- kl_fail
-                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                !appl_161 <- appl_160 `pseq` (kl_Parse_shen_LBst_inputRB `pseq` eq appl_160 kl_Parse_shen_LBst_inputRB)
-                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                !kl_if_162 <- appl_161 `pseq` kl_not appl_161
-                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                case kl_if_162 of
-                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                    Atom (B (True)) -> do !appl_163 <- kl_Parse_shen_LBst_inputRB `pseq` hd kl_Parse_shen_LBst_inputRB
-                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                          !appl_164 <- kl_Parse_shen_LBst_inputRB `pseq` kl_shen_hdtl kl_Parse_shen_LBst_inputRB
-                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                          !appl_165 <- appl_164 `pseq` klCons (Types.Atom (Types.UnboundSym ";")) appl_164
-                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                          appl_163 `pseq` (appl_165 `pseq` kl_shen_pair appl_163 appl_165)
-                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                    Atom (B (False)) -> do do kl_fail
-                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                    _ -> throwError "if: expected boolean")))
-                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                            !appl_166 <- kl_Parse_shen_LBsemicolonRB `pseq` kl_shen_LBst_inputRB kl_Parse_shen_LBsemicolonRB
-                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                            appl_166 `pseq` applyWrapper appl_159 [appl_166]
-                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                      Atom (B (False)) -> do do kl_fail
-                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                      _ -> throwError "if: expected boolean")))
-                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                             !appl_167 <- kl_V2236 `pseq` kl_shen_LBsemicolonRB kl_V2236
-                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                             !appl_168 <- appl_167 `pseq` applyWrapper appl_155 [appl_167]
-                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                             appl_168 `pseq` applyWrapper appl_15 [appl_168]
-                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                       Atom (B (False)) -> do do return kl_YaccParse
-                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                       _ -> throwError "if: expected boolean")))
-                                                                                                                                                                                                                                                                                                                                                                                                                              let !appl_169 = ApplC (Func "lambda" (Context (\(!kl_Parse_shen_LBbarRB) -> do !appl_170 <- kl_fail
-                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                             !appl_171 <- appl_170 `pseq` (kl_Parse_shen_LBbarRB `pseq` eq appl_170 kl_Parse_shen_LBbarRB)
-                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                             !kl_if_172 <- appl_171 `pseq` kl_not appl_171
-                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                             case kl_if_172 of
-                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                 Atom (B (True)) -> do let !appl_173 = ApplC (Func "lambda" (Context (\(!kl_Parse_shen_LBst_inputRB) -> do !appl_174 <- kl_fail
-                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                           !appl_175 <- appl_174 `pseq` (kl_Parse_shen_LBst_inputRB `pseq` eq appl_174 kl_Parse_shen_LBst_inputRB)
-                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                           !kl_if_176 <- appl_175 `pseq` kl_not appl_175
-                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                           case kl_if_176 of
-                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                               Atom (B (True)) -> do !appl_177 <- kl_Parse_shen_LBst_inputRB `pseq` hd kl_Parse_shen_LBst_inputRB
-                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                     !appl_178 <- kl_Parse_shen_LBst_inputRB `pseq` kl_shen_hdtl kl_Parse_shen_LBst_inputRB
-                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                     !appl_179 <- appl_178 `pseq` klCons (Types.Atom (Types.UnboundSym "bar!")) appl_178
-                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                     appl_177 `pseq` (appl_179 `pseq` kl_shen_pair appl_177 appl_179)
-                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                               Atom (B (False)) -> do do kl_fail
-                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                               _ -> throwError "if: expected boolean")))
-                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                       !appl_180 <- kl_Parse_shen_LBbarRB `pseq` kl_shen_LBst_inputRB kl_Parse_shen_LBbarRB
-                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                       appl_180 `pseq` applyWrapper appl_173 [appl_180]
-                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                 Atom (B (False)) -> do do kl_fail
-                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                 _ -> throwError "if: expected boolean")))
-                                                                                                                                                                                                                                                                                                                                                                                                                              !appl_181 <- kl_V2236 `pseq` kl_shen_LBbarRB kl_V2236
-                                                                                                                                                                                                                                                                                                                                                                                                                              !appl_182 <- appl_181 `pseq` applyWrapper appl_169 [appl_181]
-                                                                                                                                                                                                                                                                                                                                                                                                                              appl_182 `pseq` applyWrapper appl_12 [appl_182]
-                                                                                                                                                                                                                                                                                                                                                                                                        Atom (B (False)) -> do do return kl_YaccParse
-                                                                                                                                                                                                                                                                                                                                                                                                        _ -> throwError "if: expected boolean")))
-                                                                                                                                                                                                                                                                                                                                let !appl_183 = ApplC (Func "lambda" (Context (\(!kl_Parse_shen_LBrcurlyRB) -> do !appl_184 <- kl_fail
-                                                                                                                                                                                                                                                                                                                                                                                                                  !appl_185 <- appl_184 `pseq` (kl_Parse_shen_LBrcurlyRB `pseq` eq appl_184 kl_Parse_shen_LBrcurlyRB)
-                                                                                                                                                                                                                                                                                                                                                                                                                  !kl_if_186 <- appl_185 `pseq` kl_not appl_185
-                                                                                                                                                                                                                                                                                                                                                                                                                  case kl_if_186 of
-                                                                                                                                                                                                                                                                                                                                                                                                                      Atom (B (True)) -> do let !appl_187 = ApplC (Func "lambda" (Context (\(!kl_Parse_shen_LBst_inputRB) -> do !appl_188 <- kl_fail
-                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                !appl_189 <- appl_188 `pseq` (kl_Parse_shen_LBst_inputRB `pseq` eq appl_188 kl_Parse_shen_LBst_inputRB)
-                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                !kl_if_190 <- appl_189 `pseq` kl_not appl_189
-                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                case kl_if_190 of
-                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                    Atom (B (True)) -> do !appl_191 <- kl_Parse_shen_LBst_inputRB `pseq` hd kl_Parse_shen_LBst_inputRB
-                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                          !appl_192 <- kl_Parse_shen_LBst_inputRB `pseq` kl_shen_hdtl kl_Parse_shen_LBst_inputRB
-                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                          !appl_193 <- appl_192 `pseq` klCons (Types.Atom (Types.UnboundSym "}")) appl_192
-                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                          appl_191 `pseq` (appl_193 `pseq` kl_shen_pair appl_191 appl_193)
-                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                    Atom (B (False)) -> do do kl_fail
-                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                    _ -> throwError "if: expected boolean")))
-                                                                                                                                                                                                                                                                                                                                                                                                                                            !appl_194 <- kl_Parse_shen_LBrcurlyRB `pseq` kl_shen_LBst_inputRB kl_Parse_shen_LBrcurlyRB
-                                                                                                                                                                                                                                                                                                                                                                                                                                            appl_194 `pseq` applyWrapper appl_187 [appl_194]
-                                                                                                                                                                                                                                                                                                                                                                                                                      Atom (B (False)) -> do do kl_fail
-                                                                                                                                                                                                                                                                                                                                                                                                                      _ -> throwError "if: expected boolean")))
-                                                                                                                                                                                                                                                                                                                                !appl_195 <- kl_V2236 `pseq` kl_shen_LBrcurlyRB kl_V2236
-                                                                                                                                                                                                                                                                                                                                !appl_196 <- appl_195 `pseq` applyWrapper appl_183 [appl_195]
-                                                                                                                                                                                                                                                                                                                                appl_196 `pseq` applyWrapper appl_9 [appl_196]
-                                                                                                                                                                                                                                                                                                          Atom (B (False)) -> do do return kl_YaccParse
-                                                                                                                                                                                                                                                                                                          _ -> throwError "if: expected boolean")))
-                                                                                                                                                                                                                                  let !appl_197 = ApplC (Func "lambda" (Context (\(!kl_Parse_shen_LBlcurlyRB) -> do !appl_198 <- kl_fail
-                                                                                                                                                                                                                                                                                                                    !appl_199 <- appl_198 `pseq` (kl_Parse_shen_LBlcurlyRB `pseq` eq appl_198 kl_Parse_shen_LBlcurlyRB)
-                                                                                                                                                                                                                                                                                                                    !kl_if_200 <- appl_199 `pseq` kl_not appl_199
-                                                                                                                                                                                                                                                                                                                    case kl_if_200 of
-                                                                                                                                                                                                                                                                                                                        Atom (B (True)) -> do let !appl_201 = ApplC (Func "lambda" (Context (\(!kl_Parse_shen_LBst_inputRB) -> do !appl_202 <- kl_fail
-                                                                                                                                                                                                                                                                                                                                                                                                                                  !appl_203 <- appl_202 `pseq` (kl_Parse_shen_LBst_inputRB `pseq` eq appl_202 kl_Parse_shen_LBst_inputRB)
-                                                                                                                                                                                                                                                                                                                                                                                                                                  !kl_if_204 <- appl_203 `pseq` kl_not appl_203
-                                                                                                                                                                                                                                                                                                                                                                                                                                  case kl_if_204 of
-                                                                                                                                                                                                                                                                                                                                                                                                                                      Atom (B (True)) -> do !appl_205 <- kl_Parse_shen_LBst_inputRB `pseq` hd kl_Parse_shen_LBst_inputRB
-                                                                                                                                                                                                                                                                                                                                                                                                                                                            !appl_206 <- kl_Parse_shen_LBst_inputRB `pseq` kl_shen_hdtl kl_Parse_shen_LBst_inputRB
-                                                                                                                                                                                                                                                                                                                                                                                                                                                            !appl_207 <- appl_206 `pseq` klCons (Types.Atom (Types.UnboundSym "{")) appl_206
-                                                                                                                                                                                                                                                                                                                                                                                                                                                            appl_205 `pseq` (appl_207 `pseq` kl_shen_pair appl_205 appl_207)
-                                                                                                                                                                                                                                                                                                                                                                                                                                      Atom (B (False)) -> do do kl_fail
-                                                                                                                                                                                                                                                                                                                                                                                                                                      _ -> throwError "if: expected boolean")))
-                                                                                                                                                                                                                                                                                                                                              !appl_208 <- kl_Parse_shen_LBlcurlyRB `pseq` kl_shen_LBst_inputRB kl_Parse_shen_LBlcurlyRB
-                                                                                                                                                                                                                                                                                                                                              appl_208 `pseq` applyWrapper appl_201 [appl_208]
-                                                                                                                                                                                                                                                                                                                        Atom (B (False)) -> do do kl_fail
-                                                                                                                                                                                                                                                                                                                        _ -> throwError "if: expected boolean")))
-                                                                                                                                                                                                                                  !appl_209 <- kl_V2236 `pseq` kl_shen_LBlcurlyRB kl_V2236
-                                                                                                                                                                                                                                  !appl_210 <- appl_209 `pseq` applyWrapper appl_197 [appl_209]
-                                                                                                                                                                                                                                  appl_210 `pseq` applyWrapper appl_6 [appl_210]
-                                                                                                                                                                                                            Atom (B (False)) -> do do return kl_YaccParse
-                                                                                                                                                                                                            _ -> throwError "if: expected boolean")))
-                                                                                                                                    let !appl_211 = ApplC (Func "lambda" (Context (\(!kl_Parse_shen_LBlrbRB) -> do !appl_212 <- kl_fail
-                                                                                                                                                                                                                   !appl_213 <- appl_212 `pseq` (kl_Parse_shen_LBlrbRB `pseq` eq appl_212 kl_Parse_shen_LBlrbRB)
-                                                                                                                                                                                                                   !kl_if_214 <- appl_213 `pseq` kl_not appl_213
-                                                                                                                                                                                                                   case kl_if_214 of
-                                                                                                                                                                                                                       Atom (B (True)) -> do let !appl_215 = ApplC (Func "lambda" (Context (\(!kl_Parse_shen_LBst_input1RB) -> do !appl_216 <- kl_fail
-                                                                                                                                                                                                                                                                                                                                  !appl_217 <- appl_216 `pseq` (kl_Parse_shen_LBst_input1RB `pseq` eq appl_216 kl_Parse_shen_LBst_input1RB)
-                                                                                                                                                                                                                                                                                                                                  !kl_if_218 <- appl_217 `pseq` kl_not appl_217
-                                                                                                                                                                                                                                                                                                                                  case kl_if_218 of
-                                                                                                                                                                                                                                                                                                                                      Atom (B (True)) -> do let !appl_219 = ApplC (Func "lambda" (Context (\(!kl_Parse_shen_LBrrbRB) -> do !appl_220 <- kl_fail
-                                                                                                                                                                                                                                                                                                                                                                                                                                           !appl_221 <- appl_220 `pseq` (kl_Parse_shen_LBrrbRB `pseq` eq appl_220 kl_Parse_shen_LBrrbRB)
-                                                                                                                                                                                                                                                                                                                                                                                                                                           !kl_if_222 <- appl_221 `pseq` kl_not appl_221
-                                                                                                                                                                                                                                                                                                                                                                                                                                           case kl_if_222 of
-                                                                                                                                                                                                                                                                                                                                                                                                                                               Atom (B (True)) -> do let !appl_223 = ApplC (Func "lambda" (Context (\(!kl_Parse_shen_LBst_input2RB) -> do !appl_224 <- kl_fail
-                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                          !appl_225 <- appl_224 `pseq` (kl_Parse_shen_LBst_input2RB `pseq` eq appl_224 kl_Parse_shen_LBst_input2RB)
-                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                          !kl_if_226 <- appl_225 `pseq` kl_not appl_225
-                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                          case kl_if_226 of
-                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                              Atom (B (True)) -> do !appl_227 <- kl_Parse_shen_LBst_input2RB `pseq` hd kl_Parse_shen_LBst_input2RB
-                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                    !appl_228 <- kl_Parse_shen_LBst_input1RB `pseq` kl_shen_hdtl kl_Parse_shen_LBst_input1RB
-                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                    let !aw_229 = Types.Atom (Types.UnboundSym "macroexpand")
-                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                    !appl_230 <- appl_228 `pseq` applyWrapper aw_229 [appl_228]
-                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                    !appl_231 <- kl_Parse_shen_LBst_input2RB `pseq` kl_shen_hdtl kl_Parse_shen_LBst_input2RB
-                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                    !appl_232 <- appl_230 `pseq` (appl_231 `pseq` kl_shen_package_macro appl_230 appl_231)
-                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                    appl_227 `pseq` (appl_232 `pseq` kl_shen_pair appl_227 appl_232)
-                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                              Atom (B (False)) -> do do kl_fail
-                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                              _ -> throwError "if: expected boolean")))
-                                                                                                                                                                                                                                                                                                                                                                                                                                                                     !appl_233 <- kl_Parse_shen_LBrrbRB `pseq` kl_shen_LBst_input2RB kl_Parse_shen_LBrrbRB
-                                                                                                                                                                                                                                                                                                                                                                                                                                                                     appl_233 `pseq` applyWrapper appl_223 [appl_233]
-                                                                                                                                                                                                                                                                                                                                                                                                                                               Atom (B (False)) -> do do kl_fail
-                                                                                                                                                                                                                                                                                                                                                                                                                                               _ -> throwError "if: expected boolean")))
-                                                                                                                                                                                                                                                                                                                                                            !appl_234 <- kl_Parse_shen_LBst_input1RB `pseq` kl_shen_LBrrbRB kl_Parse_shen_LBst_input1RB
-                                                                                                                                                                                                                                                                                                                                                            appl_234 `pseq` applyWrapper appl_219 [appl_234]
-                                                                                                                                                                                                                                                                                                                                      Atom (B (False)) -> do do kl_fail
-                                                                                                                                                                                                                                                                                                                                      _ -> throwError "if: expected boolean")))
-                                                                                                                                                                                                                                             !appl_235 <- kl_Parse_shen_LBlrbRB `pseq` kl_shen_LBst_input1RB kl_Parse_shen_LBlrbRB
-                                                                                                                                                                                                                                             appl_235 `pseq` applyWrapper appl_215 [appl_235]
-                                                                                                                                                                                                                       Atom (B (False)) -> do do kl_fail
-                                                                                                                                                                                                                       _ -> throwError "if: expected boolean")))
-                                                                                                                                    !appl_236 <- kl_V2236 `pseq` kl_shen_LBlrbRB kl_V2236
-                                                                                                                                    !appl_237 <- appl_236 `pseq` applyWrapper appl_211 [appl_236]
-                                                                                                                                    appl_237 `pseq` applyWrapper appl_3 [appl_237]
-                                                                                                              Atom (B (False)) -> do do return kl_YaccParse
-                                                                                                              _ -> throwError "if: expected boolean")))
-                                      let !appl_238 = ApplC (Func "lambda" (Context (\(!kl_Parse_shen_LBlsbRB) -> do !appl_239 <- kl_fail
-                                                                                                                     !appl_240 <- appl_239 `pseq` (kl_Parse_shen_LBlsbRB `pseq` eq appl_239 kl_Parse_shen_LBlsbRB)
-                                                                                                                     !kl_if_241 <- appl_240 `pseq` kl_not appl_240
-                                                                                                                     case kl_if_241 of
-                                                                                                                         Atom (B (True)) -> do let !appl_242 = ApplC (Func "lambda" (Context (\(!kl_Parse_shen_LBst_input1RB) -> do !appl_243 <- kl_fail
-                                                                                                                                                                                                                                    !appl_244 <- appl_243 `pseq` (kl_Parse_shen_LBst_input1RB `pseq` eq appl_243 kl_Parse_shen_LBst_input1RB)
-                                                                                                                                                                                                                                    !kl_if_245 <- appl_244 `pseq` kl_not appl_244
-                                                                                                                                                                                                                                    case kl_if_245 of
-                                                                                                                                                                                                                                        Atom (B (True)) -> do let !appl_246 = ApplC (Func "lambda" (Context (\(!kl_Parse_shen_LBrsbRB) -> do !appl_247 <- kl_fail
-                                                                                                                                                                                                                                                                                                                                             !appl_248 <- appl_247 `pseq` (kl_Parse_shen_LBrsbRB `pseq` eq appl_247 kl_Parse_shen_LBrsbRB)
-                                                                                                                                                                                                                                                                                                                                             !kl_if_249 <- appl_248 `pseq` kl_not appl_248
-                                                                                                                                                                                                                                                                                                                                             case kl_if_249 of
-                                                                                                                                                                                                                                                                                                                                                 Atom (B (True)) -> do let !appl_250 = ApplC (Func "lambda" (Context (\(!kl_Parse_shen_LBst_input2RB) -> do !appl_251 <- kl_fail
-                                                                                                                                                                                                                                                                                                                                                                                                                                                            !appl_252 <- appl_251 `pseq` (kl_Parse_shen_LBst_input2RB `pseq` eq appl_251 kl_Parse_shen_LBst_input2RB)
-                                                                                                                                                                                                                                                                                                                                                                                                                                                            !kl_if_253 <- appl_252 `pseq` kl_not appl_252
-                                                                                                                                                                                                                                                                                                                                                                                                                                                            case kl_if_253 of
-                                                                                                                                                                                                                                                                                                                                                                                                                                                                Atom (B (True)) -> do !appl_254 <- kl_Parse_shen_LBst_input2RB `pseq` hd kl_Parse_shen_LBst_input2RB
-                                                                                                                                                                                                                                                                                                                                                                                                                                                                                      !appl_255 <- kl_Parse_shen_LBst_input1RB `pseq` kl_shen_hdtl kl_Parse_shen_LBst_input1RB
-                                                                                                                                                                                                                                                                                                                                                                                                                                                                                      !appl_256 <- appl_255 `pseq` kl_shen_cons_form appl_255
-                                                                                                                                                                                                                                                                                                                                                                                                                                                                                      let !aw_257 = Types.Atom (Types.UnboundSym "macroexpand")
-                                                                                                                                                                                                                                                                                                                                                                                                                                                                                      !appl_258 <- appl_256 `pseq` applyWrapper aw_257 [appl_256]
-                                                                                                                                                                                                                                                                                                                                                                                                                                                                                      !appl_259 <- kl_Parse_shen_LBst_input2RB `pseq` kl_shen_hdtl kl_Parse_shen_LBst_input2RB
-                                                                                                                                                                                                                                                                                                                                                                                                                                                                                      !appl_260 <- appl_258 `pseq` (appl_259 `pseq` klCons appl_258 appl_259)
-                                                                                                                                                                                                                                                                                                                                                                                                                                                                                      appl_254 `pseq` (appl_260 `pseq` kl_shen_pair appl_254 appl_260)
-                                                                                                                                                                                                                                                                                                                                                                                                                                                                Atom (B (False)) -> do do kl_fail
-                                                                                                                                                                                                                                                                                                                                                                                                                                                                _ -> throwError "if: expected boolean")))
-                                                                                                                                                                                                                                                                                                                                                                       !appl_261 <- kl_Parse_shen_LBrsbRB `pseq` kl_shen_LBst_input2RB kl_Parse_shen_LBrsbRB
-                                                                                                                                                                                                                                                                                                                                                                       appl_261 `pseq` applyWrapper appl_250 [appl_261]
-                                                                                                                                                                                                                                                                                                                                                 Atom (B (False)) -> do do kl_fail
-                                                                                                                                                                                                                                                                                                                                                 _ -> throwError "if: expected boolean")))
-                                                                                                                                                                                                                                                              !appl_262 <- kl_Parse_shen_LBst_input1RB `pseq` kl_shen_LBrsbRB kl_Parse_shen_LBst_input1RB
-                                                                                                                                                                                                                                                              appl_262 `pseq` applyWrapper appl_246 [appl_262]
-                                                                                                                                                                                                                                        Atom (B (False)) -> do do kl_fail
-                                                                                                                                                                                                                                        _ -> throwError "if: expected boolean")))
-                                                                                                                                               !appl_263 <- kl_Parse_shen_LBlsbRB `pseq` kl_shen_LBst_input1RB kl_Parse_shen_LBlsbRB
-                                                                                                                                               appl_263 `pseq` applyWrapper appl_242 [appl_263]
-                                                                                                                         Atom (B (False)) -> do do kl_fail
-                                                                                                                         _ -> throwError "if: expected boolean")))
-                                      !appl_264 <- kl_V2236 `pseq` kl_shen_LBlsbRB kl_V2236
-                                      !appl_265 <- appl_264 `pseq` applyWrapper appl_238 [appl_264]
-                                      appl_265 `pseq` applyWrapper appl_0 [appl_265]
-
-kl_shen_LBlsbRB :: Types.KLValue ->
-                   Types.KLContext Types.Env Types.KLValue
-kl_shen_LBlsbRB (!kl_V2238) = do !appl_0 <- kl_V2238 `pseq` hd kl_V2238
-                                 !kl_if_1 <- appl_0 `pseq` consP appl_0
-                                 !kl_if_2 <- case kl_if_1 of
-                                                 Atom (B (True)) -> do !appl_3 <- kl_V2238 `pseq` hd kl_V2238
-                                                                       !appl_4 <- appl_3 `pseq` hd appl_3
-                                                                       !kl_if_5 <- appl_4 `pseq` eq (Types.Atom (Types.N (Types.KI 91))) appl_4
-                                                                       case kl_if_5 of
-                                                                           Atom (B (True)) -> do return (Atom (B True))
-                                                                           Atom (B (False)) -> do do return (Atom (B False))
-                                                                           _ -> throwError "if: expected boolean"
-                                                 Atom (B (False)) -> do do return (Atom (B False))
-                                                 _ -> throwError "if: expected boolean"
-                                 case kl_if_2 of
-                                     Atom (B (True)) -> do !appl_6 <- kl_V2238 `pseq` hd kl_V2238
-                                                           !appl_7 <- appl_6 `pseq` tl appl_6
-                                                           !appl_8 <- kl_V2238 `pseq` kl_shen_hdtl kl_V2238
-                                                           !appl_9 <- appl_7 `pseq` (appl_8 `pseq` kl_shen_pair appl_7 appl_8)
-                                                           !appl_10 <- appl_9 `pseq` hd appl_9
-                                                           appl_10 `pseq` kl_shen_pair appl_10 (Types.Atom (Types.UnboundSym "shen.skip"))
-                                     Atom (B (False)) -> do do kl_fail
-                                     _ -> throwError "if: expected boolean"
-
-kl_shen_LBrsbRB :: Types.KLValue ->
-                   Types.KLContext Types.Env Types.KLValue
-kl_shen_LBrsbRB (!kl_V2240) = do !appl_0 <- kl_V2240 `pseq` hd kl_V2240
-                                 !kl_if_1 <- appl_0 `pseq` consP appl_0
-                                 !kl_if_2 <- case kl_if_1 of
-                                                 Atom (B (True)) -> do !appl_3 <- kl_V2240 `pseq` hd kl_V2240
-                                                                       !appl_4 <- appl_3 `pseq` hd appl_3
-                                                                       !kl_if_5 <- appl_4 `pseq` eq (Types.Atom (Types.N (Types.KI 93))) appl_4
-                                                                       case kl_if_5 of
-                                                                           Atom (B (True)) -> do return (Atom (B True))
-                                                                           Atom (B (False)) -> do do return (Atom (B False))
-                                                                           _ -> throwError "if: expected boolean"
-                                                 Atom (B (False)) -> do do return (Atom (B False))
-                                                 _ -> throwError "if: expected boolean"
-                                 case kl_if_2 of
-                                     Atom (B (True)) -> do !appl_6 <- kl_V2240 `pseq` hd kl_V2240
-                                                           !appl_7 <- appl_6 `pseq` tl appl_6
-                                                           !appl_8 <- kl_V2240 `pseq` kl_shen_hdtl kl_V2240
-                                                           !appl_9 <- appl_7 `pseq` (appl_8 `pseq` kl_shen_pair appl_7 appl_8)
-                                                           !appl_10 <- appl_9 `pseq` hd appl_9
-                                                           appl_10 `pseq` kl_shen_pair appl_10 (Types.Atom (Types.UnboundSym "shen.skip"))
-                                     Atom (B (False)) -> do do kl_fail
-                                     _ -> throwError "if: expected boolean"
-
-kl_shen_LBlcurlyRB :: Types.KLValue ->
-                      Types.KLContext Types.Env Types.KLValue
-kl_shen_LBlcurlyRB (!kl_V2242) = do !appl_0 <- kl_V2242 `pseq` hd kl_V2242
-                                    !kl_if_1 <- appl_0 `pseq` consP appl_0
-                                    !kl_if_2 <- case kl_if_1 of
-                                                    Atom (B (True)) -> do !appl_3 <- kl_V2242 `pseq` hd kl_V2242
-                                                                          !appl_4 <- appl_3 `pseq` hd appl_3
-                                                                          !kl_if_5 <- appl_4 `pseq` eq (Types.Atom (Types.N (Types.KI 123))) appl_4
-                                                                          case kl_if_5 of
-                                                                              Atom (B (True)) -> do return (Atom (B True))
-                                                                              Atom (B (False)) -> do do return (Atom (B False))
-                                                                              _ -> throwError "if: expected boolean"
-                                                    Atom (B (False)) -> do do return (Atom (B False))
-                                                    _ -> throwError "if: expected boolean"
-                                    case kl_if_2 of
-                                        Atom (B (True)) -> do !appl_6 <- kl_V2242 `pseq` hd kl_V2242
-                                                              !appl_7 <- appl_6 `pseq` tl appl_6
-                                                              !appl_8 <- kl_V2242 `pseq` kl_shen_hdtl kl_V2242
-                                                              !appl_9 <- appl_7 `pseq` (appl_8 `pseq` kl_shen_pair appl_7 appl_8)
-                                                              !appl_10 <- appl_9 `pseq` hd appl_9
-                                                              appl_10 `pseq` kl_shen_pair appl_10 (Types.Atom (Types.UnboundSym "shen.skip"))
-                                        Atom (B (False)) -> do do kl_fail
-                                        _ -> throwError "if: expected boolean"
-
-kl_shen_LBrcurlyRB :: Types.KLValue ->
-                      Types.KLContext Types.Env Types.KLValue
-kl_shen_LBrcurlyRB (!kl_V2244) = do !appl_0 <- kl_V2244 `pseq` hd kl_V2244
-                                    !kl_if_1 <- appl_0 `pseq` consP appl_0
-                                    !kl_if_2 <- case kl_if_1 of
-                                                    Atom (B (True)) -> do !appl_3 <- kl_V2244 `pseq` hd kl_V2244
-                                                                          !appl_4 <- appl_3 `pseq` hd appl_3
-                                                                          !kl_if_5 <- appl_4 `pseq` eq (Types.Atom (Types.N (Types.KI 125))) appl_4
-                                                                          case kl_if_5 of
-                                                                              Atom (B (True)) -> do return (Atom (B True))
-                                                                              Atom (B (False)) -> do do return (Atom (B False))
-                                                                              _ -> throwError "if: expected boolean"
-                                                    Atom (B (False)) -> do do return (Atom (B False))
-                                                    _ -> throwError "if: expected boolean"
-                                    case kl_if_2 of
-                                        Atom (B (True)) -> do !appl_6 <- kl_V2244 `pseq` hd kl_V2244
-                                                              !appl_7 <- appl_6 `pseq` tl appl_6
-                                                              !appl_8 <- kl_V2244 `pseq` kl_shen_hdtl kl_V2244
-                                                              !appl_9 <- appl_7 `pseq` (appl_8 `pseq` kl_shen_pair appl_7 appl_8)
-                                                              !appl_10 <- appl_9 `pseq` hd appl_9
-                                                              appl_10 `pseq` kl_shen_pair appl_10 (Types.Atom (Types.UnboundSym "shen.skip"))
-                                        Atom (B (False)) -> do do kl_fail
-                                        _ -> throwError "if: expected boolean"
-
-kl_shen_LBbarRB :: Types.KLValue ->
-                   Types.KLContext Types.Env Types.KLValue
-kl_shen_LBbarRB (!kl_V2246) = do !appl_0 <- kl_V2246 `pseq` hd kl_V2246
-                                 !kl_if_1 <- appl_0 `pseq` consP appl_0
-                                 !kl_if_2 <- case kl_if_1 of
-                                                 Atom (B (True)) -> do !appl_3 <- kl_V2246 `pseq` hd kl_V2246
-                                                                       !appl_4 <- appl_3 `pseq` hd appl_3
-                                                                       !kl_if_5 <- appl_4 `pseq` eq (Types.Atom (Types.N (Types.KI 124))) appl_4
-                                                                       case kl_if_5 of
-                                                                           Atom (B (True)) -> do return (Atom (B True))
-                                                                           Atom (B (False)) -> do do return (Atom (B False))
-                                                                           _ -> throwError "if: expected boolean"
-                                                 Atom (B (False)) -> do do return (Atom (B False))
-                                                 _ -> throwError "if: expected boolean"
-                                 case kl_if_2 of
-                                     Atom (B (True)) -> do !appl_6 <- kl_V2246 `pseq` hd kl_V2246
-                                                           !appl_7 <- appl_6 `pseq` tl appl_6
-                                                           !appl_8 <- kl_V2246 `pseq` kl_shen_hdtl kl_V2246
-                                                           !appl_9 <- appl_7 `pseq` (appl_8 `pseq` kl_shen_pair appl_7 appl_8)
-                                                           !appl_10 <- appl_9 `pseq` hd appl_9
-                                                           appl_10 `pseq` kl_shen_pair appl_10 (Types.Atom (Types.UnboundSym "shen.skip"))
-                                     Atom (B (False)) -> do do kl_fail
-                                     _ -> throwError "if: expected boolean"
-
-kl_shen_LBsemicolonRB :: Types.KLValue ->
-                         Types.KLContext Types.Env Types.KLValue
-kl_shen_LBsemicolonRB (!kl_V2248) = do !appl_0 <- kl_V2248 `pseq` hd kl_V2248
-                                       !kl_if_1 <- appl_0 `pseq` consP appl_0
-                                       !kl_if_2 <- case kl_if_1 of
-                                                       Atom (B (True)) -> do !appl_3 <- kl_V2248 `pseq` hd kl_V2248
-                                                                             !appl_4 <- appl_3 `pseq` hd appl_3
-                                                                             !kl_if_5 <- appl_4 `pseq` eq (Types.Atom (Types.N (Types.KI 59))) appl_4
-                                                                             case kl_if_5 of
-                                                                                 Atom (B (True)) -> do return (Atom (B True))
-                                                                                 Atom (B (False)) -> do do return (Atom (B False))
-                                                                                 _ -> throwError "if: expected boolean"
-                                                       Atom (B (False)) -> do do return (Atom (B False))
-                                                       _ -> throwError "if: expected boolean"
-                                       case kl_if_2 of
-                                           Atom (B (True)) -> do !appl_6 <- kl_V2248 `pseq` hd kl_V2248
-                                                                 !appl_7 <- appl_6 `pseq` tl appl_6
-                                                                 !appl_8 <- kl_V2248 `pseq` kl_shen_hdtl kl_V2248
-                                                                 !appl_9 <- appl_7 `pseq` (appl_8 `pseq` kl_shen_pair appl_7 appl_8)
-                                                                 !appl_10 <- appl_9 `pseq` hd appl_9
-                                                                 appl_10 `pseq` kl_shen_pair appl_10 (Types.Atom (Types.UnboundSym "shen.skip"))
-                                           Atom (B (False)) -> do do kl_fail
-                                           _ -> throwError "if: expected boolean"
-
-kl_shen_LBcolonRB :: Types.KLValue ->
-                     Types.KLContext Types.Env Types.KLValue
-kl_shen_LBcolonRB (!kl_V2250) = do !appl_0 <- kl_V2250 `pseq` hd kl_V2250
-                                   !kl_if_1 <- appl_0 `pseq` consP appl_0
-                                   !kl_if_2 <- case kl_if_1 of
-                                                   Atom (B (True)) -> do !appl_3 <- kl_V2250 `pseq` hd kl_V2250
-                                                                         !appl_4 <- appl_3 `pseq` hd appl_3
-                                                                         !kl_if_5 <- appl_4 `pseq` eq (Types.Atom (Types.N (Types.KI 58))) appl_4
-                                                                         case kl_if_5 of
-                                                                             Atom (B (True)) -> do return (Atom (B True))
-                                                                             Atom (B (False)) -> do do return (Atom (B False))
-                                                                             _ -> throwError "if: expected boolean"
-                                                   Atom (B (False)) -> do do return (Atom (B False))
-                                                   _ -> throwError "if: expected boolean"
-                                   case kl_if_2 of
-                                       Atom (B (True)) -> do !appl_6 <- kl_V2250 `pseq` hd kl_V2250
-                                                             !appl_7 <- appl_6 `pseq` tl appl_6
-                                                             !appl_8 <- kl_V2250 `pseq` kl_shen_hdtl kl_V2250
-                                                             !appl_9 <- appl_7 `pseq` (appl_8 `pseq` kl_shen_pair appl_7 appl_8)
-                                                             !appl_10 <- appl_9 `pseq` hd appl_9
-                                                             appl_10 `pseq` kl_shen_pair appl_10 (Types.Atom (Types.UnboundSym "shen.skip"))
-                                       Atom (B (False)) -> do do kl_fail
-                                       _ -> throwError "if: expected boolean"
-
-kl_shen_LBcommaRB :: Types.KLValue ->
-                     Types.KLContext Types.Env Types.KLValue
-kl_shen_LBcommaRB (!kl_V2252) = do !appl_0 <- kl_V2252 `pseq` hd kl_V2252
-                                   !kl_if_1 <- appl_0 `pseq` consP appl_0
-                                   !kl_if_2 <- case kl_if_1 of
-                                                   Atom (B (True)) -> do !appl_3 <- kl_V2252 `pseq` hd kl_V2252
-                                                                         !appl_4 <- appl_3 `pseq` hd appl_3
-                                                                         !kl_if_5 <- appl_4 `pseq` eq (Types.Atom (Types.N (Types.KI 44))) appl_4
-                                                                         case kl_if_5 of
-                                                                             Atom (B (True)) -> do return (Atom (B True))
-                                                                             Atom (B (False)) -> do do return (Atom (B False))
-                                                                             _ -> throwError "if: expected boolean"
-                                                   Atom (B (False)) -> do do return (Atom (B False))
-                                                   _ -> throwError "if: expected boolean"
-                                   case kl_if_2 of
-                                       Atom (B (True)) -> do !appl_6 <- kl_V2252 `pseq` hd kl_V2252
-                                                             !appl_7 <- appl_6 `pseq` tl appl_6
-                                                             !appl_8 <- kl_V2252 `pseq` kl_shen_hdtl kl_V2252
-                                                             !appl_9 <- appl_7 `pseq` (appl_8 `pseq` kl_shen_pair appl_7 appl_8)
-                                                             !appl_10 <- appl_9 `pseq` hd appl_9
-                                                             appl_10 `pseq` kl_shen_pair appl_10 (Types.Atom (Types.UnboundSym "shen.skip"))
-                                       Atom (B (False)) -> do do kl_fail
-                                       _ -> throwError "if: expected boolean"
-
-kl_shen_LBequalRB :: Types.KLValue ->
-                     Types.KLContext Types.Env Types.KLValue
-kl_shen_LBequalRB (!kl_V2254) = do !appl_0 <- kl_V2254 `pseq` hd kl_V2254
-                                   !kl_if_1 <- appl_0 `pseq` consP appl_0
-                                   !kl_if_2 <- case kl_if_1 of
-                                                   Atom (B (True)) -> do !appl_3 <- kl_V2254 `pseq` hd kl_V2254
-                                                                         !appl_4 <- appl_3 `pseq` hd appl_3
-                                                                         !kl_if_5 <- appl_4 `pseq` eq (Types.Atom (Types.N (Types.KI 61))) appl_4
-                                                                         case kl_if_5 of
-                                                                             Atom (B (True)) -> do return (Atom (B True))
-                                                                             Atom (B (False)) -> do do return (Atom (B False))
-                                                                             _ -> throwError "if: expected boolean"
-                                                   Atom (B (False)) -> do do return (Atom (B False))
-                                                   _ -> throwError "if: expected boolean"
-                                   case kl_if_2 of
-                                       Atom (B (True)) -> do !appl_6 <- kl_V2254 `pseq` hd kl_V2254
-                                                             !appl_7 <- appl_6 `pseq` tl appl_6
-                                                             !appl_8 <- kl_V2254 `pseq` kl_shen_hdtl kl_V2254
-                                                             !appl_9 <- appl_7 `pseq` (appl_8 `pseq` kl_shen_pair appl_7 appl_8)
-                                                             !appl_10 <- appl_9 `pseq` hd appl_9
-                                                             appl_10 `pseq` kl_shen_pair appl_10 (Types.Atom (Types.UnboundSym "shen.skip"))
-                                       Atom (B (False)) -> do do kl_fail
-                                       _ -> throwError "if: expected boolean"
-
-kl_shen_LBminusRB :: Types.KLValue ->
-                     Types.KLContext Types.Env Types.KLValue
-kl_shen_LBminusRB (!kl_V2256) = do !appl_0 <- kl_V2256 `pseq` hd kl_V2256
-                                   !kl_if_1 <- appl_0 `pseq` consP appl_0
-                                   !kl_if_2 <- case kl_if_1 of
-                                                   Atom (B (True)) -> do !appl_3 <- kl_V2256 `pseq` hd kl_V2256
-                                                                         !appl_4 <- appl_3 `pseq` hd appl_3
-                                                                         !kl_if_5 <- appl_4 `pseq` eq (Types.Atom (Types.N (Types.KI 45))) appl_4
-                                                                         case kl_if_5 of
-                                                                             Atom (B (True)) -> do return (Atom (B True))
-                                                                             Atom (B (False)) -> do do return (Atom (B False))
-                                                                             _ -> throwError "if: expected boolean"
-                                                   Atom (B (False)) -> do do return (Atom (B False))
-                                                   _ -> throwError "if: expected boolean"
-                                   case kl_if_2 of
-                                       Atom (B (True)) -> do !appl_6 <- kl_V2256 `pseq` hd kl_V2256
-                                                             !appl_7 <- appl_6 `pseq` tl appl_6
-                                                             !appl_8 <- kl_V2256 `pseq` kl_shen_hdtl kl_V2256
-                                                             !appl_9 <- appl_7 `pseq` (appl_8 `pseq` kl_shen_pair appl_7 appl_8)
-                                                             !appl_10 <- appl_9 `pseq` hd appl_9
-                                                             appl_10 `pseq` kl_shen_pair appl_10 (Types.Atom (Types.UnboundSym "shen.skip"))
-                                       Atom (B (False)) -> do do kl_fail
-                                       _ -> throwError "if: expected boolean"
-
-kl_shen_LBlrbRB :: Types.KLValue ->
-                   Types.KLContext Types.Env Types.KLValue
-kl_shen_LBlrbRB (!kl_V2258) = do !appl_0 <- kl_V2258 `pseq` hd kl_V2258
-                                 !kl_if_1 <- appl_0 `pseq` consP appl_0
-                                 !kl_if_2 <- case kl_if_1 of
-                                                 Atom (B (True)) -> do !appl_3 <- kl_V2258 `pseq` hd kl_V2258
-                                                                       !appl_4 <- appl_3 `pseq` hd appl_3
-                                                                       !kl_if_5 <- appl_4 `pseq` eq (Types.Atom (Types.N (Types.KI 40))) appl_4
-                                                                       case kl_if_5 of
-                                                                           Atom (B (True)) -> do return (Atom (B True))
-                                                                           Atom (B (False)) -> do do return (Atom (B False))
-                                                                           _ -> throwError "if: expected boolean"
-                                                 Atom (B (False)) -> do do return (Atom (B False))
-                                                 _ -> throwError "if: expected boolean"
-                                 case kl_if_2 of
-                                     Atom (B (True)) -> do !appl_6 <- kl_V2258 `pseq` hd kl_V2258
-                                                           !appl_7 <- appl_6 `pseq` tl appl_6
-                                                           !appl_8 <- kl_V2258 `pseq` kl_shen_hdtl kl_V2258
-                                                           !appl_9 <- appl_7 `pseq` (appl_8 `pseq` kl_shen_pair appl_7 appl_8)
-                                                           !appl_10 <- appl_9 `pseq` hd appl_9
-                                                           appl_10 `pseq` kl_shen_pair appl_10 (Types.Atom (Types.UnboundSym "shen.skip"))
-                                     Atom (B (False)) -> do do kl_fail
-                                     _ -> throwError "if: expected boolean"
-
-kl_shen_LBrrbRB :: Types.KLValue ->
-                   Types.KLContext Types.Env Types.KLValue
-kl_shen_LBrrbRB (!kl_V2260) = do !appl_0 <- kl_V2260 `pseq` hd kl_V2260
-                                 !kl_if_1 <- appl_0 `pseq` consP appl_0
-                                 !kl_if_2 <- case kl_if_1 of
-                                                 Atom (B (True)) -> do !appl_3 <- kl_V2260 `pseq` hd kl_V2260
-                                                                       !appl_4 <- appl_3 `pseq` hd appl_3
-                                                                       !kl_if_5 <- appl_4 `pseq` eq (Types.Atom (Types.N (Types.KI 41))) appl_4
-                                                                       case kl_if_5 of
-                                                                           Atom (B (True)) -> do return (Atom (B True))
-                                                                           Atom (B (False)) -> do do return (Atom (B False))
-                                                                           _ -> throwError "if: expected boolean"
-                                                 Atom (B (False)) -> do do return (Atom (B False))
-                                                 _ -> throwError "if: expected boolean"
-                                 case kl_if_2 of
-                                     Atom (B (True)) -> do !appl_6 <- kl_V2260 `pseq` hd kl_V2260
-                                                           !appl_7 <- appl_6 `pseq` tl appl_6
-                                                           !appl_8 <- kl_V2260 `pseq` kl_shen_hdtl kl_V2260
-                                                           !appl_9 <- appl_7 `pseq` (appl_8 `pseq` kl_shen_pair appl_7 appl_8)
-                                                           !appl_10 <- appl_9 `pseq` hd appl_9
-                                                           appl_10 `pseq` kl_shen_pair appl_10 (Types.Atom (Types.UnboundSym "shen.skip"))
-                                     Atom (B (False)) -> do do kl_fail
-                                     _ -> throwError "if: expected boolean"
-
-kl_shen_LBatomRB :: Types.KLValue ->
-                    Types.KLContext Types.Env Types.KLValue
-kl_shen_LBatomRB (!kl_V2262) = do let !appl_0 = ApplC (Func "lambda" (Context (\(!kl_YaccParse) -> do !appl_1 <- kl_fail
-                                                                                                      !kl_if_2 <- kl_YaccParse `pseq` (appl_1 `pseq` eq kl_YaccParse appl_1)
-                                                                                                      case kl_if_2 of
-                                                                                                          Atom (B (True)) -> do let !appl_3 = ApplC (Func "lambda" (Context (\(!kl_YaccParse) -> do !appl_4 <- kl_fail
-                                                                                                                                                                                                    !kl_if_5 <- kl_YaccParse `pseq` (appl_4 `pseq` eq kl_YaccParse appl_4)
-                                                                                                                                                                                                    case kl_if_5 of
-                                                                                                                                                                                                        Atom (B (True)) -> do let !appl_6 = ApplC (Func "lambda" (Context (\(!kl_Parse_shen_LBsymRB) -> do !appl_7 <- kl_fail
-                                                                                                                                                                                                                                                                                                           !appl_8 <- appl_7 `pseq` (kl_Parse_shen_LBsymRB `pseq` eq appl_7 kl_Parse_shen_LBsymRB)
-                                                                                                                                                                                                                                                                                                           !kl_if_9 <- appl_8 `pseq` kl_not appl_8
-                                                                                                                                                                                                                                                                                                           case kl_if_9 of
-                                                                                                                                                                                                                                                                                                               Atom (B (True)) -> do !appl_10 <- kl_Parse_shen_LBsymRB `pseq` hd kl_Parse_shen_LBsymRB
-                                                                                                                                                                                                                                                                                                                                     !appl_11 <- kl_Parse_shen_LBsymRB `pseq` kl_shen_hdtl kl_Parse_shen_LBsymRB
-                                                                                                                                                                                                                                                                                                                                     !kl_if_12 <- appl_11 `pseq` eq appl_11 (Types.Atom (Types.Str "<>"))
-                                                                                                                                                                                                                                                                                                                                     !appl_13 <- case kl_if_12 of
-                                                                                                                                                                                                                                                                                                                                                     Atom (B (True)) -> do !appl_14 <- klCons (Types.Atom (Types.N (Types.KI 0))) (Types.Atom Types.Nil)
-                                                                                                                                                                                                                                                                                                                                                                           appl_14 `pseq` klCons (ApplC (wrapNamed "vector" kl_vector)) appl_14
-                                                                                                                                                                                                                                                                                                                                                     Atom (B (False)) -> do do !appl_15 <- kl_Parse_shen_LBsymRB `pseq` kl_shen_hdtl kl_Parse_shen_LBsymRB
-                                                                                                                                                                                                                                                                                                                                                                               appl_15 `pseq` intern appl_15
-                                                                                                                                                                                                                                                                                                                                                     _ -> throwError "if: expected boolean"
-                                                                                                                                                                                                                                                                                                                                     appl_10 `pseq` (appl_13 `pseq` kl_shen_pair appl_10 appl_13)
-                                                                                                                                                                                                                                                                                                               Atom (B (False)) -> do do kl_fail
-                                                                                                                                                                                                                                                                                                               _ -> throwError "if: expected boolean")))
-                                                                                                                                                                                                                              !appl_16 <- kl_V2262 `pseq` kl_shen_LBsymRB kl_V2262
-                                                                                                                                                                                                                              appl_16 `pseq` applyWrapper appl_6 [appl_16]
-                                                                                                                                                                                                        Atom (B (False)) -> do do return kl_YaccParse
-                                                                                                                                                                                                        _ -> throwError "if: expected boolean")))
-                                                                                                                                let !appl_17 = ApplC (Func "lambda" (Context (\(!kl_Parse_shen_LBnumberRB) -> do !appl_18 <- kl_fail
-                                                                                                                                                                                                                 !appl_19 <- appl_18 `pseq` (kl_Parse_shen_LBnumberRB `pseq` eq appl_18 kl_Parse_shen_LBnumberRB)
-                                                                                                                                                                                                                 !kl_if_20 <- appl_19 `pseq` kl_not appl_19
-                                                                                                                                                                                                                 case kl_if_20 of
-                                                                                                                                                                                                                     Atom (B (True)) -> do !appl_21 <- kl_Parse_shen_LBnumberRB `pseq` hd kl_Parse_shen_LBnumberRB
-                                                                                                                                                                                                                                           !appl_22 <- kl_Parse_shen_LBnumberRB `pseq` kl_shen_hdtl kl_Parse_shen_LBnumberRB
-                                                                                                                                                                                                                                           appl_21 `pseq` (appl_22 `pseq` kl_shen_pair appl_21 appl_22)
-                                                                                                                                                                                                                     Atom (B (False)) -> do do kl_fail
-                                                                                                                                                                                                                     _ -> throwError "if: expected boolean")))
-                                                                                                                                !appl_23 <- kl_V2262 `pseq` kl_shen_LBnumberRB kl_V2262
-                                                                                                                                !appl_24 <- appl_23 `pseq` applyWrapper appl_17 [appl_23]
-                                                                                                                                appl_24 `pseq` applyWrapper appl_3 [appl_24]
-                                                                                                          Atom (B (False)) -> do do return kl_YaccParse
-                                                                                                          _ -> throwError "if: expected boolean")))
-                                  let !appl_25 = ApplC (Func "lambda" (Context (\(!kl_Parse_shen_LBstrRB) -> do !appl_26 <- kl_fail
-                                                                                                                !appl_27 <- appl_26 `pseq` (kl_Parse_shen_LBstrRB `pseq` eq appl_26 kl_Parse_shen_LBstrRB)
-                                                                                                                !kl_if_28 <- appl_27 `pseq` kl_not appl_27
-                                                                                                                case kl_if_28 of
-                                                                                                                    Atom (B (True)) -> do !appl_29 <- kl_Parse_shen_LBstrRB `pseq` hd kl_Parse_shen_LBstrRB
-                                                                                                                                          !appl_30 <- kl_Parse_shen_LBstrRB `pseq` kl_shen_hdtl kl_Parse_shen_LBstrRB
-                                                                                                                                          !appl_31 <- appl_30 `pseq` kl_shen_control_chars appl_30
-                                                                                                                                          appl_29 `pseq` (appl_31 `pseq` kl_shen_pair appl_29 appl_31)
-                                                                                                                    Atom (B (False)) -> do do kl_fail
-                                                                                                                    _ -> throwError "if: expected boolean")))
-                                  !appl_32 <- kl_V2262 `pseq` kl_shen_LBstrRB kl_V2262
-                                  !appl_33 <- appl_32 `pseq` applyWrapper appl_25 [appl_32]
-                                  appl_33 `pseq` applyWrapper appl_0 [appl_33]
-
-kl_shen_control_chars :: Types.KLValue ->
-                         Types.KLContext Types.Env Types.KLValue
-kl_shen_control_chars (!kl_V2264) = do let pat_cond_0 = do return (Types.Atom (Types.Str ""))
-                                           pat_cond_1 kl_V2264 kl_V2264t kl_V2264tt = do let !appl_2 = ApplC (Func "lambda" (Context (\(!kl_CodePoint) -> do let !appl_3 = ApplC (Func "lambda" (Context (\(!kl_AfterCodePoint) -> do !appl_4 <- kl_CodePoint `pseq` kl_shen_decimalise kl_CodePoint
-                                                                                                                                                                                                                                      !appl_5 <- appl_4 `pseq` nToString appl_4
-                                                                                                                                                                                                                                      !appl_6 <- kl_AfterCodePoint `pseq` kl_shen_control_chars kl_AfterCodePoint
-                                                                                                                                                                                                                                      appl_5 `pseq` (appl_6 `pseq` kl_Ats appl_5 appl_6))))
-                                                                                                                                                             !appl_7 <- kl_V2264tt `pseq` kl_shen_after_codepoint kl_V2264tt
-                                                                                                                                                             appl_7 `pseq` applyWrapper appl_3 [appl_7])))
-                                                                                         !appl_8 <- kl_V2264tt `pseq` kl_shen_code_point kl_V2264tt
-                                                                                         appl_8 `pseq` applyWrapper appl_2 [appl_8]
-                                           pat_cond_9 kl_V2264 kl_V2264h kl_V2264t = do !appl_10 <- kl_V2264t `pseq` kl_shen_control_chars kl_V2264t
-                                                                                        kl_V2264h `pseq` (appl_10 `pseq` kl_Ats kl_V2264h appl_10)
-                                           pat_cond_11 = do do let !aw_12 = Types.Atom (Types.UnboundSym "shen.f_error")
-                                                               applyWrapper aw_12 [ApplC (wrapNamed "shen.control-chars" kl_shen_control_chars)]
-                                        in case kl_V2264 of
-                                               kl_V2264@(Atom (Nil)) -> pat_cond_0
-                                               !(kl_V2264@(Cons (Atom (Str "c"))
-                                                                (!(kl_V2264t@(Cons (Atom (Str "#"))
-                                                                                   (!kl_V2264tt)))))) -> pat_cond_1 kl_V2264 kl_V2264t kl_V2264tt
-                                               !(kl_V2264@(Cons (!kl_V2264h)
-                                                                (!kl_V2264t))) -> pat_cond_9 kl_V2264 kl_V2264h kl_V2264t
-                                               _ -> pat_cond_11
-
-kl_shen_code_point :: Types.KLValue ->
-                      Types.KLContext Types.Env Types.KLValue
-kl_shen_code_point (!kl_V2268) = do let pat_cond_0 kl_V2268 kl_V2268t = do return (Types.Atom (Types.Str ""))
-                                        pat_cond_1 = do !kl_if_2 <- let pat_cond_3 kl_V2268 kl_V2268h kl_V2268t = do !appl_4 <- klCons (Types.Atom (Types.Str "0")) (Types.Atom Types.Nil)
-                                                                                                                     !appl_5 <- appl_4 `pseq` klCons (Types.Atom (Types.Str "9")) appl_4
-                                                                                                                     !appl_6 <- appl_5 `pseq` klCons (Types.Atom (Types.Str "8")) appl_5
-                                                                                                                     !appl_7 <- appl_6 `pseq` klCons (Types.Atom (Types.Str "7")) appl_6
-                                                                                                                     !appl_8 <- appl_7 `pseq` klCons (Types.Atom (Types.Str "6")) appl_7
-                                                                                                                     !appl_9 <- appl_8 `pseq` klCons (Types.Atom (Types.Str "5")) appl_8
-                                                                                                                     !appl_10 <- appl_9 `pseq` klCons (Types.Atom (Types.Str "4")) appl_9
-                                                                                                                     !appl_11 <- appl_10 `pseq` klCons (Types.Atom (Types.Str "3")) appl_10
-                                                                                                                     !appl_12 <- appl_11 `pseq` klCons (Types.Atom (Types.Str "2")) appl_11
-                                                                                                                     !appl_13 <- appl_12 `pseq` klCons (Types.Atom (Types.Str "1")) appl_12
-                                                                                                                     !appl_14 <- appl_13 `pseq` klCons (Types.Atom (Types.Str "0")) appl_13
-                                                                                                                     !kl_if_15 <- kl_V2268h `pseq` (appl_14 `pseq` kl_elementP kl_V2268h appl_14)
-                                                                                                                     case kl_if_15 of
-                                                                                                                         Atom (B (True)) -> do return (Atom (B True))
-                                                                                                                         Atom (B (False)) -> do do return (Atom (B False))
-                                                                                                                         _ -> throwError "if: expected boolean"
-                                                                        pat_cond_16 = do do return (Atom (B False))
-                                                                     in case kl_V2268 of
-                                                                            !(kl_V2268@(Cons (!kl_V2268h)
-                                                                                             (!kl_V2268t))) -> pat_cond_3 kl_V2268 kl_V2268h kl_V2268t
-                                                                            _ -> pat_cond_16
-                                                        case kl_if_2 of
-                                                            Atom (B (True)) -> do !appl_17 <- kl_V2268 `pseq` hd kl_V2268
-                                                                                  !appl_18 <- kl_V2268 `pseq` tl kl_V2268
-                                                                                  !appl_19 <- appl_18 `pseq` kl_shen_code_point appl_18
-                                                                                  appl_17 `pseq` (appl_19 `pseq` klCons appl_17 appl_19)
-                                                            Atom (B (False)) -> do do let !aw_20 = Types.Atom (Types.UnboundSym "shen.app")
-                                                                                      !appl_21 <- kl_V2268 `pseq` applyWrapper aw_20 [kl_V2268,
-                                                                                                                                      Types.Atom (Types.Str "\n"),
-                                                                                                                                      Types.Atom (Types.UnboundSym "shen.a")]
-                                                                                      !appl_22 <- appl_21 `pseq` cn (Types.Atom (Types.Str "code point parse error ")) appl_21
-                                                                                      appl_22 `pseq` simpleError appl_22
-                                                            _ -> throwError "if: expected boolean"
-                                     in case kl_V2268 of
-                                            !(kl_V2268@(Cons (Atom (Str ";"))
-                                                             (!kl_V2268t))) -> pat_cond_0 kl_V2268 kl_V2268t
-                                            _ -> pat_cond_1
-
-kl_shen_after_codepoint :: Types.KLValue ->
-                           Types.KLContext Types.Env Types.KLValue
-kl_shen_after_codepoint (!kl_V2274) = do let pat_cond_0 = do return (Types.Atom Types.Nil)
-                                             pat_cond_1 kl_V2274 kl_V2274t = do return kl_V2274t
-                                             pat_cond_2 kl_V2274 kl_V2274h kl_V2274t = do kl_V2274t `pseq` kl_shen_after_codepoint kl_V2274t
-                                             pat_cond_3 = do do let !aw_4 = Types.Atom (Types.UnboundSym "shen.f_error")
-                                                                applyWrapper aw_4 [ApplC (wrapNamed "shen.after-codepoint" kl_shen_after_codepoint)]
-                                          in case kl_V2274 of
-                                                 kl_V2274@(Atom (Nil)) -> pat_cond_0
-                                                 !(kl_V2274@(Cons (Atom (Str ";"))
-                                                                  (!kl_V2274t))) -> pat_cond_1 kl_V2274 kl_V2274t
-                                                 !(kl_V2274@(Cons (!kl_V2274h)
-                                                                  (!kl_V2274t))) -> pat_cond_2 kl_V2274 kl_V2274h kl_V2274t
-                                                 _ -> pat_cond_3
-
-kl_shen_decimalise :: Types.KLValue ->
-                      Types.KLContext Types.Env Types.KLValue
-kl_shen_decimalise (!kl_V2276) = do !appl_0 <- kl_V2276 `pseq` kl_shen_digits_RBintegers kl_V2276
-                                    !appl_1 <- appl_0 `pseq` kl_reverse appl_0
-                                    appl_1 `pseq` kl_shen_pre appl_1 (Types.Atom (Types.N (Types.KI 0)))
-
-kl_shen_digits_RBintegers :: Types.KLValue ->
-                             Types.KLContext Types.Env Types.KLValue
-kl_shen_digits_RBintegers (!kl_V2282) = do let pat_cond_0 kl_V2282 kl_V2282t = do !appl_1 <- kl_V2282t `pseq` kl_shen_digits_RBintegers kl_V2282t
-                                                                                  appl_1 `pseq` klCons (Types.Atom (Types.N (Types.KI 0))) appl_1
-                                               pat_cond_2 kl_V2282 kl_V2282t = do !appl_3 <- kl_V2282t `pseq` kl_shen_digits_RBintegers kl_V2282t
-                                                                                  appl_3 `pseq` klCons (Types.Atom (Types.N (Types.KI 1))) appl_3
-                                               pat_cond_4 kl_V2282 kl_V2282t = do !appl_5 <- kl_V2282t `pseq` kl_shen_digits_RBintegers kl_V2282t
-                                                                                  appl_5 `pseq` klCons (Types.Atom (Types.N (Types.KI 2))) appl_5
-                                               pat_cond_6 kl_V2282 kl_V2282t = do !appl_7 <- kl_V2282t `pseq` kl_shen_digits_RBintegers kl_V2282t
-                                                                                  appl_7 `pseq` klCons (Types.Atom (Types.N (Types.KI 3))) appl_7
-                                               pat_cond_8 kl_V2282 kl_V2282t = do !appl_9 <- kl_V2282t `pseq` kl_shen_digits_RBintegers kl_V2282t
-                                                                                  appl_9 `pseq` klCons (Types.Atom (Types.N (Types.KI 4))) appl_9
-                                               pat_cond_10 kl_V2282 kl_V2282t = do !appl_11 <- kl_V2282t `pseq` kl_shen_digits_RBintegers kl_V2282t
-                                                                                   appl_11 `pseq` klCons (Types.Atom (Types.N (Types.KI 5))) appl_11
-                                               pat_cond_12 kl_V2282 kl_V2282t = do !appl_13 <- kl_V2282t `pseq` kl_shen_digits_RBintegers kl_V2282t
-                                                                                   appl_13 `pseq` klCons (Types.Atom (Types.N (Types.KI 6))) appl_13
-                                               pat_cond_14 kl_V2282 kl_V2282t = do !appl_15 <- kl_V2282t `pseq` kl_shen_digits_RBintegers kl_V2282t
-                                                                                   appl_15 `pseq` klCons (Types.Atom (Types.N (Types.KI 7))) appl_15
-                                               pat_cond_16 kl_V2282 kl_V2282t = do !appl_17 <- kl_V2282t `pseq` kl_shen_digits_RBintegers kl_V2282t
-                                                                                   appl_17 `pseq` klCons (Types.Atom (Types.N (Types.KI 8))) appl_17
-                                               pat_cond_18 kl_V2282 kl_V2282t = do !appl_19 <- kl_V2282t `pseq` kl_shen_digits_RBintegers kl_V2282t
-                                                                                   appl_19 `pseq` klCons (Types.Atom (Types.N (Types.KI 9))) appl_19
-                                               pat_cond_20 = do do return (Types.Atom Types.Nil)
-                                            in case kl_V2282 of
-                                                   !(kl_V2282@(Cons (Atom (Str "0"))
-                                                                    (!kl_V2282t))) -> pat_cond_0 kl_V2282 kl_V2282t
-                                                   !(kl_V2282@(Cons (Atom (Str "1"))
-                                                                    (!kl_V2282t))) -> pat_cond_2 kl_V2282 kl_V2282t
-                                                   !(kl_V2282@(Cons (Atom (Str "2"))
-                                                                    (!kl_V2282t))) -> pat_cond_4 kl_V2282 kl_V2282t
-                                                   !(kl_V2282@(Cons (Atom (Str "3"))
-                                                                    (!kl_V2282t))) -> pat_cond_6 kl_V2282 kl_V2282t
-                                                   !(kl_V2282@(Cons (Atom (Str "4"))
-                                                                    (!kl_V2282t))) -> pat_cond_8 kl_V2282 kl_V2282t
-                                                   !(kl_V2282@(Cons (Atom (Str "5"))
-                                                                    (!kl_V2282t))) -> pat_cond_10 kl_V2282 kl_V2282t
-                                                   !(kl_V2282@(Cons (Atom (Str "6"))
-                                                                    (!kl_V2282t))) -> pat_cond_12 kl_V2282 kl_V2282t
-                                                   !(kl_V2282@(Cons (Atom (Str "7"))
-                                                                    (!kl_V2282t))) -> pat_cond_14 kl_V2282 kl_V2282t
-                                                   !(kl_V2282@(Cons (Atom (Str "8"))
-                                                                    (!kl_V2282t))) -> pat_cond_16 kl_V2282 kl_V2282t
-                                                   !(kl_V2282@(Cons (Atom (Str "9"))
-                                                                    (!kl_V2282t))) -> pat_cond_18 kl_V2282 kl_V2282t
-                                                   _ -> pat_cond_20
-
-kl_shen_LBsymRB :: Types.KLValue ->
-                   Types.KLContext Types.Env Types.KLValue
-kl_shen_LBsymRB (!kl_V2284) = do let !appl_0 = ApplC (Func "lambda" (Context (\(!kl_Parse_shen_LBalphaRB) -> do !appl_1 <- kl_fail
-                                                                                                                !appl_2 <- appl_1 `pseq` (kl_Parse_shen_LBalphaRB `pseq` eq appl_1 kl_Parse_shen_LBalphaRB)
-                                                                                                                !kl_if_3 <- appl_2 `pseq` kl_not appl_2
-                                                                                                                case kl_if_3 of
-                                                                                                                    Atom (B (True)) -> do let !appl_4 = ApplC (Func "lambda" (Context (\(!kl_Parse_shen_LBalphanumsRB) -> do !appl_5 <- kl_fail
-                                                                                                                                                                                                                             !appl_6 <- appl_5 `pseq` (kl_Parse_shen_LBalphanumsRB `pseq` eq appl_5 kl_Parse_shen_LBalphanumsRB)
-                                                                                                                                                                                                                             !kl_if_7 <- appl_6 `pseq` kl_not appl_6
-                                                                                                                                                                                                                             case kl_if_7 of
-                                                                                                                                                                                                                                 Atom (B (True)) -> do !appl_8 <- kl_Parse_shen_LBalphanumsRB `pseq` hd kl_Parse_shen_LBalphanumsRB
-                                                                                                                                                                                                                                                       !appl_9 <- kl_Parse_shen_LBalphaRB `pseq` kl_shen_hdtl kl_Parse_shen_LBalphaRB
-                                                                                                                                                                                                                                                       !appl_10 <- kl_Parse_shen_LBalphanumsRB `pseq` kl_shen_hdtl kl_Parse_shen_LBalphanumsRB
-                                                                                                                                                                                                                                                       !appl_11 <- appl_9 `pseq` (appl_10 `pseq` kl_Ats appl_9 appl_10)
-                                                                                                                                                                                                                                                       appl_8 `pseq` (appl_11 `pseq` kl_shen_pair appl_8 appl_11)
-                                                                                                                                                                                                                                 Atom (B (False)) -> do do kl_fail
-                                                                                                                                                                                                                                 _ -> throwError "if: expected boolean")))
-                                                                                                                                          !appl_12 <- kl_Parse_shen_LBalphaRB `pseq` kl_shen_LBalphanumsRB kl_Parse_shen_LBalphaRB
-                                                                                                                                          appl_12 `pseq` applyWrapper appl_4 [appl_12]
-                                                                                                                    Atom (B (False)) -> do do kl_fail
-                                                                                                                    _ -> throwError "if: expected boolean")))
-                                 !appl_13 <- kl_V2284 `pseq` kl_shen_LBalphaRB kl_V2284
-                                 appl_13 `pseq` applyWrapper appl_0 [appl_13]
-
-kl_shen_LBalphanumsRB :: Types.KLValue ->
-                         Types.KLContext Types.Env Types.KLValue
-kl_shen_LBalphanumsRB (!kl_V2286) = do let !appl_0 = ApplC (Func "lambda" (Context (\(!kl_YaccParse) -> do !appl_1 <- kl_fail
-                                                                                                           !kl_if_2 <- kl_YaccParse `pseq` (appl_1 `pseq` eq kl_YaccParse appl_1)
-                                                                                                           case kl_if_2 of
-                                                                                                               Atom (B (True)) -> do let !appl_3 = ApplC (Func "lambda" (Context (\(!kl_Parse_LBeRB) -> do !appl_4 <- kl_fail
-                                                                                                                                                                                                           !appl_5 <- appl_4 `pseq` (kl_Parse_LBeRB `pseq` eq appl_4 kl_Parse_LBeRB)
-                                                                                                                                                                                                           !kl_if_6 <- appl_5 `pseq` kl_not appl_5
-                                                                                                                                                                                                           case kl_if_6 of
-                                                                                                                                                                                                               Atom (B (True)) -> do !appl_7 <- kl_Parse_LBeRB `pseq` hd kl_Parse_LBeRB
-                                                                                                                                                                                                                                     appl_7 `pseq` kl_shen_pair appl_7 (Types.Atom (Types.Str ""))
-                                                                                                                                                                                                               Atom (B (False)) -> do do kl_fail
-                                                                                                                                                                                                               _ -> throwError "if: expected boolean")))
-                                                                                                                                     !appl_8 <- kl_V2286 `pseq` kl_LBeRB kl_V2286
-                                                                                                                                     appl_8 `pseq` applyWrapper appl_3 [appl_8]
-                                                                                                               Atom (B (False)) -> do do return kl_YaccParse
-                                                                                                               _ -> throwError "if: expected boolean")))
-                                       let !appl_9 = ApplC (Func "lambda" (Context (\(!kl_Parse_shen_LBalphanumRB) -> do !appl_10 <- kl_fail
-                                                                                                                         !appl_11 <- appl_10 `pseq` (kl_Parse_shen_LBalphanumRB `pseq` eq appl_10 kl_Parse_shen_LBalphanumRB)
-                                                                                                                         !kl_if_12 <- appl_11 `pseq` kl_not appl_11
-                                                                                                                         case kl_if_12 of
-                                                                                                                             Atom (B (True)) -> do let !appl_13 = ApplC (Func "lambda" (Context (\(!kl_Parse_shen_LBalphanumsRB) -> do !appl_14 <- kl_fail
-                                                                                                                                                                                                                                       !appl_15 <- appl_14 `pseq` (kl_Parse_shen_LBalphanumsRB `pseq` eq appl_14 kl_Parse_shen_LBalphanumsRB)
-                                                                                                                                                                                                                                       !kl_if_16 <- appl_15 `pseq` kl_not appl_15
-                                                                                                                                                                                                                                       case kl_if_16 of
-                                                                                                                                                                                                                                           Atom (B (True)) -> do !appl_17 <- kl_Parse_shen_LBalphanumsRB `pseq` hd kl_Parse_shen_LBalphanumsRB
-                                                                                                                                                                                                                                                                 !appl_18 <- kl_Parse_shen_LBalphanumRB `pseq` kl_shen_hdtl kl_Parse_shen_LBalphanumRB
-                                                                                                                                                                                                                                                                 !appl_19 <- kl_Parse_shen_LBalphanumsRB `pseq` kl_shen_hdtl kl_Parse_shen_LBalphanumsRB
-                                                                                                                                                                                                                                                                 !appl_20 <- appl_18 `pseq` (appl_19 `pseq` kl_Ats appl_18 appl_19)
-                                                                                                                                                                                                                                                                 appl_17 `pseq` (appl_20 `pseq` kl_shen_pair appl_17 appl_20)
-                                                                                                                                                                                                                                           Atom (B (False)) -> do do kl_fail
-                                                                                                                                                                                                                                           _ -> throwError "if: expected boolean")))
-                                                                                                                                                   !appl_21 <- kl_Parse_shen_LBalphanumRB `pseq` kl_shen_LBalphanumsRB kl_Parse_shen_LBalphanumRB
-                                                                                                                                                   appl_21 `pseq` applyWrapper appl_13 [appl_21]
-                                                                                                                             Atom (B (False)) -> do do kl_fail
-                                                                                                                             _ -> throwError "if: expected boolean")))
-                                       !appl_22 <- kl_V2286 `pseq` kl_shen_LBalphanumRB kl_V2286
-                                       !appl_23 <- appl_22 `pseq` applyWrapper appl_9 [appl_22]
-                                       appl_23 `pseq` applyWrapper appl_0 [appl_23]
-
-kl_shen_LBalphanumRB :: Types.KLValue ->
-                        Types.KLContext Types.Env Types.KLValue
-kl_shen_LBalphanumRB (!kl_V2288) = do let !appl_0 = ApplC (Func "lambda" (Context (\(!kl_YaccParse) -> do !appl_1 <- kl_fail
-                                                                                                          !kl_if_2 <- kl_YaccParse `pseq` (appl_1 `pseq` eq kl_YaccParse appl_1)
-                                                                                                          case kl_if_2 of
-                                                                                                              Atom (B (True)) -> do let !appl_3 = ApplC (Func "lambda" (Context (\(!kl_Parse_shen_LBnumRB) -> do !appl_4 <- kl_fail
-                                                                                                                                                                                                                 !appl_5 <- appl_4 `pseq` (kl_Parse_shen_LBnumRB `pseq` eq appl_4 kl_Parse_shen_LBnumRB)
-                                                                                                                                                                                                                 !kl_if_6 <- appl_5 `pseq` kl_not appl_5
-                                                                                                                                                                                                                 case kl_if_6 of
-                                                                                                                                                                                                                     Atom (B (True)) -> do !appl_7 <- kl_Parse_shen_LBnumRB `pseq` hd kl_Parse_shen_LBnumRB
-                                                                                                                                                                                                                                           !appl_8 <- kl_Parse_shen_LBnumRB `pseq` kl_shen_hdtl kl_Parse_shen_LBnumRB
-                                                                                                                                                                                                                                           appl_7 `pseq` (appl_8 `pseq` kl_shen_pair appl_7 appl_8)
-                                                                                                                                                                                                                     Atom (B (False)) -> do do kl_fail
-                                                                                                                                                                                                                     _ -> throwError "if: expected boolean")))
-                                                                                                                                    !appl_9 <- kl_V2288 `pseq` kl_shen_LBnumRB kl_V2288
-                                                                                                                                    appl_9 `pseq` applyWrapper appl_3 [appl_9]
-                                                                                                              Atom (B (False)) -> do do return kl_YaccParse
-                                                                                                              _ -> throwError "if: expected boolean")))
-                                      let !appl_10 = ApplC (Func "lambda" (Context (\(!kl_Parse_shen_LBalphaRB) -> do !appl_11 <- kl_fail
-                                                                                                                      !appl_12 <- appl_11 `pseq` (kl_Parse_shen_LBalphaRB `pseq` eq appl_11 kl_Parse_shen_LBalphaRB)
-                                                                                                                      !kl_if_13 <- appl_12 `pseq` kl_not appl_12
-                                                                                                                      case kl_if_13 of
-                                                                                                                          Atom (B (True)) -> do !appl_14 <- kl_Parse_shen_LBalphaRB `pseq` hd kl_Parse_shen_LBalphaRB
-                                                                                                                                                !appl_15 <- kl_Parse_shen_LBalphaRB `pseq` kl_shen_hdtl kl_Parse_shen_LBalphaRB
-                                                                                                                                                appl_14 `pseq` (appl_15 `pseq` kl_shen_pair appl_14 appl_15)
-                                                                                                                          Atom (B (False)) -> do do kl_fail
-                                                                                                                          _ -> throwError "if: expected boolean")))
-                                      !appl_16 <- kl_V2288 `pseq` kl_shen_LBalphaRB kl_V2288
-                                      !appl_17 <- appl_16 `pseq` applyWrapper appl_10 [appl_16]
-                                      appl_17 `pseq` applyWrapper appl_0 [appl_17]
-
-kl_shen_LBnumRB :: Types.KLValue ->
-                   Types.KLContext Types.Env Types.KLValue
-kl_shen_LBnumRB (!kl_V2290) = do !appl_0 <- kl_V2290 `pseq` hd kl_V2290
-                                 !kl_if_1 <- appl_0 `pseq` consP appl_0
-                                 case kl_if_1 of
-                                     Atom (B (True)) -> do let !appl_2 = ApplC (Func "lambda" (Context (\(!kl_Parse_Byte) -> do !kl_if_3 <- kl_Parse_Byte `pseq` kl_shen_numbyteP kl_Parse_Byte
-                                                                                                                                case kl_if_3 of
-                                                                                                                                    Atom (B (True)) -> do !appl_4 <- kl_V2290 `pseq` hd kl_V2290
-                                                                                                                                                          !appl_5 <- appl_4 `pseq` tl appl_4
-                                                                                                                                                          !appl_6 <- kl_V2290 `pseq` kl_shen_hdtl kl_V2290
-                                                                                                                                                          !appl_7 <- appl_5 `pseq` (appl_6 `pseq` kl_shen_pair appl_5 appl_6)
-                                                                                                                                                          !appl_8 <- appl_7 `pseq` hd appl_7
-                                                                                                                                                          !appl_9 <- kl_Parse_Byte `pseq` nToString kl_Parse_Byte
-                                                                                                                                                          appl_8 `pseq` (appl_9 `pseq` kl_shen_pair appl_8 appl_9)
-                                                                                                                                    Atom (B (False)) -> do do kl_fail
-                                                                                                                                    _ -> throwError "if: expected boolean")))
-                                                           !appl_10 <- kl_V2290 `pseq` hd kl_V2290
-                                                           !appl_11 <- appl_10 `pseq` hd appl_10
-                                                           appl_11 `pseq` applyWrapper appl_2 [appl_11]
-                                     Atom (B (False)) -> do do kl_fail
-                                     _ -> throwError "if: expected boolean"
-
-kl_shen_numbyteP :: Types.KLValue ->
-                    Types.KLContext Types.Env Types.KLValue
-kl_shen_numbyteP (!kl_V2296) = do let pat_cond_0 = do return (Atom (B True))
-                                      pat_cond_1 = do return (Atom (B True))
-                                      pat_cond_2 = do return (Atom (B True))
-                                      pat_cond_3 = do return (Atom (B True))
-                                      pat_cond_4 = do return (Atom (B True))
-                                      pat_cond_5 = do return (Atom (B True))
-                                      pat_cond_6 = do return (Atom (B True))
-                                      pat_cond_7 = do return (Atom (B True))
-                                      pat_cond_8 = do return (Atom (B True))
-                                      pat_cond_9 = do return (Atom (B True))
-                                      pat_cond_10 = do do return (Atom (B False))
-                                   in case kl_V2296 of
-                                          kl_V2296@(Atom (N (KI 48))) -> pat_cond_0
-                                          kl_V2296@(Atom (N (KI 49))) -> pat_cond_1
-                                          kl_V2296@(Atom (N (KI 50))) -> pat_cond_2
-                                          kl_V2296@(Atom (N (KI 51))) -> pat_cond_3
-                                          kl_V2296@(Atom (N (KI 52))) -> pat_cond_4
-                                          kl_V2296@(Atom (N (KI 53))) -> pat_cond_5
-                                          kl_V2296@(Atom (N (KI 54))) -> pat_cond_6
-                                          kl_V2296@(Atom (N (KI 55))) -> pat_cond_7
-                                          kl_V2296@(Atom (N (KI 56))) -> pat_cond_8
-                                          kl_V2296@(Atom (N (KI 57))) -> pat_cond_9
-                                          _ -> pat_cond_10
-
-kl_shen_LBalphaRB :: Types.KLValue ->
-                     Types.KLContext Types.Env Types.KLValue
-kl_shen_LBalphaRB (!kl_V2298) = do !appl_0 <- kl_V2298 `pseq` hd kl_V2298
-                                   !kl_if_1 <- appl_0 `pseq` consP appl_0
-                                   case kl_if_1 of
-                                       Atom (B (True)) -> do let !appl_2 = ApplC (Func "lambda" (Context (\(!kl_Parse_Byte) -> do !kl_if_3 <- kl_Parse_Byte `pseq` kl_shen_symbol_codeP kl_Parse_Byte
-                                                                                                                                  case kl_if_3 of
-                                                                                                                                      Atom (B (True)) -> do !appl_4 <- kl_V2298 `pseq` hd kl_V2298
-                                                                                                                                                            !appl_5 <- appl_4 `pseq` tl appl_4
-                                                                                                                                                            !appl_6 <- kl_V2298 `pseq` kl_shen_hdtl kl_V2298
-                                                                                                                                                            !appl_7 <- appl_5 `pseq` (appl_6 `pseq` kl_shen_pair appl_5 appl_6)
-                                                                                                                                                            !appl_8 <- appl_7 `pseq` hd appl_7
-                                                                                                                                                            !appl_9 <- kl_Parse_Byte `pseq` nToString kl_Parse_Byte
-                                                                                                                                                            appl_8 `pseq` (appl_9 `pseq` kl_shen_pair appl_8 appl_9)
-                                                                                                                                      Atom (B (False)) -> do do kl_fail
-                                                                                                                                      _ -> throwError "if: expected boolean")))
-                                                             !appl_10 <- kl_V2298 `pseq` hd kl_V2298
-                                                             !appl_11 <- appl_10 `pseq` hd appl_10
-                                                             appl_11 `pseq` applyWrapper appl_2 [appl_11]
-                                       Atom (B (False)) -> do do kl_fail
-                                       _ -> throwError "if: expected boolean"
-
-kl_shen_symbol_codeP :: Types.KLValue ->
-                        Types.KLContext Types.Env Types.KLValue
-kl_shen_symbol_codeP (!kl_V2300) = do let pat_cond_0 = do return (Atom (B True))
-                                          pat_cond_1 = do do !kl_if_2 <- kl_V2300 `pseq` greaterThan kl_V2300 (Types.Atom (Types.N (Types.KI 94)))
-                                                             !kl_if_3 <- case kl_if_2 of
-                                                                             Atom (B (True)) -> do !kl_if_4 <- kl_V2300 `pseq` lessThan kl_V2300 (Types.Atom (Types.N (Types.KI 123)))
-                                                                                                   case kl_if_4 of
-                                                                                                       Atom (B (True)) -> do return (Atom (B True))
-                                                                                                       Atom (B (False)) -> do do return (Atom (B False))
-                                                                                                       _ -> throwError "if: expected boolean"
-                                                                             Atom (B (False)) -> do do return (Atom (B False))
-                                                                             _ -> throwError "if: expected boolean"
-                                                             !kl_if_5 <- case kl_if_3 of
-                                                                             Atom (B (True)) -> do return (Atom (B True))
-                                                                             Atom (B (False)) -> do do !kl_if_6 <- kl_V2300 `pseq` greaterThan kl_V2300 (Types.Atom (Types.N (Types.KI 59)))
-                                                                                                       !kl_if_7 <- case kl_if_6 of
-                                                                                                                       Atom (B (True)) -> do !kl_if_8 <- kl_V2300 `pseq` lessThan kl_V2300 (Types.Atom (Types.N (Types.KI 91)))
-                                                                                                                                             case kl_if_8 of
-                                                                                                                                                 Atom (B (True)) -> do return (Atom (B True))
-                                                                                                                                                 Atom (B (False)) -> do do return (Atom (B False))
-                                                                                                                                                 _ -> throwError "if: expected boolean"
-                                                                                                                       Atom (B (False)) -> do do return (Atom (B False))
-                                                                                                                       _ -> throwError "if: expected boolean"
-                                                                                                       !kl_if_9 <- case kl_if_7 of
-                                                                                                                       Atom (B (True)) -> do return (Atom (B True))
-                                                                                                                       Atom (B (False)) -> do do !kl_if_10 <- kl_V2300 `pseq` greaterThan kl_V2300 (Types.Atom (Types.N (Types.KI 41)))
-                                                                                                                                                 !kl_if_11 <- case kl_if_10 of
-                                                                                                                                                                  Atom (B (True)) -> do !kl_if_12 <- kl_V2300 `pseq` lessThan kl_V2300 (Types.Atom (Types.N (Types.KI 58)))
-                                                                                                                                                                                        !kl_if_13 <- case kl_if_12 of
-                                                                                                                                                                                                         Atom (B (True)) -> do !appl_14 <- kl_V2300 `pseq` eq kl_V2300 (Types.Atom (Types.N (Types.KI 44)))
-                                                                                                                                                                                                                               !kl_if_15 <- appl_14 `pseq` kl_not appl_14
-                                                                                                                                                                                                                               case kl_if_15 of
-                                                                                                                                                                                                                                   Atom (B (True)) -> do return (Atom (B True))
-                                                                                                                                                                                                                                   Atom (B (False)) -> do do return (Atom (B False))
-                                                                                                                                                                                                                                   _ -> throwError "if: expected boolean"
-                                                                                                                                                                                                         Atom (B (False)) -> do do return (Atom (B False))
-                                                                                                                                                                                                         _ -> throwError "if: expected boolean"
-                                                                                                                                                                                        case kl_if_13 of
-                                                                                                                                                                                            Atom (B (True)) -> do return (Atom (B True))
-                                                                                                                                                                                            Atom (B (False)) -> do do return (Atom (B False))
-                                                                                                                                                                                            _ -> throwError "if: expected boolean"
-                                                                                                                                                                  Atom (B (False)) -> do do return (Atom (B False))
-                                                                                                                                                                  _ -> throwError "if: expected boolean"
-                                                                                                                                                 !kl_if_16 <- case kl_if_11 of
-                                                                                                                                                                  Atom (B (True)) -> do return (Atom (B True))
-                                                                                                                                                                  Atom (B (False)) -> do do !kl_if_17 <- kl_V2300 `pseq` greaterThan kl_V2300 (Types.Atom (Types.N (Types.KI 34)))
-                                                                                                                                                                                            !kl_if_18 <- case kl_if_17 of
-                                                                                                                                                                                                             Atom (B (True)) -> do !kl_if_19 <- kl_V2300 `pseq` lessThan kl_V2300 (Types.Atom (Types.N (Types.KI 40)))
-                                                                                                                                                                                                                                   case kl_if_19 of
-                                                                                                                                                                                                                                       Atom (B (True)) -> do return (Atom (B True))
-                                                                                                                                                                                                                                       Atom (B (False)) -> do do return (Atom (B False))
-                                                                                                                                                                                                                                       _ -> throwError "if: expected boolean"
-                                                                                                                                                                                                             Atom (B (False)) -> do do return (Atom (B False))
-                                                                                                                                                                                                             _ -> throwError "if: expected boolean"
-                                                                                                                                                                                            !kl_if_20 <- case kl_if_18 of
-                                                                                                                                                                                                             Atom (B (True)) -> do return (Atom (B True))
-                                                                                                                                                                                                             Atom (B (False)) -> do do let pat_cond_21 = do return (Atom (B True))
-                                                                                                                                                                                                                                           pat_cond_22 = do do return (Atom (B False))
-                                                                                                                                                                                                                                        in case kl_V2300 of
-                                                                                                                                                                                                                                               kl_V2300@(Atom (N (KI 33))) -> pat_cond_21
-                                                                                                                                                                                                                                               _ -> pat_cond_22
-                                                                                                                                                                                                             _ -> throwError "if: expected boolean"
-                                                                                                                                                                                            case kl_if_20 of
-                                                                                                                                                                                                Atom (B (True)) -> do return (Atom (B True))
-                                                                                                                                                                                                Atom (B (False)) -> do do return (Atom (B False))
-                                                                                                                                                                                                _ -> throwError "if: expected boolean"
-                                                                                                                                                                  _ -> throwError "if: expected boolean"
-                                                                                                                                                 case kl_if_16 of
-                                                                                                                                                     Atom (B (True)) -> do return (Atom (B True))
-                                                                                                                                                     Atom (B (False)) -> do do return (Atom (B False))
-                                                                                                                                                     _ -> throwError "if: expected boolean"
-                                                                                                                       _ -> throwError "if: expected boolean"
-                                                                                                       case kl_if_9 of
-                                                                                                           Atom (B (True)) -> do return (Atom (B True))
-                                                                                                           Atom (B (False)) -> do do return (Atom (B False))
-                                                                                                           _ -> throwError "if: expected boolean"
-                                                                             _ -> throwError "if: expected boolean"
-                                                             case kl_if_5 of
-                                                                 Atom (B (True)) -> do return (Atom (B True))
-                                                                 Atom (B (False)) -> do do return (Atom (B False))
-                                                                 _ -> throwError "if: expected boolean"
-                                       in case kl_V2300 of
-                                              kl_V2300@(Atom (N (KI 126))) -> pat_cond_0
-                                              _ -> pat_cond_1
-
-kl_shen_LBstrRB :: Types.KLValue ->
-                   Types.KLContext Types.Env Types.KLValue
-kl_shen_LBstrRB (!kl_V2302) = do let !appl_0 = ApplC (Func "lambda" (Context (\(!kl_Parse_shen_LBdbqRB) -> do !appl_1 <- kl_fail
-                                                                                                              !appl_2 <- appl_1 `pseq` (kl_Parse_shen_LBdbqRB `pseq` eq appl_1 kl_Parse_shen_LBdbqRB)
-                                                                                                              !kl_if_3 <- appl_2 `pseq` kl_not appl_2
-                                                                                                              case kl_if_3 of
-                                                                                                                  Atom (B (True)) -> do let !appl_4 = ApplC (Func "lambda" (Context (\(!kl_Parse_shen_LBstrcontentsRB) -> do !appl_5 <- kl_fail
-                                                                                                                                                                                                                             !appl_6 <- appl_5 `pseq` (kl_Parse_shen_LBstrcontentsRB `pseq` eq appl_5 kl_Parse_shen_LBstrcontentsRB)
-                                                                                                                                                                                                                             !kl_if_7 <- appl_6 `pseq` kl_not appl_6
-                                                                                                                                                                                                                             case kl_if_7 of
-                                                                                                                                                                                                                                 Atom (B (True)) -> do let !appl_8 = ApplC (Func "lambda" (Context (\(!kl_Parse_shen_LBdbqRB) -> do !appl_9 <- kl_fail
-                                                                                                                                                                                                                                                                                                                                    !appl_10 <- appl_9 `pseq` (kl_Parse_shen_LBdbqRB `pseq` eq appl_9 kl_Parse_shen_LBdbqRB)
-                                                                                                                                                                                                                                                                                                                                    !kl_if_11 <- appl_10 `pseq` kl_not appl_10
-                                                                                                                                                                                                                                                                                                                                    case kl_if_11 of
-                                                                                                                                                                                                                                                                                                                                        Atom (B (True)) -> do !appl_12 <- kl_Parse_shen_LBdbqRB `pseq` hd kl_Parse_shen_LBdbqRB
-                                                                                                                                                                                                                                                                                                                                                              !appl_13 <- kl_Parse_shen_LBstrcontentsRB `pseq` kl_shen_hdtl kl_Parse_shen_LBstrcontentsRB
-                                                                                                                                                                                                                                                                                                                                                              appl_12 `pseq` (appl_13 `pseq` kl_shen_pair appl_12 appl_13)
-                                                                                                                                                                                                                                                                                                                                        Atom (B (False)) -> do do kl_fail
-                                                                                                                                                                                                                                                                                                                                        _ -> throwError "if: expected boolean")))
-                                                                                                                                                                                                                                                       !appl_14 <- kl_Parse_shen_LBstrcontentsRB `pseq` kl_shen_LBdbqRB kl_Parse_shen_LBstrcontentsRB
-                                                                                                                                                                                                                                                       appl_14 `pseq` applyWrapper appl_8 [appl_14]
-                                                                                                                                                                                                                                 Atom (B (False)) -> do do kl_fail
-                                                                                                                                                                                                                                 _ -> throwError "if: expected boolean")))
-                                                                                                                                        !appl_15 <- kl_Parse_shen_LBdbqRB `pseq` kl_shen_LBstrcontentsRB kl_Parse_shen_LBdbqRB
-                                                                                                                                        appl_15 `pseq` applyWrapper appl_4 [appl_15]
-                                                                                                                  Atom (B (False)) -> do do kl_fail
-                                                                                                                  _ -> throwError "if: expected boolean")))
-                                 !appl_16 <- kl_V2302 `pseq` kl_shen_LBdbqRB kl_V2302
-                                 appl_16 `pseq` applyWrapper appl_0 [appl_16]
-
-kl_shen_LBdbqRB :: Types.KLValue ->
-                   Types.KLContext Types.Env Types.KLValue
-kl_shen_LBdbqRB (!kl_V2304) = do !appl_0 <- kl_V2304 `pseq` hd kl_V2304
-                                 !kl_if_1 <- appl_0 `pseq` consP appl_0
-                                 case kl_if_1 of
-                                     Atom (B (True)) -> do let !appl_2 = ApplC (Func "lambda" (Context (\(!kl_Parse_Byte) -> do let pat_cond_3 = do !appl_4 <- kl_V2304 `pseq` hd kl_V2304
-                                                                                                                                                    !appl_5 <- appl_4 `pseq` tl appl_4
-                                                                                                                                                    !appl_6 <- kl_V2304 `pseq` kl_shen_hdtl kl_V2304
-                                                                                                                                                    !appl_7 <- appl_5 `pseq` (appl_6 `pseq` kl_shen_pair appl_5 appl_6)
-                                                                                                                                                    !appl_8 <- appl_7 `pseq` hd appl_7
-                                                                                                                                                    appl_8 `pseq` (kl_Parse_Byte `pseq` kl_shen_pair appl_8 kl_Parse_Byte)
-                                                                                                                                    pat_cond_9 = do do kl_fail
-                                                                                                                                 in case kl_Parse_Byte of
-                                                                                                                                        kl_Parse_Byte@(Atom (N (KI 34))) -> pat_cond_3
-                                                                                                                                        _ -> pat_cond_9)))
-                                                           !appl_10 <- kl_V2304 `pseq` hd kl_V2304
-                                                           !appl_11 <- appl_10 `pseq` hd appl_10
-                                                           appl_11 `pseq` applyWrapper appl_2 [appl_11]
-                                     Atom (B (False)) -> do do kl_fail
-                                     _ -> throwError "if: expected boolean"
-
-kl_shen_LBstrcontentsRB :: Types.KLValue ->
-                           Types.KLContext Types.Env Types.KLValue
-kl_shen_LBstrcontentsRB (!kl_V2306) = do let !appl_0 = ApplC (Func "lambda" (Context (\(!kl_YaccParse) -> do !appl_1 <- kl_fail
-                                                                                                             !kl_if_2 <- kl_YaccParse `pseq` (appl_1 `pseq` eq kl_YaccParse appl_1)
-                                                                                                             case kl_if_2 of
-                                                                                                                 Atom (B (True)) -> do let !appl_3 = ApplC (Func "lambda" (Context (\(!kl_Parse_LBeRB) -> do !appl_4 <- kl_fail
-                                                                                                                                                                                                             !appl_5 <- appl_4 `pseq` (kl_Parse_LBeRB `pseq` eq appl_4 kl_Parse_LBeRB)
-                                                                                                                                                                                                             !kl_if_6 <- appl_5 `pseq` kl_not appl_5
-                                                                                                                                                                                                             case kl_if_6 of
-                                                                                                                                                                                                                 Atom (B (True)) -> do !appl_7 <- kl_Parse_LBeRB `pseq` hd kl_Parse_LBeRB
-                                                                                                                                                                                                                                       appl_7 `pseq` kl_shen_pair appl_7 (Types.Atom Types.Nil)
-                                                                                                                                                                                                                 Atom (B (False)) -> do do kl_fail
-                                                                                                                                                                                                                 _ -> throwError "if: expected boolean")))
-                                                                                                                                       !appl_8 <- kl_V2306 `pseq` kl_LBeRB kl_V2306
-                                                                                                                                       appl_8 `pseq` applyWrapper appl_3 [appl_8]
-                                                                                                                 Atom (B (False)) -> do do return kl_YaccParse
-                                                                                                                 _ -> throwError "if: expected boolean")))
-                                         let !appl_9 = ApplC (Func "lambda" (Context (\(!kl_Parse_shen_LBstrcRB) -> do !appl_10 <- kl_fail
-                                                                                                                       !appl_11 <- appl_10 `pseq` (kl_Parse_shen_LBstrcRB `pseq` eq appl_10 kl_Parse_shen_LBstrcRB)
-                                                                                                                       !kl_if_12 <- appl_11 `pseq` kl_not appl_11
-                                                                                                                       case kl_if_12 of
-                                                                                                                           Atom (B (True)) -> do let !appl_13 = ApplC (Func "lambda" (Context (\(!kl_Parse_shen_LBstrcontentsRB) -> do !appl_14 <- kl_fail
-                                                                                                                                                                                                                                       !appl_15 <- appl_14 `pseq` (kl_Parse_shen_LBstrcontentsRB `pseq` eq appl_14 kl_Parse_shen_LBstrcontentsRB)
-                                                                                                                                                                                                                                       !kl_if_16 <- appl_15 `pseq` kl_not appl_15
-                                                                                                                                                                                                                                       case kl_if_16 of
-                                                                                                                                                                                                                                           Atom (B (True)) -> do !appl_17 <- kl_Parse_shen_LBstrcontentsRB `pseq` hd kl_Parse_shen_LBstrcontentsRB
-                                                                                                                                                                                                                                                                 !appl_18 <- kl_Parse_shen_LBstrcRB `pseq` kl_shen_hdtl kl_Parse_shen_LBstrcRB
-                                                                                                                                                                                                                                                                 !appl_19 <- kl_Parse_shen_LBstrcontentsRB `pseq` kl_shen_hdtl kl_Parse_shen_LBstrcontentsRB
-                                                                                                                                                                                                                                                                 !appl_20 <- appl_18 `pseq` (appl_19 `pseq` klCons appl_18 appl_19)
-                                                                                                                                                                                                                                                                 appl_17 `pseq` (appl_20 `pseq` kl_shen_pair appl_17 appl_20)
-                                                                                                                                                                                                                                           Atom (B (False)) -> do do kl_fail
-                                                                                                                                                                                                                                           _ -> throwError "if: expected boolean")))
-                                                                                                                                                 !appl_21 <- kl_Parse_shen_LBstrcRB `pseq` kl_shen_LBstrcontentsRB kl_Parse_shen_LBstrcRB
-                                                                                                                                                 appl_21 `pseq` applyWrapper appl_13 [appl_21]
-                                                                                                                           Atom (B (False)) -> do do kl_fail
-                                                                                                                           _ -> throwError "if: expected boolean")))
-                                         !appl_22 <- kl_V2306 `pseq` kl_shen_LBstrcRB kl_V2306
-                                         !appl_23 <- appl_22 `pseq` applyWrapper appl_9 [appl_22]
-                                         appl_23 `pseq` applyWrapper appl_0 [appl_23]
-
-kl_shen_LBbyteRB :: Types.KLValue ->
-                    Types.KLContext Types.Env Types.KLValue
-kl_shen_LBbyteRB (!kl_V2308) = do !appl_0 <- kl_V2308 `pseq` hd kl_V2308
-                                  !kl_if_1 <- appl_0 `pseq` consP appl_0
-                                  case kl_if_1 of
-                                      Atom (B (True)) -> do let !appl_2 = ApplC (Func "lambda" (Context (\(!kl_Parse_Byte) -> do !appl_3 <- kl_V2308 `pseq` hd kl_V2308
-                                                                                                                                 !appl_4 <- appl_3 `pseq` tl appl_3
-                                                                                                                                 !appl_5 <- kl_V2308 `pseq` kl_shen_hdtl kl_V2308
-                                                                                                                                 !appl_6 <- appl_4 `pseq` (appl_5 `pseq` kl_shen_pair appl_4 appl_5)
-                                                                                                                                 !appl_7 <- appl_6 `pseq` hd appl_6
-                                                                                                                                 !appl_8 <- kl_Parse_Byte `pseq` nToString kl_Parse_Byte
-                                                                                                                                 appl_7 `pseq` (appl_8 `pseq` kl_shen_pair appl_7 appl_8))))
-                                                            !appl_9 <- kl_V2308 `pseq` hd kl_V2308
-                                                            !appl_10 <- appl_9 `pseq` hd appl_9
-                                                            appl_10 `pseq` applyWrapper appl_2 [appl_10]
-                                      Atom (B (False)) -> do do kl_fail
-                                      _ -> throwError "if: expected boolean"
-
-kl_shen_LBstrcRB :: Types.KLValue ->
-                    Types.KLContext Types.Env Types.KLValue
-kl_shen_LBstrcRB (!kl_V2310) = do !appl_0 <- kl_V2310 `pseq` hd kl_V2310
-                                  !kl_if_1 <- appl_0 `pseq` consP appl_0
-                                  case kl_if_1 of
-                                      Atom (B (True)) -> do let !appl_2 = ApplC (Func "lambda" (Context (\(!kl_Parse_Byte) -> do !appl_3 <- kl_Parse_Byte `pseq` eq kl_Parse_Byte (Types.Atom (Types.N (Types.KI 34)))
-                                                                                                                                 !kl_if_4 <- appl_3 `pseq` kl_not appl_3
-                                                                                                                                 case kl_if_4 of
-                                                                                                                                     Atom (B (True)) -> do !appl_5 <- kl_V2310 `pseq` hd kl_V2310
-                                                                                                                                                           !appl_6 <- appl_5 `pseq` tl appl_5
-                                                                                                                                                           !appl_7 <- kl_V2310 `pseq` kl_shen_hdtl kl_V2310
-                                                                                                                                                           !appl_8 <- appl_6 `pseq` (appl_7 `pseq` kl_shen_pair appl_6 appl_7)
-                                                                                                                                                           !appl_9 <- appl_8 `pseq` hd appl_8
-                                                                                                                                                           !appl_10 <- kl_Parse_Byte `pseq` nToString kl_Parse_Byte
-                                                                                                                                                           appl_9 `pseq` (appl_10 `pseq` kl_shen_pair appl_9 appl_10)
-                                                                                                                                     Atom (B (False)) -> do do kl_fail
-                                                                                                                                     _ -> throwError "if: expected boolean")))
-                                                            !appl_11 <- kl_V2310 `pseq` hd kl_V2310
-                                                            !appl_12 <- appl_11 `pseq` hd appl_11
-                                                            appl_12 `pseq` applyWrapper appl_2 [appl_12]
-                                      Atom (B (False)) -> do do kl_fail
-                                      _ -> throwError "if: expected boolean"
-
-kl_shen_LBnumberRB :: Types.KLValue ->
-                      Types.KLContext Types.Env Types.KLValue
-kl_shen_LBnumberRB (!kl_V2312) = do let !appl_0 = ApplC (Func "lambda" (Context (\(!kl_YaccParse) -> do !appl_1 <- kl_fail
-                                                                                                        !kl_if_2 <- kl_YaccParse `pseq` (appl_1 `pseq` eq kl_YaccParse appl_1)
-                                                                                                        case kl_if_2 of
-                                                                                                            Atom (B (True)) -> do let !appl_3 = ApplC (Func "lambda" (Context (\(!kl_YaccParse) -> do !appl_4 <- kl_fail
-                                                                                                                                                                                                      !kl_if_5 <- kl_YaccParse `pseq` (appl_4 `pseq` eq kl_YaccParse appl_4)
-                                                                                                                                                                                                      case kl_if_5 of
-                                                                                                                                                                                                          Atom (B (True)) -> do let !appl_6 = ApplC (Func "lambda" (Context (\(!kl_YaccParse) -> do !appl_7 <- kl_fail
-                                                                                                                                                                                                                                                                                                    !kl_if_8 <- kl_YaccParse `pseq` (appl_7 `pseq` eq kl_YaccParse appl_7)
-                                                                                                                                                                                                                                                                                                    case kl_if_8 of
-                                                                                                                                                                                                                                                                                                        Atom (B (True)) -> do let !appl_9 = ApplC (Func "lambda" (Context (\(!kl_YaccParse) -> do !appl_10 <- kl_fail
-                                                                                                                                                                                                                                                                                                                                                                                                  !kl_if_11 <- kl_YaccParse `pseq` (appl_10 `pseq` eq kl_YaccParse appl_10)
-                                                                                                                                                                                                                                                                                                                                                                                                  case kl_if_11 of
-                                                                                                                                                                                                                                                                                                                                                                                                      Atom (B (True)) -> do let !appl_12 = ApplC (Func "lambda" (Context (\(!kl_YaccParse) -> do !appl_13 <- kl_fail
-                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                 !kl_if_14 <- kl_YaccParse `pseq` (appl_13 `pseq` eq kl_YaccParse appl_13)
-                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                 case kl_if_14 of
-                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                     Atom (B (True)) -> do let !appl_15 = ApplC (Func "lambda" (Context (\(!kl_Parse_shen_LBdigitsRB) -> do !appl_16 <- kl_fail
-                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                            !appl_17 <- appl_16 `pseq` (kl_Parse_shen_LBdigitsRB `pseq` eq appl_16 kl_Parse_shen_LBdigitsRB)
-                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                            !kl_if_18 <- appl_17 `pseq` kl_not appl_17
-                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                            case kl_if_18 of
-                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                Atom (B (True)) -> do !appl_19 <- kl_Parse_shen_LBdigitsRB `pseq` hd kl_Parse_shen_LBdigitsRB
-                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                      !appl_20 <- kl_Parse_shen_LBdigitsRB `pseq` kl_shen_hdtl kl_Parse_shen_LBdigitsRB
-                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                      !appl_21 <- appl_20 `pseq` kl_reverse appl_20
-                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                      !appl_22 <- appl_21 `pseq` kl_shen_pre appl_21 (Types.Atom (Types.N (Types.KI 0)))
-                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                      appl_19 `pseq` (appl_22 `pseq` kl_shen_pair appl_19 appl_22)
-                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                Atom (B (False)) -> do do kl_fail
-                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                _ -> throwError "if: expected boolean")))
-                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                           !appl_23 <- kl_V2312 `pseq` kl_shen_LBdigitsRB kl_V2312
-                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                           appl_23 `pseq` applyWrapper appl_15 [appl_23]
-                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                     Atom (B (False)) -> do do return kl_YaccParse
-                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                     _ -> throwError "if: expected boolean")))
-                                                                                                                                                                                                                                                                                                                                                                                                                            let !appl_24 = ApplC (Func "lambda" (Context (\(!kl_Parse_shen_LBpredigitsRB) -> do !appl_25 <- kl_fail
-                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                !appl_26 <- appl_25 `pseq` (kl_Parse_shen_LBpredigitsRB `pseq` eq appl_25 kl_Parse_shen_LBpredigitsRB)
-                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                !kl_if_27 <- appl_26 `pseq` kl_not appl_26
-                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                case kl_if_27 of
-                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                    Atom (B (True)) -> do let !appl_28 = ApplC (Func "lambda" (Context (\(!kl_Parse_shen_LBstopRB) -> do !appl_29 <- kl_fail
-                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                         !appl_30 <- appl_29 `pseq` (kl_Parse_shen_LBstopRB `pseq` eq appl_29 kl_Parse_shen_LBstopRB)
-                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                         !kl_if_31 <- appl_30 `pseq` kl_not appl_30
-                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                         case kl_if_31 of
-                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                             Atom (B (True)) -> do let !appl_32 = ApplC (Func "lambda" (Context (\(!kl_Parse_shen_LBpostdigitsRB) -> do !appl_33 <- kl_fail
-                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                        !appl_34 <- appl_33 `pseq` (kl_Parse_shen_LBpostdigitsRB `pseq` eq appl_33 kl_Parse_shen_LBpostdigitsRB)
-                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                        !kl_if_35 <- appl_34 `pseq` kl_not appl_34
-                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                        case kl_if_35 of
-                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                            Atom (B (True)) -> do !appl_36 <- kl_Parse_shen_LBpostdigitsRB `pseq` hd kl_Parse_shen_LBpostdigitsRB
-                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                  !appl_37 <- kl_Parse_shen_LBpredigitsRB `pseq` kl_shen_hdtl kl_Parse_shen_LBpredigitsRB
-                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                  !appl_38 <- appl_37 `pseq` kl_reverse appl_37
-                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                  !appl_39 <- appl_38 `pseq` kl_shen_pre appl_38 (Types.Atom (Types.N (Types.KI 0)))
-                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                  !appl_40 <- kl_Parse_shen_LBpostdigitsRB `pseq` kl_shen_hdtl kl_Parse_shen_LBpostdigitsRB
-                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                  !appl_41 <- appl_40 `pseq` kl_shen_post appl_40 (Types.Atom (Types.N (Types.KI 1)))
-                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                  !appl_42 <- appl_39 `pseq` (appl_41 `pseq` add appl_39 appl_41)
-                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                  appl_36 `pseq` (appl_42 `pseq` kl_shen_pair appl_36 appl_42)
-                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                            Atom (B (False)) -> do do kl_fail
-                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                            _ -> throwError "if: expected boolean")))
-                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                   !appl_43 <- kl_Parse_shen_LBstopRB `pseq` kl_shen_LBpostdigitsRB kl_Parse_shen_LBstopRB
-                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                   appl_43 `pseq` applyWrapper appl_32 [appl_43]
-                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                             Atom (B (False)) -> do do kl_fail
-                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                             _ -> throwError "if: expected boolean")))
-                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                          !appl_44 <- kl_Parse_shen_LBpredigitsRB `pseq` kl_shen_LBstopRB kl_Parse_shen_LBpredigitsRB
-                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                          appl_44 `pseq` applyWrapper appl_28 [appl_44]
-                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                    Atom (B (False)) -> do do kl_fail
-                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                    _ -> throwError "if: expected boolean")))
-                                                                                                                                                                                                                                                                                                                                                                                                                            !appl_45 <- kl_V2312 `pseq` kl_shen_LBpredigitsRB kl_V2312
-                                                                                                                                                                                                                                                                                                                                                                                                                            !appl_46 <- appl_45 `pseq` applyWrapper appl_24 [appl_45]
-                                                                                                                                                                                                                                                                                                                                                                                                                            appl_46 `pseq` applyWrapper appl_12 [appl_46]
-                                                                                                                                                                                                                                                                                                                                                                                                      Atom (B (False)) -> do do return kl_YaccParse
-                                                                                                                                                                                                                                                                                                                                                                                                      _ -> throwError "if: expected boolean")))
-                                                                                                                                                                                                                                                                                                                              let !appl_47 = ApplC (Func "lambda" (Context (\(!kl_Parse_shen_LBdigitsRB) -> do !appl_48 <- kl_fail
-                                                                                                                                                                                                                                                                                                                                                                                                               !appl_49 <- appl_48 `pseq` (kl_Parse_shen_LBdigitsRB `pseq` eq appl_48 kl_Parse_shen_LBdigitsRB)
-                                                                                                                                                                                                                                                                                                                                                                                                               !kl_if_50 <- appl_49 `pseq` kl_not appl_49
-                                                                                                                                                                                                                                                                                                                                                                                                               case kl_if_50 of
-                                                                                                                                                                                                                                                                                                                                                                                                                   Atom (B (True)) -> do let !appl_51 = ApplC (Func "lambda" (Context (\(!kl_Parse_shen_LBERB) -> do !appl_52 <- kl_fail
-                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                     !appl_53 <- appl_52 `pseq` (kl_Parse_shen_LBERB `pseq` eq appl_52 kl_Parse_shen_LBERB)
-                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                     !kl_if_54 <- appl_53 `pseq` kl_not appl_53
-                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                     case kl_if_54 of
-                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                         Atom (B (True)) -> do let !appl_55 = ApplC (Func "lambda" (Context (\(!kl_Parse_shen_LBlog10RB) -> do !appl_56 <- kl_fail
-                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                               !appl_57 <- appl_56 `pseq` (kl_Parse_shen_LBlog10RB `pseq` eq appl_56 kl_Parse_shen_LBlog10RB)
-                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                               !kl_if_58 <- appl_57 `pseq` kl_not appl_57
-                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                               case kl_if_58 of
-                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                   Atom (B (True)) -> do !appl_59 <- kl_Parse_shen_LBlog10RB `pseq` hd kl_Parse_shen_LBlog10RB
-                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                         !appl_60 <- kl_Parse_shen_LBlog10RB `pseq` kl_shen_hdtl kl_Parse_shen_LBlog10RB
-                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                         !appl_61 <- appl_60 `pseq` kl_shen_expt (Types.Atom (Types.N (Types.KI 10))) appl_60
-                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                         !appl_62 <- kl_Parse_shen_LBdigitsRB `pseq` kl_shen_hdtl kl_Parse_shen_LBdigitsRB
-                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                         !appl_63 <- appl_62 `pseq` kl_reverse appl_62
-                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                         !appl_64 <- appl_63 `pseq` kl_shen_pre appl_63 (Types.Atom (Types.N (Types.KI 0)))
-                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                         !appl_65 <- appl_61 `pseq` (appl_64 `pseq` multiply appl_61 appl_64)
-                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                         appl_59 `pseq` (appl_65 `pseq` kl_shen_pair appl_59 appl_65)
-                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                   Atom (B (False)) -> do do kl_fail
-                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                   _ -> throwError "if: expected boolean")))
-                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                               !appl_66 <- kl_Parse_shen_LBERB `pseq` kl_shen_LBlog10RB kl_Parse_shen_LBERB
-                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                               appl_66 `pseq` applyWrapper appl_55 [appl_66]
-                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                         Atom (B (False)) -> do do kl_fail
-                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                         _ -> throwError "if: expected boolean")))
-                                                                                                                                                                                                                                                                                                                                                                                                                                         !appl_67 <- kl_Parse_shen_LBdigitsRB `pseq` kl_shen_LBERB kl_Parse_shen_LBdigitsRB
-                                                                                                                                                                                                                                                                                                                                                                                                                                         appl_67 `pseq` applyWrapper appl_51 [appl_67]
-                                                                                                                                                                                                                                                                                                                                                                                                                   Atom (B (False)) -> do do kl_fail
-                                                                                                                                                                                                                                                                                                                                                                                                                   _ -> throwError "if: expected boolean")))
-                                                                                                                                                                                                                                                                                                                              !appl_68 <- kl_V2312 `pseq` kl_shen_LBdigitsRB kl_V2312
-                                                                                                                                                                                                                                                                                                                              !appl_69 <- appl_68 `pseq` applyWrapper appl_47 [appl_68]
-                                                                                                                                                                                                                                                                                                                              appl_69 `pseq` applyWrapper appl_9 [appl_69]
-                                                                                                                                                                                                                                                                                                        Atom (B (False)) -> do do return kl_YaccParse
-                                                                                                                                                                                                                                                                                                        _ -> throwError "if: expected boolean")))
-                                                                                                                                                                                                                                let !appl_70 = ApplC (Func "lambda" (Context (\(!kl_Parse_shen_LBpredigitsRB) -> do !appl_71 <- kl_fail
-                                                                                                                                                                                                                                                                                                                    !appl_72 <- appl_71 `pseq` (kl_Parse_shen_LBpredigitsRB `pseq` eq appl_71 kl_Parse_shen_LBpredigitsRB)
-                                                                                                                                                                                                                                                                                                                    !kl_if_73 <- appl_72 `pseq` kl_not appl_72
-                                                                                                                                                                                                                                                                                                                    case kl_if_73 of
-                                                                                                                                                                                                                                                                                                                        Atom (B (True)) -> do let !appl_74 = ApplC (Func "lambda" (Context (\(!kl_Parse_shen_LBstopRB) -> do !appl_75 <- kl_fail
-                                                                                                                                                                                                                                                                                                                                                                                                                             !appl_76 <- appl_75 `pseq` (kl_Parse_shen_LBstopRB `pseq` eq appl_75 kl_Parse_shen_LBstopRB)
-                                                                                                                                                                                                                                                                                                                                                                                                                             !kl_if_77 <- appl_76 `pseq` kl_not appl_76
-                                                                                                                                                                                                                                                                                                                                                                                                                             case kl_if_77 of
-                                                                                                                                                                                                                                                                                                                                                                                                                                 Atom (B (True)) -> do let !appl_78 = ApplC (Func "lambda" (Context (\(!kl_Parse_shen_LBpostdigitsRB) -> do !appl_79 <- kl_fail
-                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                            !appl_80 <- appl_79 `pseq` (kl_Parse_shen_LBpostdigitsRB `pseq` eq appl_79 kl_Parse_shen_LBpostdigitsRB)
-                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                            !kl_if_81 <- appl_80 `pseq` kl_not appl_80
-                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                            case kl_if_81 of
-                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                Atom (B (True)) -> do let !appl_82 = ApplC (Func "lambda" (Context (\(!kl_Parse_shen_LBERB) -> do !appl_83 <- kl_fail
-                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                  !appl_84 <- appl_83 `pseq` (kl_Parse_shen_LBERB `pseq` eq appl_83 kl_Parse_shen_LBERB)
-                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                  !kl_if_85 <- appl_84 `pseq` kl_not appl_84
-                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                  case kl_if_85 of
-                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                      Atom (B (True)) -> do let !appl_86 = ApplC (Func "lambda" (Context (\(!kl_Parse_shen_LBlog10RB) -> do !appl_87 <- kl_fail
-                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                            !appl_88 <- appl_87 `pseq` (kl_Parse_shen_LBlog10RB `pseq` eq appl_87 kl_Parse_shen_LBlog10RB)
-                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                            !kl_if_89 <- appl_88 `pseq` kl_not appl_88
-                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                            case kl_if_89 of
-                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                Atom (B (True)) -> do !appl_90 <- kl_Parse_shen_LBlog10RB `pseq` hd kl_Parse_shen_LBlog10RB
-                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                      !appl_91 <- kl_Parse_shen_LBlog10RB `pseq` kl_shen_hdtl kl_Parse_shen_LBlog10RB
-                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                      !appl_92 <- appl_91 `pseq` kl_shen_expt (Types.Atom (Types.N (Types.KI 10))) appl_91
-                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                      !appl_93 <- kl_Parse_shen_LBpredigitsRB `pseq` kl_shen_hdtl kl_Parse_shen_LBpredigitsRB
-                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                      !appl_94 <- appl_93 `pseq` kl_reverse appl_93
-                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                      !appl_95 <- appl_94 `pseq` kl_shen_pre appl_94 (Types.Atom (Types.N (Types.KI 0)))
-                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                      !appl_96 <- kl_Parse_shen_LBpostdigitsRB `pseq` kl_shen_hdtl kl_Parse_shen_LBpostdigitsRB
-                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                      !appl_97 <- appl_96 `pseq` kl_shen_post appl_96 (Types.Atom (Types.N (Types.KI 1)))
-                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                      !appl_98 <- appl_95 `pseq` (appl_97 `pseq` add appl_95 appl_97)
-                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                      !appl_99 <- appl_92 `pseq` (appl_98 `pseq` multiply appl_92 appl_98)
-                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                      appl_90 `pseq` (appl_99 `pseq` kl_shen_pair appl_90 appl_99)
-                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                Atom (B (False)) -> do do kl_fail
-                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                _ -> throwError "if: expected boolean")))
-                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                            !appl_100 <- kl_Parse_shen_LBERB `pseq` kl_shen_LBlog10RB kl_Parse_shen_LBERB
-                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                            appl_100 `pseq` applyWrapper appl_86 [appl_100]
-                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                      Atom (B (False)) -> do do kl_fail
-                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                      _ -> throwError "if: expected boolean")))
-                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                      !appl_101 <- kl_Parse_shen_LBpostdigitsRB `pseq` kl_shen_LBERB kl_Parse_shen_LBpostdigitsRB
-                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                      appl_101 `pseq` applyWrapper appl_82 [appl_101]
-                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                Atom (B (False)) -> do do kl_fail
-                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                _ -> throwError "if: expected boolean")))
-                                                                                                                                                                                                                                                                                                                                                                                                                                                       !appl_102 <- kl_Parse_shen_LBstopRB `pseq` kl_shen_LBpostdigitsRB kl_Parse_shen_LBstopRB
-                                                                                                                                                                                                                                                                                                                                                                                                                                                       appl_102 `pseq` applyWrapper appl_78 [appl_102]
-                                                                                                                                                                                                                                                                                                                                                                                                                                 Atom (B (False)) -> do do kl_fail
-                                                                                                                                                                                                                                                                                                                                                                                                                                 _ -> throwError "if: expected boolean")))
-                                                                                                                                                                                                                                                                                                                                              !appl_103 <- kl_Parse_shen_LBpredigitsRB `pseq` kl_shen_LBstopRB kl_Parse_shen_LBpredigitsRB
-                                                                                                                                                                                                                                                                                                                                              appl_103 `pseq` applyWrapper appl_74 [appl_103]
-                                                                                                                                                                                                                                                                                                                        Atom (B (False)) -> do do kl_fail
-                                                                                                                                                                                                                                                                                                                        _ -> throwError "if: expected boolean")))
-                                                                                                                                                                                                                                !appl_104 <- kl_V2312 `pseq` kl_shen_LBpredigitsRB kl_V2312
-                                                                                                                                                                                                                                !appl_105 <- appl_104 `pseq` applyWrapper appl_70 [appl_104]
-                                                                                                                                                                                                                                appl_105 `pseq` applyWrapper appl_6 [appl_105]
-                                                                                                                                                                                                          Atom (B (False)) -> do do return kl_YaccParse
-                                                                                                                                                                                                          _ -> throwError "if: expected boolean")))
-                                                                                                                                  let !appl_106 = ApplC (Func "lambda" (Context (\(!kl_Parse_shen_LBplusRB) -> do !appl_107 <- kl_fail
-                                                                                                                                                                                                                  !appl_108 <- appl_107 `pseq` (kl_Parse_shen_LBplusRB `pseq` eq appl_107 kl_Parse_shen_LBplusRB)
-                                                                                                                                                                                                                  !kl_if_109 <- appl_108 `pseq` kl_not appl_108
-                                                                                                                                                                                                                  case kl_if_109 of
-                                                                                                                                                                                                                      Atom (B (True)) -> do let !appl_110 = ApplC (Func "lambda" (Context (\(!kl_Parse_shen_LBnumberRB) -> do !appl_111 <- kl_fail
-                                                                                                                                                                                                                                                                                                                              !appl_112 <- appl_111 `pseq` (kl_Parse_shen_LBnumberRB `pseq` eq appl_111 kl_Parse_shen_LBnumberRB)
-                                                                                                                                                                                                                                                                                                                              !kl_if_113 <- appl_112 `pseq` kl_not appl_112
-                                                                                                                                                                                                                                                                                                                              case kl_if_113 of
-                                                                                                                                                                                                                                                                                                                                  Atom (B (True)) -> do !appl_114 <- kl_Parse_shen_LBnumberRB `pseq` hd kl_Parse_shen_LBnumberRB
-                                                                                                                                                                                                                                                                                                                                                        !appl_115 <- kl_Parse_shen_LBnumberRB `pseq` kl_shen_hdtl kl_Parse_shen_LBnumberRB
-                                                                                                                                                                                                                                                                                                                                                        appl_114 `pseq` (appl_115 `pseq` kl_shen_pair appl_114 appl_115)
-                                                                                                                                                                                                                                                                                                                                  Atom (B (False)) -> do do kl_fail
-                                                                                                                                                                                                                                                                                                                                  _ -> throwError "if: expected boolean")))
-                                                                                                                                                                                                                                            !appl_116 <- kl_Parse_shen_LBplusRB `pseq` kl_shen_LBnumberRB kl_Parse_shen_LBplusRB
-                                                                                                                                                                                                                                            appl_116 `pseq` applyWrapper appl_110 [appl_116]
-                                                                                                                                                                                                                      Atom (B (False)) -> do do kl_fail
-                                                                                                                                                                                                                      _ -> throwError "if: expected boolean")))
-                                                                                                                                  !appl_117 <- kl_V2312 `pseq` kl_shen_LBplusRB kl_V2312
-                                                                                                                                  !appl_118 <- appl_117 `pseq` applyWrapper appl_106 [appl_117]
-                                                                                                                                  appl_118 `pseq` applyWrapper appl_3 [appl_118]
-                                                                                                            Atom (B (False)) -> do do return kl_YaccParse
-                                                                                                            _ -> throwError "if: expected boolean")))
-                                    let !appl_119 = ApplC (Func "lambda" (Context (\(!kl_Parse_shen_LBminusRB) -> do !appl_120 <- kl_fail
-                                                                                                                     !appl_121 <- appl_120 `pseq` (kl_Parse_shen_LBminusRB `pseq` eq appl_120 kl_Parse_shen_LBminusRB)
-                                                                                                                     !kl_if_122 <- appl_121 `pseq` kl_not appl_121
-                                                                                                                     case kl_if_122 of
-                                                                                                                         Atom (B (True)) -> do let !appl_123 = ApplC (Func "lambda" (Context (\(!kl_Parse_shen_LBnumberRB) -> do !appl_124 <- kl_fail
-                                                                                                                                                                                                                                 !appl_125 <- appl_124 `pseq` (kl_Parse_shen_LBnumberRB `pseq` eq appl_124 kl_Parse_shen_LBnumberRB)
-                                                                                                                                                                                                                                 !kl_if_126 <- appl_125 `pseq` kl_not appl_125
-                                                                                                                                                                                                                                 case kl_if_126 of
-                                                                                                                                                                                                                                     Atom (B (True)) -> do !appl_127 <- kl_Parse_shen_LBnumberRB `pseq` hd kl_Parse_shen_LBnumberRB
-                                                                                                                                                                                                                                                           !appl_128 <- kl_Parse_shen_LBnumberRB `pseq` kl_shen_hdtl kl_Parse_shen_LBnumberRB
-                                                                                                                                                                                                                                                           !appl_129 <- appl_128 `pseq` Primitives.subtract (Types.Atom (Types.N (Types.KI 0))) appl_128
-                                                                                                                                                                                                                                                           appl_127 `pseq` (appl_129 `pseq` kl_shen_pair appl_127 appl_129)
-                                                                                                                                                                                                                                     Atom (B (False)) -> do do kl_fail
-                                                                                                                                                                                                                                     _ -> throwError "if: expected boolean")))
-                                                                                                                                               !appl_130 <- kl_Parse_shen_LBminusRB `pseq` kl_shen_LBnumberRB kl_Parse_shen_LBminusRB
-                                                                                                                                               appl_130 `pseq` applyWrapper appl_123 [appl_130]
-                                                                                                                         Atom (B (False)) -> do do kl_fail
-                                                                                                                         _ -> throwError "if: expected boolean")))
-                                    !appl_131 <- kl_V2312 `pseq` kl_shen_LBminusRB kl_V2312
-                                    !appl_132 <- appl_131 `pseq` applyWrapper appl_119 [appl_131]
-                                    appl_132 `pseq` applyWrapper appl_0 [appl_132]
-
-kl_shen_LBERB :: Types.KLValue ->
-                 Types.KLContext Types.Env Types.KLValue
-kl_shen_LBERB (!kl_V2314) = do !appl_0 <- kl_V2314 `pseq` hd kl_V2314
-                               !kl_if_1 <- appl_0 `pseq` consP appl_0
-                               !kl_if_2 <- case kl_if_1 of
-                                               Atom (B (True)) -> do !appl_3 <- kl_V2314 `pseq` hd kl_V2314
-                                                                     !appl_4 <- appl_3 `pseq` hd appl_3
-                                                                     !kl_if_5 <- appl_4 `pseq` eq (Types.Atom (Types.N (Types.KI 101))) appl_4
-                                                                     case kl_if_5 of
-                                                                         Atom (B (True)) -> do return (Atom (B True))
-                                                                         Atom (B (False)) -> do do return (Atom (B False))
-                                                                         _ -> throwError "if: expected boolean"
-                                               Atom (B (False)) -> do do return (Atom (B False))
-                                               _ -> throwError "if: expected boolean"
-                               case kl_if_2 of
-                                   Atom (B (True)) -> do !appl_6 <- kl_V2314 `pseq` hd kl_V2314
-                                                         !appl_7 <- appl_6 `pseq` tl appl_6
-                                                         !appl_8 <- kl_V2314 `pseq` kl_shen_hdtl kl_V2314
-                                                         !appl_9 <- appl_7 `pseq` (appl_8 `pseq` kl_shen_pair appl_7 appl_8)
-                                                         !appl_10 <- appl_9 `pseq` hd appl_9
-                                                         appl_10 `pseq` kl_shen_pair appl_10 (Types.Atom (Types.UnboundSym "shen.skip"))
-                                   Atom (B (False)) -> do do kl_fail
-                                   _ -> throwError "if: expected boolean"
-
-kl_shen_LBlog10RB :: Types.KLValue ->
-                     Types.KLContext Types.Env Types.KLValue
-kl_shen_LBlog10RB (!kl_V2316) = do let !appl_0 = ApplC (Func "lambda" (Context (\(!kl_YaccParse) -> do !appl_1 <- kl_fail
-                                                                                                       !kl_if_2 <- kl_YaccParse `pseq` (appl_1 `pseq` eq kl_YaccParse appl_1)
-                                                                                                       case kl_if_2 of
-                                                                                                           Atom (B (True)) -> do let !appl_3 = ApplC (Func "lambda" (Context (\(!kl_Parse_shen_LBdigitsRB) -> do !appl_4 <- kl_fail
-                                                                                                                                                                                                                 !appl_5 <- appl_4 `pseq` (kl_Parse_shen_LBdigitsRB `pseq` eq appl_4 kl_Parse_shen_LBdigitsRB)
-                                                                                                                                                                                                                 !kl_if_6 <- appl_5 `pseq` kl_not appl_5
-                                                                                                                                                                                                                 case kl_if_6 of
-                                                                                                                                                                                                                     Atom (B (True)) -> do !appl_7 <- kl_Parse_shen_LBdigitsRB `pseq` hd kl_Parse_shen_LBdigitsRB
-                                                                                                                                                                                                                                           !appl_8 <- kl_Parse_shen_LBdigitsRB `pseq` kl_shen_hdtl kl_Parse_shen_LBdigitsRB
-                                                                                                                                                                                                                                           !appl_9 <- appl_8 `pseq` kl_reverse appl_8
-                                                                                                                                                                                                                                           !appl_10 <- appl_9 `pseq` kl_shen_pre appl_9 (Types.Atom (Types.N (Types.KI 0)))
-                                                                                                                                                                                                                                           appl_7 `pseq` (appl_10 `pseq` kl_shen_pair appl_7 appl_10)
-                                                                                                                                                                                                                     Atom (B (False)) -> do do kl_fail
-                                                                                                                                                                                                                     _ -> throwError "if: expected boolean")))
-                                                                                                                                 !appl_11 <- kl_V2316 `pseq` kl_shen_LBdigitsRB kl_V2316
-                                                                                                                                 appl_11 `pseq` applyWrapper appl_3 [appl_11]
-                                                                                                           Atom (B (False)) -> do do return kl_YaccParse
-                                                                                                           _ -> throwError "if: expected boolean")))
-                                   let !appl_12 = ApplC (Func "lambda" (Context (\(!kl_Parse_shen_LBminusRB) -> do !appl_13 <- kl_fail
-                                                                                                                   !appl_14 <- appl_13 `pseq` (kl_Parse_shen_LBminusRB `pseq` eq appl_13 kl_Parse_shen_LBminusRB)
-                                                                                                                   !kl_if_15 <- appl_14 `pseq` kl_not appl_14
-                                                                                                                   case kl_if_15 of
-                                                                                                                       Atom (B (True)) -> do let !appl_16 = ApplC (Func "lambda" (Context (\(!kl_Parse_shen_LBdigitsRB) -> do !appl_17 <- kl_fail
-                                                                                                                                                                                                                              !appl_18 <- appl_17 `pseq` (kl_Parse_shen_LBdigitsRB `pseq` eq appl_17 kl_Parse_shen_LBdigitsRB)
-                                                                                                                                                                                                                              !kl_if_19 <- appl_18 `pseq` kl_not appl_18
-                                                                                                                                                                                                                              case kl_if_19 of
-                                                                                                                                                                                                                                  Atom (B (True)) -> do !appl_20 <- kl_Parse_shen_LBdigitsRB `pseq` hd kl_Parse_shen_LBdigitsRB
-                                                                                                                                                                                                                                                        !appl_21 <- kl_Parse_shen_LBdigitsRB `pseq` kl_shen_hdtl kl_Parse_shen_LBdigitsRB
-                                                                                                                                                                                                                                                        !appl_22 <- appl_21 `pseq` kl_reverse appl_21
-                                                                                                                                                                                                                                                        !appl_23 <- appl_22 `pseq` kl_shen_pre appl_22 (Types.Atom (Types.N (Types.KI 0)))
-                                                                                                                                                                                                                                                        !appl_24 <- appl_23 `pseq` Primitives.subtract (Types.Atom (Types.N (Types.KI 0))) appl_23
-                                                                                                                                                                                                                                                        appl_20 `pseq` (appl_24 `pseq` kl_shen_pair appl_20 appl_24)
-                                                                                                                                                                                                                                  Atom (B (False)) -> do do kl_fail
-                                                                                                                                                                                                                                  _ -> throwError "if: expected boolean")))
-                                                                                                                                             !appl_25 <- kl_Parse_shen_LBminusRB `pseq` kl_shen_LBdigitsRB kl_Parse_shen_LBminusRB
-                                                                                                                                             appl_25 `pseq` applyWrapper appl_16 [appl_25]
-                                                                                                                       Atom (B (False)) -> do do kl_fail
-                                                                                                                       _ -> throwError "if: expected boolean")))
-                                   !appl_26 <- kl_V2316 `pseq` kl_shen_LBminusRB kl_V2316
-                                   !appl_27 <- appl_26 `pseq` applyWrapper appl_12 [appl_26]
-                                   appl_27 `pseq` applyWrapper appl_0 [appl_27]
-
-kl_shen_LBplusRB :: Types.KLValue ->
-                    Types.KLContext Types.Env Types.KLValue
-kl_shen_LBplusRB (!kl_V2318) = do !appl_0 <- kl_V2318 `pseq` hd kl_V2318
-                                  !kl_if_1 <- appl_0 `pseq` consP appl_0
-                                  case kl_if_1 of
-                                      Atom (B (True)) -> do let !appl_2 = ApplC (Func "lambda" (Context (\(!kl_Parse_Byte) -> do let pat_cond_3 = do !appl_4 <- kl_V2318 `pseq` hd kl_V2318
-                                                                                                                                                     !appl_5 <- appl_4 `pseq` tl appl_4
-                                                                                                                                                     !appl_6 <- kl_V2318 `pseq` kl_shen_hdtl kl_V2318
-                                                                                                                                                     !appl_7 <- appl_5 `pseq` (appl_6 `pseq` kl_shen_pair appl_5 appl_6)
-                                                                                                                                                     !appl_8 <- appl_7 `pseq` hd appl_7
-                                                                                                                                                     appl_8 `pseq` (kl_Parse_Byte `pseq` kl_shen_pair appl_8 kl_Parse_Byte)
-                                                                                                                                     pat_cond_9 = do do kl_fail
-                                                                                                                                  in case kl_Parse_Byte of
-                                                                                                                                         kl_Parse_Byte@(Atom (N (KI 43))) -> pat_cond_3
-                                                                                                                                         _ -> pat_cond_9)))
-                                                            !appl_10 <- kl_V2318 `pseq` hd kl_V2318
-                                                            !appl_11 <- appl_10 `pseq` hd appl_10
-                                                            appl_11 `pseq` applyWrapper appl_2 [appl_11]
-                                      Atom (B (False)) -> do do kl_fail
-                                      _ -> throwError "if: expected boolean"
-
-kl_shen_LBstopRB :: Types.KLValue ->
-                    Types.KLContext Types.Env Types.KLValue
-kl_shen_LBstopRB (!kl_V2320) = do !appl_0 <- kl_V2320 `pseq` hd kl_V2320
-                                  !kl_if_1 <- appl_0 `pseq` consP appl_0
-                                  case kl_if_1 of
-                                      Atom (B (True)) -> do let !appl_2 = ApplC (Func "lambda" (Context (\(!kl_Parse_Byte) -> do let pat_cond_3 = do !appl_4 <- kl_V2320 `pseq` hd kl_V2320
-                                                                                                                                                     !appl_5 <- appl_4 `pseq` tl appl_4
-                                                                                                                                                     !appl_6 <- kl_V2320 `pseq` kl_shen_hdtl kl_V2320
-                                                                                                                                                     !appl_7 <- appl_5 `pseq` (appl_6 `pseq` kl_shen_pair appl_5 appl_6)
-                                                                                                                                                     !appl_8 <- appl_7 `pseq` hd appl_7
-                                                                                                                                                     appl_8 `pseq` (kl_Parse_Byte `pseq` kl_shen_pair appl_8 kl_Parse_Byte)
-                                                                                                                                     pat_cond_9 = do do kl_fail
-                                                                                                                                  in case kl_Parse_Byte of
-                                                                                                                                         kl_Parse_Byte@(Atom (N (KI 46))) -> pat_cond_3
-                                                                                                                                         _ -> pat_cond_9)))
-                                                            !appl_10 <- kl_V2320 `pseq` hd kl_V2320
-                                                            !appl_11 <- appl_10 `pseq` hd appl_10
-                                                            appl_11 `pseq` applyWrapper appl_2 [appl_11]
-                                      Atom (B (False)) -> do do kl_fail
-                                      _ -> throwError "if: expected boolean"
-
-kl_shen_LBpredigitsRB :: Types.KLValue ->
-                         Types.KLContext Types.Env Types.KLValue
-kl_shen_LBpredigitsRB (!kl_V2322) = do let !appl_0 = ApplC (Func "lambda" (Context (\(!kl_YaccParse) -> do !appl_1 <- kl_fail
-                                                                                                           !kl_if_2 <- kl_YaccParse `pseq` (appl_1 `pseq` eq kl_YaccParse appl_1)
-                                                                                                           case kl_if_2 of
-                                                                                                               Atom (B (True)) -> do let !appl_3 = ApplC (Func "lambda" (Context (\(!kl_Parse_LBeRB) -> do !appl_4 <- kl_fail
-                                                                                                                                                                                                           !appl_5 <- appl_4 `pseq` (kl_Parse_LBeRB `pseq` eq appl_4 kl_Parse_LBeRB)
-                                                                                                                                                                                                           !kl_if_6 <- appl_5 `pseq` kl_not appl_5
-                                                                                                                                                                                                           case kl_if_6 of
-                                                                                                                                                                                                               Atom (B (True)) -> do !appl_7 <- kl_Parse_LBeRB `pseq` hd kl_Parse_LBeRB
-                                                                                                                                                                                                                                     appl_7 `pseq` kl_shen_pair appl_7 (Types.Atom Types.Nil)
-                                                                                                                                                                                                               Atom (B (False)) -> do do kl_fail
-                                                                                                                                                                                                               _ -> throwError "if: expected boolean")))
-                                                                                                                                     !appl_8 <- kl_V2322 `pseq` kl_LBeRB kl_V2322
-                                                                                                                                     appl_8 `pseq` applyWrapper appl_3 [appl_8]
-                                                                                                               Atom (B (False)) -> do do return kl_YaccParse
-                                                                                                               _ -> throwError "if: expected boolean")))
-                                       let !appl_9 = ApplC (Func "lambda" (Context (\(!kl_Parse_shen_LBdigitsRB) -> do !appl_10 <- kl_fail
-                                                                                                                       !appl_11 <- appl_10 `pseq` (kl_Parse_shen_LBdigitsRB `pseq` eq appl_10 kl_Parse_shen_LBdigitsRB)
-                                                                                                                       !kl_if_12 <- appl_11 `pseq` kl_not appl_11
-                                                                                                                       case kl_if_12 of
-                                                                                                                           Atom (B (True)) -> do !appl_13 <- kl_Parse_shen_LBdigitsRB `pseq` hd kl_Parse_shen_LBdigitsRB
-                                                                                                                                                 !appl_14 <- kl_Parse_shen_LBdigitsRB `pseq` kl_shen_hdtl kl_Parse_shen_LBdigitsRB
-                                                                                                                                                 appl_13 `pseq` (appl_14 `pseq` kl_shen_pair appl_13 appl_14)
-                                                                                                                           Atom (B (False)) -> do do kl_fail
-                                                                                                                           _ -> throwError "if: expected boolean")))
-                                       !appl_15 <- kl_V2322 `pseq` kl_shen_LBdigitsRB kl_V2322
-                                       !appl_16 <- appl_15 `pseq` applyWrapper appl_9 [appl_15]
-                                       appl_16 `pseq` applyWrapper appl_0 [appl_16]
-
-kl_shen_LBpostdigitsRB :: Types.KLValue ->
-                          Types.KLContext Types.Env Types.KLValue
-kl_shen_LBpostdigitsRB (!kl_V2324) = do let !appl_0 = ApplC (Func "lambda" (Context (\(!kl_Parse_shen_LBdigitsRB) -> do !appl_1 <- kl_fail
-                                                                                                                        !appl_2 <- appl_1 `pseq` (kl_Parse_shen_LBdigitsRB `pseq` eq appl_1 kl_Parse_shen_LBdigitsRB)
-                                                                                                                        !kl_if_3 <- appl_2 `pseq` kl_not appl_2
-                                                                                                                        case kl_if_3 of
-                                                                                                                            Atom (B (True)) -> do !appl_4 <- kl_Parse_shen_LBdigitsRB `pseq` hd kl_Parse_shen_LBdigitsRB
-                                                                                                                                                  !appl_5 <- kl_Parse_shen_LBdigitsRB `pseq` kl_shen_hdtl kl_Parse_shen_LBdigitsRB
-                                                                                                                                                  appl_4 `pseq` (appl_5 `pseq` kl_shen_pair appl_4 appl_5)
-                                                                                                                            Atom (B (False)) -> do do kl_fail
-                                                                                                                            _ -> throwError "if: expected boolean")))
-                                        !appl_6 <- kl_V2324 `pseq` kl_shen_LBdigitsRB kl_V2324
-                                        appl_6 `pseq` applyWrapper appl_0 [appl_6]
-
-kl_shen_LBdigitsRB :: Types.KLValue ->
-                      Types.KLContext Types.Env Types.KLValue
-kl_shen_LBdigitsRB (!kl_V2326) = do let !appl_0 = ApplC (Func "lambda" (Context (\(!kl_YaccParse) -> do !appl_1 <- kl_fail
-                                                                                                        !kl_if_2 <- kl_YaccParse `pseq` (appl_1 `pseq` eq kl_YaccParse appl_1)
-                                                                                                        case kl_if_2 of
-                                                                                                            Atom (B (True)) -> do let !appl_3 = ApplC (Func "lambda" (Context (\(!kl_Parse_shen_LBdigitRB) -> do !appl_4 <- kl_fail
-                                                                                                                                                                                                                 !appl_5 <- appl_4 `pseq` (kl_Parse_shen_LBdigitRB `pseq` eq appl_4 kl_Parse_shen_LBdigitRB)
-                                                                                                                                                                                                                 !kl_if_6 <- appl_5 `pseq` kl_not appl_5
-                                                                                                                                                                                                                 case kl_if_6 of
-                                                                                                                                                                                                                     Atom (B (True)) -> do !appl_7 <- kl_Parse_shen_LBdigitRB `pseq` hd kl_Parse_shen_LBdigitRB
-                                                                                                                                                                                                                                           !appl_8 <- kl_Parse_shen_LBdigitRB `pseq` kl_shen_hdtl kl_Parse_shen_LBdigitRB
-                                                                                                                                                                                                                                           !appl_9 <- appl_8 `pseq` klCons appl_8 (Types.Atom Types.Nil)
-                                                                                                                                                                                                                                           appl_7 `pseq` (appl_9 `pseq` kl_shen_pair appl_7 appl_9)
-                                                                                                                                                                                                                     Atom (B (False)) -> do do kl_fail
-                                                                                                                                                                                                                     _ -> throwError "if: expected boolean")))
-                                                                                                                                  !appl_10 <- kl_V2326 `pseq` kl_shen_LBdigitRB kl_V2326
-                                                                                                                                  appl_10 `pseq` applyWrapper appl_3 [appl_10]
-                                                                                                            Atom (B (False)) -> do do return kl_YaccParse
-                                                                                                            _ -> throwError "if: expected boolean")))
-                                    let !appl_11 = ApplC (Func "lambda" (Context (\(!kl_Parse_shen_LBdigitRB) -> do !appl_12 <- kl_fail
-                                                                                                                    !appl_13 <- appl_12 `pseq` (kl_Parse_shen_LBdigitRB `pseq` eq appl_12 kl_Parse_shen_LBdigitRB)
-                                                                                                                    !kl_if_14 <- appl_13 `pseq` kl_not appl_13
-                                                                                                                    case kl_if_14 of
-                                                                                                                        Atom (B (True)) -> do let !appl_15 = ApplC (Func "lambda" (Context (\(!kl_Parse_shen_LBdigitsRB) -> do !appl_16 <- kl_fail
-                                                                                                                                                                                                                               !appl_17 <- appl_16 `pseq` (kl_Parse_shen_LBdigitsRB `pseq` eq appl_16 kl_Parse_shen_LBdigitsRB)
-                                                                                                                                                                                                                               !kl_if_18 <- appl_17 `pseq` kl_not appl_17
-                                                                                                                                                                                                                               case kl_if_18 of
-                                                                                                                                                                                                                                   Atom (B (True)) -> do !appl_19 <- kl_Parse_shen_LBdigitsRB `pseq` hd kl_Parse_shen_LBdigitsRB
-                                                                                                                                                                                                                                                         !appl_20 <- kl_Parse_shen_LBdigitRB `pseq` kl_shen_hdtl kl_Parse_shen_LBdigitRB
-                                                                                                                                                                                                                                                         !appl_21 <- kl_Parse_shen_LBdigitsRB `pseq` kl_shen_hdtl kl_Parse_shen_LBdigitsRB
-                                                                                                                                                                                                                                                         !appl_22 <- appl_20 `pseq` (appl_21 `pseq` klCons appl_20 appl_21)
-                                                                                                                                                                                                                                                         appl_19 `pseq` (appl_22 `pseq` kl_shen_pair appl_19 appl_22)
-                                                                                                                                                                                                                                   Atom (B (False)) -> do do kl_fail
-                                                                                                                                                                                                                                   _ -> throwError "if: expected boolean")))
-                                                                                                                                              !appl_23 <- kl_Parse_shen_LBdigitRB `pseq` kl_shen_LBdigitsRB kl_Parse_shen_LBdigitRB
-                                                                                                                                              appl_23 `pseq` applyWrapper appl_15 [appl_23]
-                                                                                                                        Atom (B (False)) -> do do kl_fail
-                                                                                                                        _ -> throwError "if: expected boolean")))
-                                    !appl_24 <- kl_V2326 `pseq` kl_shen_LBdigitRB kl_V2326
-                                    !appl_25 <- appl_24 `pseq` applyWrapper appl_11 [appl_24]
-                                    appl_25 `pseq` applyWrapper appl_0 [appl_25]
-
-kl_shen_LBdigitRB :: Types.KLValue ->
-                     Types.KLContext Types.Env Types.KLValue
-kl_shen_LBdigitRB (!kl_V2328) = do !appl_0 <- kl_V2328 `pseq` hd kl_V2328
-                                   !kl_if_1 <- appl_0 `pseq` consP appl_0
-                                   case kl_if_1 of
-                                       Atom (B (True)) -> do let !appl_2 = ApplC (Func "lambda" (Context (\(!kl_Parse_X) -> do !kl_if_3 <- kl_Parse_X `pseq` kl_shen_numbyteP kl_Parse_X
-                                                                                                                               case kl_if_3 of
-                                                                                                                                   Atom (B (True)) -> do !appl_4 <- kl_V2328 `pseq` hd kl_V2328
-                                                                                                                                                         !appl_5 <- appl_4 `pseq` tl appl_4
-                                                                                                                                                         !appl_6 <- kl_V2328 `pseq` kl_shen_hdtl kl_V2328
-                                                                                                                                                         !appl_7 <- appl_5 `pseq` (appl_6 `pseq` kl_shen_pair appl_5 appl_6)
-                                                                                                                                                         !appl_8 <- appl_7 `pseq` hd appl_7
-                                                                                                                                                         !appl_9 <- kl_Parse_X `pseq` kl_shen_byte_RBdigit kl_Parse_X
-                                                                                                                                                         appl_8 `pseq` (appl_9 `pseq` kl_shen_pair appl_8 appl_9)
-                                                                                                                                   Atom (B (False)) -> do do kl_fail
-                                                                                                                                   _ -> throwError "if: expected boolean")))
-                                                             !appl_10 <- kl_V2328 `pseq` hd kl_V2328
-                                                             !appl_11 <- appl_10 `pseq` hd appl_10
-                                                             appl_11 `pseq` applyWrapper appl_2 [appl_11]
-                                       Atom (B (False)) -> do do kl_fail
-                                       _ -> throwError "if: expected boolean"
-
-kl_shen_byte_RBdigit :: Types.KLValue ->
-                        Types.KLContext Types.Env Types.KLValue
-kl_shen_byte_RBdigit (!kl_V2330) = do let pat_cond_0 = do return (Types.Atom (Types.N (Types.KI 0)))
-                                          pat_cond_1 = do return (Types.Atom (Types.N (Types.KI 1)))
-                                          pat_cond_2 = do return (Types.Atom (Types.N (Types.KI 2)))
-                                          pat_cond_3 = do return (Types.Atom (Types.N (Types.KI 3)))
-                                          pat_cond_4 = do return (Types.Atom (Types.N (Types.KI 4)))
-                                          pat_cond_5 = do return (Types.Atom (Types.N (Types.KI 5)))
-                                          pat_cond_6 = do return (Types.Atom (Types.N (Types.KI 6)))
-                                          pat_cond_7 = do return (Types.Atom (Types.N (Types.KI 7)))
-                                          pat_cond_8 = do return (Types.Atom (Types.N (Types.KI 8)))
-                                          pat_cond_9 = do return (Types.Atom (Types.N (Types.KI 9)))
-                                          pat_cond_10 = do do let !aw_11 = Types.Atom (Types.UnboundSym "shen.f_error")
-                                                              applyWrapper aw_11 [ApplC (wrapNamed "shen.byte->digit" kl_shen_byte_RBdigit)]
-                                       in case kl_V2330 of
-                                              kl_V2330@(Atom (N (KI 48))) -> pat_cond_0
-                                              kl_V2330@(Atom (N (KI 49))) -> pat_cond_1
-                                              kl_V2330@(Atom (N (KI 50))) -> pat_cond_2
-                                              kl_V2330@(Atom (N (KI 51))) -> pat_cond_3
-                                              kl_V2330@(Atom (N (KI 52))) -> pat_cond_4
-                                              kl_V2330@(Atom (N (KI 53))) -> pat_cond_5
-                                              kl_V2330@(Atom (N (KI 54))) -> pat_cond_6
-                                              kl_V2330@(Atom (N (KI 55))) -> pat_cond_7
-                                              kl_V2330@(Atom (N (KI 56))) -> pat_cond_8
-                                              kl_V2330@(Atom (N (KI 57))) -> pat_cond_9
-                                              _ -> pat_cond_10
-
-kl_shen_pre :: Types.KLValue ->
-               Types.KLValue -> Types.KLContext Types.Env Types.KLValue
-kl_shen_pre (!kl_V2335) (!kl_V2336) = do let pat_cond_0 = do return (Types.Atom (Types.N (Types.KI 0)))
-                                             pat_cond_1 kl_V2335 kl_V2335h kl_V2335t = do !appl_2 <- kl_V2336 `pseq` kl_shen_expt (Types.Atom (Types.N (Types.KI 10))) kl_V2336
-                                                                                          !appl_3 <- appl_2 `pseq` (kl_V2335h `pseq` multiply appl_2 kl_V2335h)
-                                                                                          !appl_4 <- kl_V2336 `pseq` add kl_V2336 (Types.Atom (Types.N (Types.KI 1)))
-                                                                                          !appl_5 <- kl_V2335t `pseq` (appl_4 `pseq` kl_shen_pre kl_V2335t appl_4)
-                                                                                          appl_3 `pseq` (appl_5 `pseq` add appl_3 appl_5)
-                                             pat_cond_6 = do do let !aw_7 = Types.Atom (Types.UnboundSym "shen.f_error")
-                                                                applyWrapper aw_7 [ApplC (wrapNamed "shen.pre" kl_shen_pre)]
-                                          in case kl_V2335 of
-                                                 kl_V2335@(Atom (Nil)) -> pat_cond_0
-                                                 !(kl_V2335@(Cons (!kl_V2335h)
-                                                                  (!kl_V2335t))) -> pat_cond_1 kl_V2335 kl_V2335h kl_V2335t
-                                                 _ -> pat_cond_6
-
-kl_shen_post :: Types.KLValue ->
-                Types.KLValue -> Types.KLContext Types.Env Types.KLValue
-kl_shen_post (!kl_V2341) (!kl_V2342) = do let pat_cond_0 = do return (Types.Atom (Types.N (Types.KI 0)))
-                                              pat_cond_1 kl_V2341 kl_V2341h kl_V2341t = do !appl_2 <- kl_V2342 `pseq` Primitives.subtract (Types.Atom (Types.N (Types.KI 0))) kl_V2342
-                                                                                           !appl_3 <- appl_2 `pseq` kl_shen_expt (Types.Atom (Types.N (Types.KI 10))) appl_2
-                                                                                           !appl_4 <- appl_3 `pseq` (kl_V2341h `pseq` multiply appl_3 kl_V2341h)
-                                                                                           !appl_5 <- kl_V2342 `pseq` add kl_V2342 (Types.Atom (Types.N (Types.KI 1)))
-                                                                                           !appl_6 <- kl_V2341t `pseq` (appl_5 `pseq` kl_shen_post kl_V2341t appl_5)
-                                                                                           appl_4 `pseq` (appl_6 `pseq` add appl_4 appl_6)
-                                              pat_cond_7 = do do let !aw_8 = Types.Atom (Types.UnboundSym "shen.f_error")
-                                                                 applyWrapper aw_8 [ApplC (wrapNamed "shen.post" kl_shen_post)]
-                                           in case kl_V2341 of
-                                                  kl_V2341@(Atom (Nil)) -> pat_cond_0
-                                                  !(kl_V2341@(Cons (!kl_V2341h)
-                                                                   (!kl_V2341t))) -> pat_cond_1 kl_V2341 kl_V2341h kl_V2341t
-                                                  _ -> pat_cond_7
-
-kl_shen_expt :: Types.KLValue ->
-                Types.KLValue -> Types.KLContext Types.Env Types.KLValue
-kl_shen_expt (!kl_V2347) (!kl_V2348) = do let pat_cond_0 = do return (Types.Atom (Types.N (Types.KI 1)))
-                                              pat_cond_1 = do !kl_if_2 <- kl_V2348 `pseq` greaterThan kl_V2348 (Types.Atom (Types.N (Types.KI 0)))
-                                                              case kl_if_2 of
-                                                                  Atom (B (True)) -> do !appl_3 <- kl_V2348 `pseq` Primitives.subtract kl_V2348 (Types.Atom (Types.N (Types.KI 1)))
-                                                                                        !appl_4 <- kl_V2347 `pseq` (appl_3 `pseq` kl_shen_expt kl_V2347 appl_3)
-                                                                                        kl_V2347 `pseq` (appl_4 `pseq` multiply kl_V2347 appl_4)
-                                                                  Atom (B (False)) -> do do !appl_5 <- kl_V2348 `pseq` add kl_V2348 (Types.Atom (Types.N (Types.KI 1)))
-                                                                                            !appl_6 <- kl_V2347 `pseq` (appl_5 `pseq` kl_shen_expt kl_V2347 appl_5)
-                                                                                            !appl_7 <- appl_6 `pseq` (kl_V2347 `pseq` divide appl_6 kl_V2347)
-                                                                                            appl_7 `pseq` multiply (Types.Atom (Types.N (Types.KI 1))) appl_7
-                                                                  _ -> throwError "if: expected boolean"
-                                           in case kl_V2348 of
-                                                  kl_V2348@(Atom (N (KI 0))) -> pat_cond_0
-                                                  _ -> pat_cond_1
-
-kl_shen_LBst_input1RB :: Types.KLValue ->
-                         Types.KLContext Types.Env Types.KLValue
-kl_shen_LBst_input1RB (!kl_V2350) = do let !appl_0 = ApplC (Func "lambda" (Context (\(!kl_Parse_shen_LBst_inputRB) -> do !appl_1 <- kl_fail
-                                                                                                                         !appl_2 <- appl_1 `pseq` (kl_Parse_shen_LBst_inputRB `pseq` eq appl_1 kl_Parse_shen_LBst_inputRB)
-                                                                                                                         !kl_if_3 <- appl_2 `pseq` kl_not appl_2
-                                                                                                                         case kl_if_3 of
-                                                                                                                             Atom (B (True)) -> do !appl_4 <- kl_Parse_shen_LBst_inputRB `pseq` hd kl_Parse_shen_LBst_inputRB
-                                                                                                                                                   !appl_5 <- kl_Parse_shen_LBst_inputRB `pseq` kl_shen_hdtl kl_Parse_shen_LBst_inputRB
-                                                                                                                                                   appl_4 `pseq` (appl_5 `pseq` kl_shen_pair appl_4 appl_5)
-                                                                                                                             Atom (B (False)) -> do do kl_fail
-                                                                                                                             _ -> throwError "if: expected boolean")))
-                                       !appl_6 <- kl_V2350 `pseq` kl_shen_LBst_inputRB kl_V2350
-                                       appl_6 `pseq` applyWrapper appl_0 [appl_6]
-
-kl_shen_LBst_input2RB :: Types.KLValue ->
-                         Types.KLContext Types.Env Types.KLValue
-kl_shen_LBst_input2RB (!kl_V2352) = do let !appl_0 = ApplC (Func "lambda" (Context (\(!kl_Parse_shen_LBst_inputRB) -> do !appl_1 <- kl_fail
-                                                                                                                         !appl_2 <- appl_1 `pseq` (kl_Parse_shen_LBst_inputRB `pseq` eq appl_1 kl_Parse_shen_LBst_inputRB)
-                                                                                                                         !kl_if_3 <- appl_2 `pseq` kl_not appl_2
-                                                                                                                         case kl_if_3 of
-                                                                                                                             Atom (B (True)) -> do !appl_4 <- kl_Parse_shen_LBst_inputRB `pseq` hd kl_Parse_shen_LBst_inputRB
-                                                                                                                                                   !appl_5 <- kl_Parse_shen_LBst_inputRB `pseq` kl_shen_hdtl kl_Parse_shen_LBst_inputRB
-                                                                                                                                                   appl_4 `pseq` (appl_5 `pseq` kl_shen_pair appl_4 appl_5)
-                                                                                                                             Atom (B (False)) -> do do kl_fail
-                                                                                                                             _ -> throwError "if: expected boolean")))
-                                       !appl_6 <- kl_V2352 `pseq` kl_shen_LBst_inputRB kl_V2352
-                                       appl_6 `pseq` applyWrapper appl_0 [appl_6]
-
-kl_shen_LBcommentRB :: Types.KLValue ->
-                       Types.KLContext Types.Env Types.KLValue
-kl_shen_LBcommentRB (!kl_V2354) = do let !appl_0 = ApplC (Func "lambda" (Context (\(!kl_YaccParse) -> do !appl_1 <- kl_fail
-                                                                                                         !kl_if_2 <- kl_YaccParse `pseq` (appl_1 `pseq` eq kl_YaccParse appl_1)
-                                                                                                         case kl_if_2 of
-                                                                                                             Atom (B (True)) -> do let !appl_3 = ApplC (Func "lambda" (Context (\(!kl_Parse_shen_LBmultilineRB) -> do !appl_4 <- kl_fail
-                                                                                                                                                                                                                      !appl_5 <- appl_4 `pseq` (kl_Parse_shen_LBmultilineRB `pseq` eq appl_4 kl_Parse_shen_LBmultilineRB)
-                                                                                                                                                                                                                      !kl_if_6 <- appl_5 `pseq` kl_not appl_5
-                                                                                                                                                                                                                      case kl_if_6 of
-                                                                                                                                                                                                                          Atom (B (True)) -> do !appl_7 <- kl_Parse_shen_LBmultilineRB `pseq` hd kl_Parse_shen_LBmultilineRB
-                                                                                                                                                                                                                                                appl_7 `pseq` kl_shen_pair appl_7 (Types.Atom (Types.UnboundSym "shen.skip"))
-                                                                                                                                                                                                                          Atom (B (False)) -> do do kl_fail
-                                                                                                                                                                                                                          _ -> throwError "if: expected boolean")))
-                                                                                                                                   !appl_8 <- kl_V2354 `pseq` kl_shen_LBmultilineRB kl_V2354
-                                                                                                                                   appl_8 `pseq` applyWrapper appl_3 [appl_8]
-                                                                                                             Atom (B (False)) -> do do return kl_YaccParse
-                                                                                                             _ -> throwError "if: expected boolean")))
-                                     let !appl_9 = ApplC (Func "lambda" (Context (\(!kl_Parse_shen_LBsinglelineRB) -> do !appl_10 <- kl_fail
-                                                                                                                         !appl_11 <- appl_10 `pseq` (kl_Parse_shen_LBsinglelineRB `pseq` eq appl_10 kl_Parse_shen_LBsinglelineRB)
-                                                                                                                         !kl_if_12 <- appl_11 `pseq` kl_not appl_11
-                                                                                                                         case kl_if_12 of
-                                                                                                                             Atom (B (True)) -> do !appl_13 <- kl_Parse_shen_LBsinglelineRB `pseq` hd kl_Parse_shen_LBsinglelineRB
-                                                                                                                                                   appl_13 `pseq` kl_shen_pair appl_13 (Types.Atom (Types.UnboundSym "shen.skip"))
-                                                                                                                             Atom (B (False)) -> do do kl_fail
-                                                                                                                             _ -> throwError "if: expected boolean")))
-                                     !appl_14 <- kl_V2354 `pseq` kl_shen_LBsinglelineRB kl_V2354
-                                     !appl_15 <- appl_14 `pseq` applyWrapper appl_9 [appl_14]
-                                     appl_15 `pseq` applyWrapper appl_0 [appl_15]
-
-kl_shen_LBsinglelineRB :: Types.KLValue ->
-                          Types.KLContext Types.Env Types.KLValue
-kl_shen_LBsinglelineRB (!kl_V2356) = do let !appl_0 = ApplC (Func "lambda" (Context (\(!kl_Parse_shen_LBbackslashRB) -> do !appl_1 <- kl_fail
-                                                                                                                           !appl_2 <- appl_1 `pseq` (kl_Parse_shen_LBbackslashRB `pseq` eq appl_1 kl_Parse_shen_LBbackslashRB)
-                                                                                                                           !kl_if_3 <- appl_2 `pseq` kl_not appl_2
-                                                                                                                           case kl_if_3 of
-                                                                                                                               Atom (B (True)) -> do let !appl_4 = ApplC (Func "lambda" (Context (\(!kl_Parse_shen_LBbackslashRB) -> do !appl_5 <- kl_fail
-                                                                                                                                                                                                                                        !appl_6 <- appl_5 `pseq` (kl_Parse_shen_LBbackslashRB `pseq` eq appl_5 kl_Parse_shen_LBbackslashRB)
-                                                                                                                                                                                                                                        !kl_if_7 <- appl_6 `pseq` kl_not appl_6
-                                                                                                                                                                                                                                        case kl_if_7 of
-                                                                                                                                                                                                                                            Atom (B (True)) -> do let !appl_8 = ApplC (Func "lambda" (Context (\(!kl_Parse_shen_LBanysingleRB) -> do !appl_9 <- kl_fail
-                                                                                                                                                                                                                                                                                                                                                     !appl_10 <- appl_9 `pseq` (kl_Parse_shen_LBanysingleRB `pseq` eq appl_9 kl_Parse_shen_LBanysingleRB)
-                                                                                                                                                                                                                                                                                                                                                     !kl_if_11 <- appl_10 `pseq` kl_not appl_10
-                                                                                                                                                                                                                                                                                                                                                     case kl_if_11 of
-                                                                                                                                                                                                                                                                                                                                                         Atom (B (True)) -> do let !appl_12 = ApplC (Func "lambda" (Context (\(!kl_Parse_shen_LBreturnRB) -> do !appl_13 <- kl_fail
-                                                                                                                                                                                                                                                                                                                                                                                                                                                                !appl_14 <- appl_13 `pseq` (kl_Parse_shen_LBreturnRB `pseq` eq appl_13 kl_Parse_shen_LBreturnRB)
-                                                                                                                                                                                                                                                                                                                                                                                                                                                                !kl_if_15 <- appl_14 `pseq` kl_not appl_14
-                                                                                                                                                                                                                                                                                                                                                                                                                                                                case kl_if_15 of
-                                                                                                                                                                                                                                                                                                                                                                                                                                                                    Atom (B (True)) -> do !appl_16 <- kl_Parse_shen_LBreturnRB `pseq` hd kl_Parse_shen_LBreturnRB
-                                                                                                                                                                                                                                                                                                                                                                                                                                                                                          appl_16 `pseq` kl_shen_pair appl_16 (Types.Atom (Types.UnboundSym "shen.skip"))
-                                                                                                                                                                                                                                                                                                                                                                                                                                                                    Atom (B (False)) -> do do kl_fail
-                                                                                                                                                                                                                                                                                                                                                                                                                                                                    _ -> throwError "if: expected boolean")))
-                                                                                                                                                                                                                                                                                                                                                                               !appl_17 <- kl_Parse_shen_LBanysingleRB `pseq` kl_shen_LBreturnRB kl_Parse_shen_LBanysingleRB
-                                                                                                                                                                                                                                                                                                                                                                               appl_17 `pseq` applyWrapper appl_12 [appl_17]
-                                                                                                                                                                                                                                                                                                                                                         Atom (B (False)) -> do do kl_fail
-                                                                                                                                                                                                                                                                                                                                                         _ -> throwError "if: expected boolean")))
-                                                                                                                                                                                                                                                                  !appl_18 <- kl_Parse_shen_LBbackslashRB `pseq` kl_shen_LBanysingleRB kl_Parse_shen_LBbackslashRB
-                                                                                                                                                                                                                                                                  appl_18 `pseq` applyWrapper appl_8 [appl_18]
-                                                                                                                                                                                                                                            Atom (B (False)) -> do do kl_fail
-                                                                                                                                                                                                                                            _ -> throwError "if: expected boolean")))
-                                                                                                                                                     !appl_19 <- kl_Parse_shen_LBbackslashRB `pseq` kl_shen_LBbackslashRB kl_Parse_shen_LBbackslashRB
-                                                                                                                                                     appl_19 `pseq` applyWrapper appl_4 [appl_19]
-                                                                                                                               Atom (B (False)) -> do do kl_fail
-                                                                                                                               _ -> throwError "if: expected boolean")))
-                                        !appl_20 <- kl_V2356 `pseq` kl_shen_LBbackslashRB kl_V2356
-                                        appl_20 `pseq` applyWrapper appl_0 [appl_20]
-
-kl_shen_LBbackslashRB :: Types.KLValue ->
-                         Types.KLContext Types.Env Types.KLValue
-kl_shen_LBbackslashRB (!kl_V2358) = do !appl_0 <- kl_V2358 `pseq` hd kl_V2358
-                                       !kl_if_1 <- appl_0 `pseq` consP appl_0
-                                       !kl_if_2 <- case kl_if_1 of
-                                                       Atom (B (True)) -> do !appl_3 <- kl_V2358 `pseq` hd kl_V2358
-                                                                             !appl_4 <- appl_3 `pseq` hd appl_3
-                                                                             !kl_if_5 <- appl_4 `pseq` eq (Types.Atom (Types.N (Types.KI 92))) appl_4
-                                                                             case kl_if_5 of
-                                                                                 Atom (B (True)) -> do return (Atom (B True))
-                                                                                 Atom (B (False)) -> do do return (Atom (B False))
-                                                                                 _ -> throwError "if: expected boolean"
-                                                       Atom (B (False)) -> do do return (Atom (B False))
-                                                       _ -> throwError "if: expected boolean"
-                                       case kl_if_2 of
-                                           Atom (B (True)) -> do !appl_6 <- kl_V2358 `pseq` hd kl_V2358
-                                                                 !appl_7 <- appl_6 `pseq` tl appl_6
-                                                                 !appl_8 <- kl_V2358 `pseq` kl_shen_hdtl kl_V2358
-                                                                 !appl_9 <- appl_7 `pseq` (appl_8 `pseq` kl_shen_pair appl_7 appl_8)
-                                                                 !appl_10 <- appl_9 `pseq` hd appl_9
-                                                                 appl_10 `pseq` kl_shen_pair appl_10 (Types.Atom (Types.UnboundSym "shen.skip"))
-                                           Atom (B (False)) -> do do kl_fail
-                                           _ -> throwError "if: expected boolean"
-
-kl_shen_LBanysingleRB :: Types.KLValue ->
-                         Types.KLContext Types.Env Types.KLValue
-kl_shen_LBanysingleRB (!kl_V2360) = do let !appl_0 = ApplC (Func "lambda" (Context (\(!kl_YaccParse) -> do !appl_1 <- kl_fail
-                                                                                                           !kl_if_2 <- kl_YaccParse `pseq` (appl_1 `pseq` eq kl_YaccParse appl_1)
-                                                                                                           case kl_if_2 of
-                                                                                                               Atom (B (True)) -> do let !appl_3 = ApplC (Func "lambda" (Context (\(!kl_Parse_LBeRB) -> do !appl_4 <- kl_fail
-                                                                                                                                                                                                           !appl_5 <- appl_4 `pseq` (kl_Parse_LBeRB `pseq` eq appl_4 kl_Parse_LBeRB)
-                                                                                                                                                                                                           !kl_if_6 <- appl_5 `pseq` kl_not appl_5
-                                                                                                                                                                                                           case kl_if_6 of
-                                                                                                                                                                                                               Atom (B (True)) -> do !appl_7 <- kl_Parse_LBeRB `pseq` hd kl_Parse_LBeRB
-                                                                                                                                                                                                                                     appl_7 `pseq` kl_shen_pair appl_7 (Types.Atom (Types.UnboundSym "shen.skip"))
-                                                                                                                                                                                                               Atom (B (False)) -> do do kl_fail
-                                                                                                                                                                                                               _ -> throwError "if: expected boolean")))
-                                                                                                                                     !appl_8 <- kl_V2360 `pseq` kl_LBeRB kl_V2360
-                                                                                                                                     appl_8 `pseq` applyWrapper appl_3 [appl_8]
-                                                                                                               Atom (B (False)) -> do do return kl_YaccParse
-                                                                                                               _ -> throwError "if: expected boolean")))
-                                       let !appl_9 = ApplC (Func "lambda" (Context (\(!kl_Parse_shen_LBnon_returnRB) -> do !appl_10 <- kl_fail
-                                                                                                                           !appl_11 <- appl_10 `pseq` (kl_Parse_shen_LBnon_returnRB `pseq` eq appl_10 kl_Parse_shen_LBnon_returnRB)
-                                                                                                                           !kl_if_12 <- appl_11 `pseq` kl_not appl_11
-                                                                                                                           case kl_if_12 of
-                                                                                                                               Atom (B (True)) -> do let !appl_13 = ApplC (Func "lambda" (Context (\(!kl_Parse_shen_LBanysingleRB) -> do !appl_14 <- kl_fail
-                                                                                                                                                                                                                                         !appl_15 <- appl_14 `pseq` (kl_Parse_shen_LBanysingleRB `pseq` eq appl_14 kl_Parse_shen_LBanysingleRB)
-                                                                                                                                                                                                                                         !kl_if_16 <- appl_15 `pseq` kl_not appl_15
-                                                                                                                                                                                                                                         case kl_if_16 of
-                                                                                                                                                                                                                                             Atom (B (True)) -> do !appl_17 <- kl_Parse_shen_LBanysingleRB `pseq` hd kl_Parse_shen_LBanysingleRB
-                                                                                                                                                                                                                                                                   appl_17 `pseq` kl_shen_pair appl_17 (Types.Atom (Types.UnboundSym "shen.skip"))
-                                                                                                                                                                                                                                             Atom (B (False)) -> do do kl_fail
-                                                                                                                                                                                                                                             _ -> throwError "if: expected boolean")))
-                                                                                                                                                     !appl_18 <- kl_Parse_shen_LBnon_returnRB `pseq` kl_shen_LBanysingleRB kl_Parse_shen_LBnon_returnRB
-                                                                                                                                                     appl_18 `pseq` applyWrapper appl_13 [appl_18]
-                                                                                                                               Atom (B (False)) -> do do kl_fail
-                                                                                                                               _ -> throwError "if: expected boolean")))
-                                       !appl_19 <- kl_V2360 `pseq` kl_shen_LBnon_returnRB kl_V2360
-                                       !appl_20 <- appl_19 `pseq` applyWrapper appl_9 [appl_19]
-                                       appl_20 `pseq` applyWrapper appl_0 [appl_20]
-
-kl_shen_LBnon_returnRB :: Types.KLValue ->
-                          Types.KLContext Types.Env Types.KLValue
-kl_shen_LBnon_returnRB (!kl_V2362) = do !appl_0 <- kl_V2362 `pseq` hd kl_V2362
-                                        !kl_if_1 <- appl_0 `pseq` consP appl_0
-                                        case kl_if_1 of
-                                            Atom (B (True)) -> do let !appl_2 = ApplC (Func "lambda" (Context (\(!kl_Parse_X) -> do !appl_3 <- klCons (Types.Atom (Types.N (Types.KI 13))) (Types.Atom Types.Nil)
-                                                                                                                                    !appl_4 <- appl_3 `pseq` klCons (Types.Atom (Types.N (Types.KI 10))) appl_3
-                                                                                                                                    !appl_5 <- kl_Parse_X `pseq` (appl_4 `pseq` kl_elementP kl_Parse_X appl_4)
-                                                                                                                                    !kl_if_6 <- appl_5 `pseq` kl_not appl_5
-                                                                                                                                    case kl_if_6 of
-                                                                                                                                        Atom (B (True)) -> do !appl_7 <- kl_V2362 `pseq` hd kl_V2362
-                                                                                                                                                              !appl_8 <- appl_7 `pseq` tl appl_7
-                                                                                                                                                              !appl_9 <- kl_V2362 `pseq` kl_shen_hdtl kl_V2362
-                                                                                                                                                              !appl_10 <- appl_8 `pseq` (appl_9 `pseq` kl_shen_pair appl_8 appl_9)
-                                                                                                                                                              !appl_11 <- appl_10 `pseq` hd appl_10
-                                                                                                                                                              appl_11 `pseq` kl_shen_pair appl_11 (Types.Atom (Types.UnboundSym "shen.skip"))
-                                                                                                                                        Atom (B (False)) -> do do kl_fail
-                                                                                                                                        _ -> throwError "if: expected boolean")))
-                                                                  !appl_12 <- kl_V2362 `pseq` hd kl_V2362
-                                                                  !appl_13 <- appl_12 `pseq` hd appl_12
-                                                                  appl_13 `pseq` applyWrapper appl_2 [appl_13]
-                                            Atom (B (False)) -> do do kl_fail
-                                            _ -> throwError "if: expected boolean"
-
-kl_shen_LBreturnRB :: Types.KLValue ->
-                      Types.KLContext Types.Env Types.KLValue
-kl_shen_LBreturnRB (!kl_V2364) = do !appl_0 <- kl_V2364 `pseq` hd kl_V2364
-                                    !kl_if_1 <- appl_0 `pseq` consP appl_0
-                                    case kl_if_1 of
-                                        Atom (B (True)) -> do let !appl_2 = ApplC (Func "lambda" (Context (\(!kl_Parse_X) -> do !appl_3 <- klCons (Types.Atom (Types.N (Types.KI 13))) (Types.Atom Types.Nil)
-                                                                                                                                !appl_4 <- appl_3 `pseq` klCons (Types.Atom (Types.N (Types.KI 10))) appl_3
-                                                                                                                                !kl_if_5 <- kl_Parse_X `pseq` (appl_4 `pseq` kl_elementP kl_Parse_X appl_4)
-                                                                                                                                case kl_if_5 of
-                                                                                                                                    Atom (B (True)) -> do !appl_6 <- kl_V2364 `pseq` hd kl_V2364
-                                                                                                                                                          !appl_7 <- appl_6 `pseq` tl appl_6
-                                                                                                                                                          !appl_8 <- kl_V2364 `pseq` kl_shen_hdtl kl_V2364
-                                                                                                                                                          !appl_9 <- appl_7 `pseq` (appl_8 `pseq` kl_shen_pair appl_7 appl_8)
-                                                                                                                                                          !appl_10 <- appl_9 `pseq` hd appl_9
-                                                                                                                                                          appl_10 `pseq` kl_shen_pair appl_10 (Types.Atom (Types.UnboundSym "shen.skip"))
-                                                                                                                                    Atom (B (False)) -> do do kl_fail
-                                                                                                                                    _ -> throwError "if: expected boolean")))
-                                                              !appl_11 <- kl_V2364 `pseq` hd kl_V2364
-                                                              !appl_12 <- appl_11 `pseq` hd appl_11
-                                                              appl_12 `pseq` applyWrapper appl_2 [appl_12]
-                                        Atom (B (False)) -> do do kl_fail
-                                        _ -> throwError "if: expected boolean"
-
-kl_shen_LBmultilineRB :: Types.KLValue ->
-                         Types.KLContext Types.Env Types.KLValue
-kl_shen_LBmultilineRB (!kl_V2366) = do let !appl_0 = ApplC (Func "lambda" (Context (\(!kl_Parse_shen_LBbackslashRB) -> do !appl_1 <- kl_fail
-                                                                                                                          !appl_2 <- appl_1 `pseq` (kl_Parse_shen_LBbackslashRB `pseq` eq appl_1 kl_Parse_shen_LBbackslashRB)
-                                                                                                                          !kl_if_3 <- appl_2 `pseq` kl_not appl_2
-                                                                                                                          case kl_if_3 of
-                                                                                                                              Atom (B (True)) -> do let !appl_4 = ApplC (Func "lambda" (Context (\(!kl_Parse_shen_LBtimesRB) -> do !appl_5 <- kl_fail
-                                                                                                                                                                                                                                   !appl_6 <- appl_5 `pseq` (kl_Parse_shen_LBtimesRB `pseq` eq appl_5 kl_Parse_shen_LBtimesRB)
-                                                                                                                                                                                                                                   !kl_if_7 <- appl_6 `pseq` kl_not appl_6
-                                                                                                                                                                                                                                   case kl_if_7 of
-                                                                                                                                                                                                                                       Atom (B (True)) -> do let !appl_8 = ApplC (Func "lambda" (Context (\(!kl_Parse_shen_LBanymultiRB) -> do !appl_9 <- kl_fail
-                                                                                                                                                                                                                                                                                                                                               !appl_10 <- appl_9 `pseq` (kl_Parse_shen_LBanymultiRB `pseq` eq appl_9 kl_Parse_shen_LBanymultiRB)
-                                                                                                                                                                                                                                                                                                                                               !kl_if_11 <- appl_10 `pseq` kl_not appl_10
-                                                                                                                                                                                                                                                                                                                                               case kl_if_11 of
-                                                                                                                                                                                                                                                                                                                                                   Atom (B (True)) -> do !appl_12 <- kl_Parse_shen_LBanymultiRB `pseq` hd kl_Parse_shen_LBanymultiRB
-                                                                                                                                                                                                                                                                                                                                                                         appl_12 `pseq` kl_shen_pair appl_12 (Types.Atom (Types.UnboundSym "shen.skip"))
-                                                                                                                                                                                                                                                                                                                                                   Atom (B (False)) -> do do kl_fail
-                                                                                                                                                                                                                                                                                                                                                   _ -> throwError "if: expected boolean")))
-                                                                                                                                                                                                                                                             !appl_13 <- kl_Parse_shen_LBtimesRB `pseq` kl_shen_LBanymultiRB kl_Parse_shen_LBtimesRB
-                                                                                                                                                                                                                                                             appl_13 `pseq` applyWrapper appl_8 [appl_13]
-                                                                                                                                                                                                                                       Atom (B (False)) -> do do kl_fail
-                                                                                                                                                                                                                                       _ -> throwError "if: expected boolean")))
-                                                                                                                                                    !appl_14 <- kl_Parse_shen_LBbackslashRB `pseq` kl_shen_LBtimesRB kl_Parse_shen_LBbackslashRB
-                                                                                                                                                    appl_14 `pseq` applyWrapper appl_4 [appl_14]
-                                                                                                                              Atom (B (False)) -> do do kl_fail
-                                                                                                                              _ -> throwError "if: expected boolean")))
-                                       !appl_15 <- kl_V2366 `pseq` kl_shen_LBbackslashRB kl_V2366
-                                       appl_15 `pseq` applyWrapper appl_0 [appl_15]
-
-kl_shen_LBtimesRB :: Types.KLValue ->
-                     Types.KLContext Types.Env Types.KLValue
-kl_shen_LBtimesRB (!kl_V2368) = do !appl_0 <- kl_V2368 `pseq` hd kl_V2368
-                                   !kl_if_1 <- appl_0 `pseq` consP appl_0
-                                   !kl_if_2 <- case kl_if_1 of
-                                                   Atom (B (True)) -> do !appl_3 <- kl_V2368 `pseq` hd kl_V2368
-                                                                         !appl_4 <- appl_3 `pseq` hd appl_3
-                                                                         !kl_if_5 <- appl_4 `pseq` eq (Types.Atom (Types.N (Types.KI 42))) appl_4
-                                                                         case kl_if_5 of
-                                                                             Atom (B (True)) -> do return (Atom (B True))
-                                                                             Atom (B (False)) -> do do return (Atom (B False))
-                                                                             _ -> throwError "if: expected boolean"
-                                                   Atom (B (False)) -> do do return (Atom (B False))
-                                                   _ -> throwError "if: expected boolean"
-                                   case kl_if_2 of
-                                       Atom (B (True)) -> do !appl_6 <- kl_V2368 `pseq` hd kl_V2368
-                                                             !appl_7 <- appl_6 `pseq` tl appl_6
-                                                             !appl_8 <- kl_V2368 `pseq` kl_shen_hdtl kl_V2368
-                                                             !appl_9 <- appl_7 `pseq` (appl_8 `pseq` kl_shen_pair appl_7 appl_8)
-                                                             !appl_10 <- appl_9 `pseq` hd appl_9
-                                                             appl_10 `pseq` kl_shen_pair appl_10 (Types.Atom (Types.UnboundSym "shen.skip"))
-                                       Atom (B (False)) -> do do kl_fail
-                                       _ -> throwError "if: expected boolean"
-
-kl_shen_LBanymultiRB :: Types.KLValue ->
-                        Types.KLContext Types.Env Types.KLValue
-kl_shen_LBanymultiRB (!kl_V2370) = do let !appl_0 = ApplC (Func "lambda" (Context (\(!kl_YaccParse) -> do !appl_1 <- kl_fail
-                                                                                                          !kl_if_2 <- kl_YaccParse `pseq` (appl_1 `pseq` eq kl_YaccParse appl_1)
-                                                                                                          case kl_if_2 of
-                                                                                                              Atom (B (True)) -> do let !appl_3 = ApplC (Func "lambda" (Context (\(!kl_YaccParse) -> do !appl_4 <- kl_fail
-                                                                                                                                                                                                        !kl_if_5 <- kl_YaccParse `pseq` (appl_4 `pseq` eq kl_YaccParse appl_4)
-                                                                                                                                                                                                        case kl_if_5 of
-                                                                                                                                                                                                            Atom (B (True)) -> do !appl_6 <- kl_V2370 `pseq` hd kl_V2370
-                                                                                                                                                                                                                                  !kl_if_7 <- appl_6 `pseq` consP appl_6
-                                                                                                                                                                                                                                  case kl_if_7 of
-                                                                                                                                                                                                                                      Atom (B (True)) -> do let !appl_8 = ApplC (Func "lambda" (Context (\(!kl_Parse_X) -> do let !appl_9 = ApplC (Func "lambda" (Context (\(!kl_Parse_shen_LBanymultiRB) -> do !appl_10 <- kl_fail
-                                                                                                                                                                                                                                                                                                                                                                                                                !appl_11 <- appl_10 `pseq` (kl_Parse_shen_LBanymultiRB `pseq` eq appl_10 kl_Parse_shen_LBanymultiRB)
-                                                                                                                                                                                                                                                                                                                                                                                                                !kl_if_12 <- appl_11 `pseq` kl_not appl_11
-                                                                                                                                                                                                                                                                                                                                                                                                                case kl_if_12 of
-                                                                                                                                                                                                                                                                                                                                                                                                                    Atom (B (True)) -> do !appl_13 <- kl_Parse_shen_LBanymultiRB `pseq` hd kl_Parse_shen_LBanymultiRB
-                                                                                                                                                                                                                                                                                                                                                                                                                                          appl_13 `pseq` kl_shen_pair appl_13 (Types.Atom (Types.UnboundSym "shen.skip"))
-                                                                                                                                                                                                                                                                                                                                                                                                                    Atom (B (False)) -> do do kl_fail
-                                                                                                                                                                                                                                                                                                                                                                                                                    _ -> throwError "if: expected boolean")))
-                                                                                                                                                                                                                                                                                                                              !appl_14 <- kl_V2370 `pseq` hd kl_V2370
-                                                                                                                                                                                                                                                                                                                              !appl_15 <- appl_14 `pseq` tl appl_14
-                                                                                                                                                                                                                                                                                                                              !appl_16 <- kl_V2370 `pseq` kl_shen_hdtl kl_V2370
-                                                                                                                                                                                                                                                                                                                              !appl_17 <- appl_15 `pseq` (appl_16 `pseq` kl_shen_pair appl_15 appl_16)
-                                                                                                                                                                                                                                                                                                                              !appl_18 <- appl_17 `pseq` kl_shen_LBanymultiRB appl_17
-                                                                                                                                                                                                                                                                                                                              appl_18 `pseq` applyWrapper appl_9 [appl_18])))
-                                                                                                                                                                                                                                                            !appl_19 <- kl_V2370 `pseq` hd kl_V2370
-                                                                                                                                                                                                                                                            !appl_20 <- appl_19 `pseq` hd appl_19
-                                                                                                                                                                                                                                                            appl_20 `pseq` applyWrapper appl_8 [appl_20]
-                                                                                                                                                                                                                                      Atom (B (False)) -> do do kl_fail
-                                                                                                                                                                                                                                      _ -> throwError "if: expected boolean"
-                                                                                                                                                                                                            Atom (B (False)) -> do do return kl_YaccParse
-                                                                                                                                                                                                            _ -> throwError "if: expected boolean")))
-                                                                                                                                    let !appl_21 = ApplC (Func "lambda" (Context (\(!kl_Parse_shen_LBtimesRB) -> do !appl_22 <- kl_fail
-                                                                                                                                                                                                                    !appl_23 <- appl_22 `pseq` (kl_Parse_shen_LBtimesRB `pseq` eq appl_22 kl_Parse_shen_LBtimesRB)
-                                                                                                                                                                                                                    !kl_if_24 <- appl_23 `pseq` kl_not appl_23
-                                                                                                                                                                                                                    case kl_if_24 of
-                                                                                                                                                                                                                        Atom (B (True)) -> do let !appl_25 = ApplC (Func "lambda" (Context (\(!kl_Parse_shen_LBbackslashRB) -> do !appl_26 <- kl_fail
-                                                                                                                                                                                                                                                                                                                                  !appl_27 <- appl_26 `pseq` (kl_Parse_shen_LBbackslashRB `pseq` eq appl_26 kl_Parse_shen_LBbackslashRB)
-                                                                                                                                                                                                                                                                                                                                  !kl_if_28 <- appl_27 `pseq` kl_not appl_27
-                                                                                                                                                                                                                                                                                                                                  case kl_if_28 of
-                                                                                                                                                                                                                                                                                                                                      Atom (B (True)) -> do !appl_29 <- kl_Parse_shen_LBbackslashRB `pseq` hd kl_Parse_shen_LBbackslashRB
-                                                                                                                                                                                                                                                                                                                                                            appl_29 `pseq` kl_shen_pair appl_29 (Types.Atom (Types.UnboundSym "shen.skip"))
-                                                                                                                                                                                                                                                                                                                                      Atom (B (False)) -> do do kl_fail
-                                                                                                                                                                                                                                                                                                                                      _ -> throwError "if: expected boolean")))
-                                                                                                                                                                                                                                              !appl_30 <- kl_Parse_shen_LBtimesRB `pseq` kl_shen_LBbackslashRB kl_Parse_shen_LBtimesRB
-                                                                                                                                                                                                                                              appl_30 `pseq` applyWrapper appl_25 [appl_30]
-                                                                                                                                                                                                                        Atom (B (False)) -> do do kl_fail
-                                                                                                                                                                                                                        _ -> throwError "if: expected boolean")))
-                                                                                                                                    !appl_31 <- kl_V2370 `pseq` kl_shen_LBtimesRB kl_V2370
-                                                                                                                                    !appl_32 <- appl_31 `pseq` applyWrapper appl_21 [appl_31]
-                                                                                                                                    appl_32 `pseq` applyWrapper appl_3 [appl_32]
-                                                                                                              Atom (B (False)) -> do do return kl_YaccParse
-                                                                                                              _ -> throwError "if: expected boolean")))
-                                      let !appl_33 = ApplC (Func "lambda" (Context (\(!kl_Parse_shen_LBcommentRB) -> do !appl_34 <- kl_fail
-                                                                                                                        !appl_35 <- appl_34 `pseq` (kl_Parse_shen_LBcommentRB `pseq` eq appl_34 kl_Parse_shen_LBcommentRB)
-                                                                                                                        !kl_if_36 <- appl_35 `pseq` kl_not appl_35
-                                                                                                                        case kl_if_36 of
-                                                                                                                            Atom (B (True)) -> do let !appl_37 = ApplC (Func "lambda" (Context (\(!kl_Parse_shen_LBanymultiRB) -> do !appl_38 <- kl_fail
-                                                                                                                                                                                                                                     !appl_39 <- appl_38 `pseq` (kl_Parse_shen_LBanymultiRB `pseq` eq appl_38 kl_Parse_shen_LBanymultiRB)
-                                                                                                                                                                                                                                     !kl_if_40 <- appl_39 `pseq` kl_not appl_39
-                                                                                                                                                                                                                                     case kl_if_40 of
-                                                                                                                                                                                                                                         Atom (B (True)) -> do !appl_41 <- kl_Parse_shen_LBanymultiRB `pseq` hd kl_Parse_shen_LBanymultiRB
-                                                                                                                                                                                                                                                               appl_41 `pseq` kl_shen_pair appl_41 (Types.Atom (Types.UnboundSym "shen.skip"))
-                                                                                                                                                                                                                                         Atom (B (False)) -> do do kl_fail
-                                                                                                                                                                                                                                         _ -> throwError "if: expected boolean")))
-                                                                                                                                                  !appl_42 <- kl_Parse_shen_LBcommentRB `pseq` kl_shen_LBanymultiRB kl_Parse_shen_LBcommentRB
-                                                                                                                                                  appl_42 `pseq` applyWrapper appl_37 [appl_42]
-                                                                                                                            Atom (B (False)) -> do do kl_fail
-                                                                                                                            _ -> throwError "if: expected boolean")))
-                                      !appl_43 <- kl_V2370 `pseq` kl_shen_LBcommentRB kl_V2370
-                                      !appl_44 <- appl_43 `pseq` applyWrapper appl_33 [appl_43]
-                                      appl_44 `pseq` applyWrapper appl_0 [appl_44]
-
-kl_shen_LBwhitespacesRB :: Types.KLValue ->
-                           Types.KLContext Types.Env Types.KLValue
-kl_shen_LBwhitespacesRB (!kl_V2372) = do let !appl_0 = ApplC (Func "lambda" (Context (\(!kl_YaccParse) -> do !appl_1 <- kl_fail
-                                                                                                             !kl_if_2 <- kl_YaccParse `pseq` (appl_1 `pseq` eq kl_YaccParse appl_1)
-                                                                                                             case kl_if_2 of
-                                                                                                                 Atom (B (True)) -> do let !appl_3 = ApplC (Func "lambda" (Context (\(!kl_Parse_shen_LBwhitespaceRB) -> do !appl_4 <- kl_fail
-                                                                                                                                                                                                                           !appl_5 <- appl_4 `pseq` (kl_Parse_shen_LBwhitespaceRB `pseq` eq appl_4 kl_Parse_shen_LBwhitespaceRB)
-                                                                                                                                                                                                                           !kl_if_6 <- appl_5 `pseq` kl_not appl_5
-                                                                                                                                                                                                                           case kl_if_6 of
-                                                                                                                                                                                                                               Atom (B (True)) -> do !appl_7 <- kl_Parse_shen_LBwhitespaceRB `pseq` hd kl_Parse_shen_LBwhitespaceRB
-                                                                                                                                                                                                                                                     appl_7 `pseq` kl_shen_pair appl_7 (Types.Atom (Types.UnboundSym "shen.skip"))
-                                                                                                                                                                                                                               Atom (B (False)) -> do do kl_fail
-                                                                                                                                                                                                                               _ -> throwError "if: expected boolean")))
-                                                                                                                                       !appl_8 <- kl_V2372 `pseq` kl_shen_LBwhitespaceRB kl_V2372
-                                                                                                                                       appl_8 `pseq` applyWrapper appl_3 [appl_8]
-                                                                                                                 Atom (B (False)) -> do do return kl_YaccParse
-                                                                                                                 _ -> throwError "if: expected boolean")))
-                                         let !appl_9 = ApplC (Func "lambda" (Context (\(!kl_Parse_shen_LBwhitespaceRB) -> do !appl_10 <- kl_fail
-                                                                                                                             !appl_11 <- appl_10 `pseq` (kl_Parse_shen_LBwhitespaceRB `pseq` eq appl_10 kl_Parse_shen_LBwhitespaceRB)
-                                                                                                                             !kl_if_12 <- appl_11 `pseq` kl_not appl_11
-                                                                                                                             case kl_if_12 of
-                                                                                                                                 Atom (B (True)) -> do let !appl_13 = ApplC (Func "lambda" (Context (\(!kl_Parse_shen_LBwhitespacesRB) -> do !appl_14 <- kl_fail
-                                                                                                                                                                                                                                             !appl_15 <- appl_14 `pseq` (kl_Parse_shen_LBwhitespacesRB `pseq` eq appl_14 kl_Parse_shen_LBwhitespacesRB)
-                                                                                                                                                                                                                                             !kl_if_16 <- appl_15 `pseq` kl_not appl_15
-                                                                                                                                                                                                                                             case kl_if_16 of
-                                                                                                                                                                                                                                                 Atom (B (True)) -> do !appl_17 <- kl_Parse_shen_LBwhitespacesRB `pseq` hd kl_Parse_shen_LBwhitespacesRB
-                                                                                                                                                                                                                                                                       appl_17 `pseq` kl_shen_pair appl_17 (Types.Atom (Types.UnboundSym "shen.skip"))
-                                                                                                                                                                                                                                                 Atom (B (False)) -> do do kl_fail
-                                                                                                                                                                                                                                                 _ -> throwError "if: expected boolean")))
-                                                                                                                                                       !appl_18 <- kl_Parse_shen_LBwhitespaceRB `pseq` kl_shen_LBwhitespacesRB kl_Parse_shen_LBwhitespaceRB
-                                                                                                                                                       appl_18 `pseq` applyWrapper appl_13 [appl_18]
-                                                                                                                                 Atom (B (False)) -> do do kl_fail
-                                                                                                                                 _ -> throwError "if: expected boolean")))
-                                         !appl_19 <- kl_V2372 `pseq` kl_shen_LBwhitespaceRB kl_V2372
-                                         !appl_20 <- appl_19 `pseq` applyWrapper appl_9 [appl_19]
-                                         appl_20 `pseq` applyWrapper appl_0 [appl_20]
-
-kl_shen_LBwhitespaceRB :: Types.KLValue ->
-                          Types.KLContext Types.Env Types.KLValue
-kl_shen_LBwhitespaceRB (!kl_V2374) = do !appl_0 <- kl_V2374 `pseq` hd kl_V2374
-                                        !kl_if_1 <- appl_0 `pseq` consP appl_0
-                                        case kl_if_1 of
-                                            Atom (B (True)) -> do let !appl_2 = ApplC (Func "lambda" (Context (\(!kl_Parse_X) -> do let !appl_3 = ApplC (Func "lambda" (Context (\(!kl_Parse_Case) -> do let pat_cond_4 = do return (Atom (B True))
-                                                                                                                                                                                                             pat_cond_5 = do do !kl_if_6 <- let pat_cond_7 = do return (Atom (B True))
-                                                                                                                                                                                                                                                pat_cond_8 = do do !kl_if_9 <- let pat_cond_10 = do return (Atom (B True))
-                                                                                                                                                                                                                                                                                   pat_cond_11 = do do let pat_cond_12 = do return (Atom (B True))
-                                                                                                                                                                                                                                                                                                           pat_cond_13 = do do return (Atom (B False))
-                                                                                                                                                                                                                                                                                                        in case kl_Parse_Case of
-                                                                                                                                                                                                                                                                                                               kl_Parse_Case@(Atom (N (KI 9))) -> pat_cond_12
-                                                                                                                                                                                                                                                                                                               _ -> pat_cond_13
-                                                                                                                                                                                                                                                                                in case kl_Parse_Case of
-                                                                                                                                                                                                                                                                                       kl_Parse_Case@(Atom (N (KI 10))) -> pat_cond_10
-                                                                                                                                                                                                                                                                                       _ -> pat_cond_11
-                                                                                                                                                                                                                                                                   case kl_if_9 of
-                                                                                                                                                                                                                                                                       Atom (B (True)) -> do return (Atom (B True))
-                                                                                                                                                                                                                                                                       Atom (B (False)) -> do do return (Atom (B False))
-                                                                                                                                                                                                                                                                       _ -> throwError "if: expected boolean"
-                                                                                                                                                                                                                                             in case kl_Parse_Case of
-                                                                                                                                                                                                                                                    kl_Parse_Case@(Atom (N (KI 13))) -> pat_cond_7
-                                                                                                                                                                                                                                                    _ -> pat_cond_8
-                                                                                                                                                                                                                                case kl_if_6 of
-                                                                                                                                                                                                                                    Atom (B (True)) -> do return (Atom (B True))
-                                                                                                                                                                                                                                    Atom (B (False)) -> do do return (Atom (B False))
-                                                                                                                                                                                                                                    _ -> throwError "if: expected boolean"
-                                                                                                                                                                                                          in case kl_Parse_Case of
-                                                                                                                                                                                                                 kl_Parse_Case@(Atom (N (KI 32))) -> pat_cond_4
-                                                                                                                                                                                                                 _ -> pat_cond_5)))
-                                                                                                                                    !kl_if_14 <- kl_Parse_X `pseq` applyWrapper appl_3 [kl_Parse_X]
-                                                                                                                                    case kl_if_14 of
-                                                                                                                                        Atom (B (True)) -> do !appl_15 <- kl_V2374 `pseq` hd kl_V2374
-                                                                                                                                                              !appl_16 <- appl_15 `pseq` tl appl_15
-                                                                                                                                                              !appl_17 <- kl_V2374 `pseq` kl_shen_hdtl kl_V2374
-                                                                                                                                                              !appl_18 <- appl_16 `pseq` (appl_17 `pseq` kl_shen_pair appl_16 appl_17)
-                                                                                                                                                              !appl_19 <- appl_18 `pseq` hd appl_18
-                                                                                                                                                              appl_19 `pseq` kl_shen_pair appl_19 (Types.Atom (Types.UnboundSym "shen.skip"))
-                                                                                                                                        Atom (B (False)) -> do do kl_fail
-                                                                                                                                        _ -> throwError "if: expected boolean")))
-                                                                  !appl_20 <- kl_V2374 `pseq` hd kl_V2374
-                                                                  !appl_21 <- appl_20 `pseq` hd appl_20
-                                                                  appl_21 `pseq` applyWrapper appl_2 [appl_21]
-                                            Atom (B (False)) -> do do kl_fail
-                                            _ -> throwError "if: expected boolean"
-
-kl_shen_cons_form :: Types.KLValue ->
-                     Types.KLContext Types.Env Types.KLValue
-kl_shen_cons_form (!kl_V2376) = do let pat_cond_0 = do return (Types.Atom Types.Nil)
-                                       pat_cond_1 kl_V2376 kl_V2376h kl_V2376t kl_V2376tt kl_V2376tth = do !appl_2 <- kl_V2376h `pseq` (kl_V2376tt `pseq` klCons kl_V2376h kl_V2376tt)
-                                                                                                           appl_2 `pseq` klCons (ApplC (wrapNamed "cons" klCons)) appl_2
-                                       pat_cond_3 kl_V2376 kl_V2376h kl_V2376t = do !appl_4 <- kl_V2376t `pseq` kl_shen_cons_form kl_V2376t
-                                                                                    !appl_5 <- appl_4 `pseq` klCons appl_4 (Types.Atom Types.Nil)
-                                                                                    !appl_6 <- kl_V2376h `pseq` (appl_5 `pseq` klCons kl_V2376h appl_5)
-                                                                                    appl_6 `pseq` klCons (ApplC (wrapNamed "cons" klCons)) appl_6
-                                       pat_cond_7 = do do let !aw_8 = Types.Atom (Types.UnboundSym "shen.f_error")
-                                                          applyWrapper aw_8 [ApplC (wrapNamed "shen.cons_form" kl_shen_cons_form)]
-                                    in case kl_V2376 of
-                                           kl_V2376@(Atom (Nil)) -> pat_cond_0
-                                           !(kl_V2376@(Cons (!kl_V2376h)
-                                                            (!(kl_V2376t@(Cons (Atom (UnboundSym "bar!"))
-                                                                               (!(kl_V2376tt@(Cons (!kl_V2376tth)
-                                                                                                   (Atom (Nil)))))))))) -> pat_cond_1 kl_V2376 kl_V2376h kl_V2376t kl_V2376tt kl_V2376tth
-                                           !(kl_V2376@(Cons (!kl_V2376h)
-                                                            (!(kl_V2376t@(Cons (ApplC (PL "bar!" _))
-                                                                               (!(kl_V2376tt@(Cons (!kl_V2376tth)
-                                                                                                   (Atom (Nil)))))))))) -> pat_cond_1 kl_V2376 kl_V2376h kl_V2376t kl_V2376tt kl_V2376tth
-                                           !(kl_V2376@(Cons (!kl_V2376h)
-                                                            (!(kl_V2376t@(Cons (ApplC (Func "bar!"
-                                                                                            _))
-                                                                               (!(kl_V2376tt@(Cons (!kl_V2376tth)
-                                                                                                   (Atom (Nil)))))))))) -> pat_cond_1 kl_V2376 kl_V2376h kl_V2376t kl_V2376tt kl_V2376tth
-                                           !(kl_V2376@(Cons (!kl_V2376h)
-                                                            (!kl_V2376t))) -> pat_cond_3 kl_V2376 kl_V2376h kl_V2376t
-                                           _ -> pat_cond_7
-
-kl_shen_package_macro :: Types.KLValue ->
-                         Types.KLValue -> Types.KLContext Types.Env Types.KLValue
-kl_shen_package_macro (!kl_V2381) (!kl_V2382) = do let pat_cond_0 kl_V2381 kl_V2381t kl_V2381th = do !appl_1 <- kl_V2381th `pseq` kl_explode kl_V2381th
-                                                                                                     appl_1 `pseq` (kl_V2382 `pseq` kl_append appl_1 kl_V2382)
-                                                       pat_cond_2 kl_V2381 kl_V2381t kl_V2381tt kl_V2381tth kl_V2381ttt = do kl_V2381ttt `pseq` (kl_V2382 `pseq` kl_append kl_V2381ttt kl_V2382)
-                                                       pat_cond_3 kl_V2381 kl_V2381t kl_V2381th kl_V2381tt kl_V2381tth kl_V2381ttt = do let !appl_4 = ApplC (Func "lambda" (Context (\(!kl_ListofExceptions) -> do let !appl_5 = ApplC (Func "lambda" (Context (\(!kl_External) -> do let !appl_6 = ApplC (Func "lambda" (Context (\(!kl_PackageNameDot) -> do let !appl_7 = ApplC (Func "lambda" (Context (\(!kl_ExpPackageName) -> do let !appl_8 = ApplC (Func "lambda" (Context (\(!kl_Packaged) -> do let !appl_9 = ApplC (Func "lambda" (Context (\(!kl_Internal) -> do kl_Packaged `pseq` (kl_V2382 `pseq` kl_append kl_Packaged kl_V2382))))
-                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                           !appl_10 <- kl_ExpPackageName `pseq` (kl_Packaged `pseq` kl_shen_internal_symbols kl_ExpPackageName kl_Packaged)
-                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                           !appl_11 <- kl_V2381th `pseq` (appl_10 `pseq` kl_shen_record_internal kl_V2381th appl_10)
-                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                           appl_11 `pseq` applyWrapper appl_9 [appl_11])))
-                                                                                                                                                                                                                                                                                                                                                                                                                                        !appl_12 <- kl_PackageNameDot `pseq` (kl_ListofExceptions `pseq` (kl_V2381ttt `pseq` (kl_ExpPackageName `pseq` kl_shen_packageh kl_PackageNameDot kl_ListofExceptions kl_V2381ttt kl_ExpPackageName)))
-                                                                                                                                                                                                                                                                                                                                                                                                                                        appl_12 `pseq` applyWrapper appl_8 [appl_12])))
-                                                                                                                                                                                                                                                                                                                                                               !appl_13 <- kl_V2381th `pseq` kl_explode kl_V2381th
-                                                                                                                                                                                                                                                                                                                                                               appl_13 `pseq` applyWrapper appl_7 [appl_13])))
-                                                                                                                                                                                                                                                                                      !appl_14 <- kl_V2381th `pseq` str kl_V2381th
-                                                                                                                                                                                                                                                                                      !appl_15 <- appl_14 `pseq` cn appl_14 (Types.Atom (Types.Str "."))
-                                                                                                                                                                                                                                                                                      !appl_16 <- appl_15 `pseq` intern appl_15
-                                                                                                                                                                                                                                                                                      appl_16 `pseq` applyWrapper appl_6 [appl_16])))
-                                                                                                                                                                                                                   !appl_17 <- kl_ListofExceptions `pseq` (kl_V2381th `pseq` kl_shen_record_exceptions kl_ListofExceptions kl_V2381th)
-                                                                                                                                                                                                                   appl_17 `pseq` applyWrapper appl_5 [appl_17])))
-                                                                                                                                        !appl_18 <- kl_V2381tth `pseq` kl_shen_eval_without_macros kl_V2381tth
-                                                                                                                                        appl_18 `pseq` applyWrapper appl_4 [appl_18]
-                                                       pat_cond_19 = do do kl_V2381 `pseq` (kl_V2382 `pseq` klCons kl_V2381 kl_V2382)
-                                                    in case kl_V2381 of
-                                                           !(kl_V2381@(Cons (Atom (UnboundSym "$"))
-                                                                            (!(kl_V2381t@(Cons (!kl_V2381th)
-                                                                                               (Atom (Nil))))))) -> pat_cond_0 kl_V2381 kl_V2381t kl_V2381th
-                                                           !(kl_V2381@(Cons (ApplC (PL "$" _))
-                                                                            (!(kl_V2381t@(Cons (!kl_V2381th)
-                                                                                               (Atom (Nil))))))) -> pat_cond_0 kl_V2381 kl_V2381t kl_V2381th
-                                                           !(kl_V2381@(Cons (ApplC (Func "$" _))
-                                                                            (!(kl_V2381t@(Cons (!kl_V2381th)
-                                                                                               (Atom (Nil))))))) -> pat_cond_0 kl_V2381 kl_V2381t kl_V2381th
-                                                           !(kl_V2381@(Cons (Atom (UnboundSym "package"))
-                                                                            (!(kl_V2381t@(Cons (Atom (UnboundSym "null"))
-                                                                                               (!(kl_V2381tt@(Cons (!kl_V2381tth)
-                                                                                                                   (!kl_V2381ttt))))))))) -> pat_cond_2 kl_V2381 kl_V2381t kl_V2381tt kl_V2381tth kl_V2381ttt
-                                                           !(kl_V2381@(Cons (Atom (UnboundSym "package"))
-                                                                            (!(kl_V2381t@(Cons (ApplC (PL "null"
-                                                                                                          _))
-                                                                                               (!(kl_V2381tt@(Cons (!kl_V2381tth)
-                                                                                                                   (!kl_V2381ttt))))))))) -> pat_cond_2 kl_V2381 kl_V2381t kl_V2381tt kl_V2381tth kl_V2381ttt
-                                                           !(kl_V2381@(Cons (Atom (UnboundSym "package"))
-                                                                            (!(kl_V2381t@(Cons (ApplC (Func "null"
-                                                                                                            _))
-                                                                                               (!(kl_V2381tt@(Cons (!kl_V2381tth)
-                                                                                                                   (!kl_V2381ttt))))))))) -> pat_cond_2 kl_V2381 kl_V2381t kl_V2381tt kl_V2381tth kl_V2381ttt
-                                                           !(kl_V2381@(Cons (ApplC (PL "package" _))
-                                                                            (!(kl_V2381t@(Cons (Atom (UnboundSym "null"))
-                                                                                               (!(kl_V2381tt@(Cons (!kl_V2381tth)
-                                                                                                                   (!kl_V2381ttt))))))))) -> pat_cond_2 kl_V2381 kl_V2381t kl_V2381tt kl_V2381tth kl_V2381ttt
-                                                           !(kl_V2381@(Cons (ApplC (PL "package" _))
-                                                                            (!(kl_V2381t@(Cons (ApplC (PL "null"
-                                                                                                          _))
-                                                                                               (!(kl_V2381tt@(Cons (!kl_V2381tth)
-                                                                                                                   (!kl_V2381ttt))))))))) -> pat_cond_2 kl_V2381 kl_V2381t kl_V2381tt kl_V2381tth kl_V2381ttt
-                                                           !(kl_V2381@(Cons (ApplC (PL "package" _))
-                                                                            (!(kl_V2381t@(Cons (ApplC (Func "null"
-                                                                                                            _))
-                                                                                               (!(kl_V2381tt@(Cons (!kl_V2381tth)
-                                                                                                                   (!kl_V2381ttt))))))))) -> pat_cond_2 kl_V2381 kl_V2381t kl_V2381tt kl_V2381tth kl_V2381ttt
-                                                           !(kl_V2381@(Cons (ApplC (Func "package"
-                                                                                         _))
-                                                                            (!(kl_V2381t@(Cons (Atom (UnboundSym "null"))
-                                                                                               (!(kl_V2381tt@(Cons (!kl_V2381tth)
-                                                                                                                   (!kl_V2381ttt))))))))) -> pat_cond_2 kl_V2381 kl_V2381t kl_V2381tt kl_V2381tth kl_V2381ttt
-                                                           !(kl_V2381@(Cons (ApplC (Func "package"
-                                                                                         _))
-                                                                            (!(kl_V2381t@(Cons (ApplC (PL "null"
-                                                                                                          _))
-                                                                                               (!(kl_V2381tt@(Cons (!kl_V2381tth)
-                                                                                                                   (!kl_V2381ttt))))))))) -> pat_cond_2 kl_V2381 kl_V2381t kl_V2381tt kl_V2381tth kl_V2381ttt
-                                                           !(kl_V2381@(Cons (ApplC (Func "package"
-                                                                                         _))
-                                                                            (!(kl_V2381t@(Cons (ApplC (Func "null"
-                                                                                                            _))
-                                                                                               (!(kl_V2381tt@(Cons (!kl_V2381tth)
-                                                                                                                   (!kl_V2381ttt))))))))) -> pat_cond_2 kl_V2381 kl_V2381t kl_V2381tt kl_V2381tth kl_V2381ttt
-                                                           !(kl_V2381@(Cons (Atom (UnboundSym "package"))
-                                                                            (!(kl_V2381t@(Cons (!kl_V2381th)
-                                                                                               (!(kl_V2381tt@(Cons (!kl_V2381tth)
-                                                                                                                   (!kl_V2381ttt))))))))) -> pat_cond_3 kl_V2381 kl_V2381t kl_V2381th kl_V2381tt kl_V2381tth kl_V2381ttt
-                                                           !(kl_V2381@(Cons (ApplC (PL "package" _))
-                                                                            (!(kl_V2381t@(Cons (!kl_V2381th)
-                                                                                               (!(kl_V2381tt@(Cons (!kl_V2381tth)
-                                                                                                                   (!kl_V2381ttt))))))))) -> pat_cond_3 kl_V2381 kl_V2381t kl_V2381th kl_V2381tt kl_V2381tth kl_V2381ttt
-                                                           !(kl_V2381@(Cons (ApplC (Func "package"
-                                                                                         _))
-                                                                            (!(kl_V2381t@(Cons (!kl_V2381th)
-                                                                                               (!(kl_V2381tt@(Cons (!kl_V2381tth)
-                                                                                                                   (!kl_V2381ttt))))))))) -> pat_cond_3 kl_V2381 kl_V2381t kl_V2381th kl_V2381tt kl_V2381tth kl_V2381ttt
-                                                           _ -> pat_cond_19
-
-kl_shen_record_exceptions :: Types.KLValue ->
-                             Types.KLValue -> Types.KLContext Types.Env Types.KLValue
-kl_shen_record_exceptions (!kl_V2385) (!kl_V2386) = do let !appl_0 = ApplC (Func "lambda" (Context (\(!kl_CurrExceptions) -> do let !appl_1 = ApplC (Func "lambda" (Context (\(!kl_AllExceptions) -> do !appl_2 <- value (Types.Atom (Types.UnboundSym "*property-vector*"))
-                                                                                                                                                                                                        kl_V2386 `pseq` (kl_AllExceptions `pseq` (appl_2 `pseq` kl_put kl_V2386 (Types.Atom (Types.UnboundSym "shen.external-symbols")) kl_AllExceptions appl_2)))))
-                                                                                                                                !appl_3 <- kl_V2385 `pseq` (kl_CurrExceptions `pseq` kl_union kl_V2385 kl_CurrExceptions)
-                                                                                                                                appl_3 `pseq` applyWrapper appl_1 [appl_3])))
-                                                       !appl_4 <- (do !appl_5 <- value (Types.Atom (Types.UnboundSym "*property-vector*"))
-                                                                      kl_V2386 `pseq` (appl_5 `pseq` kl_get kl_V2386 (Types.Atom (Types.UnboundSym "shen.external-symbols")) appl_5)) `catchError` (\(!kl_E) -> do return (Types.Atom Types.Nil))
-                                                       appl_4 `pseq` applyWrapper appl_0 [appl_4]
-
-kl_shen_record_internal :: Types.KLValue ->
-                           Types.KLValue -> Types.KLContext Types.Env Types.KLValue
-kl_shen_record_internal (!kl_V2389) (!kl_V2390) = do !appl_0 <- (do !appl_1 <- value (Types.Atom (Types.UnboundSym "*property-vector*"))
-                                                                    kl_V2389 `pseq` (appl_1 `pseq` kl_get kl_V2389 (ApplC (wrapNamed "shen.internal-symbols" kl_shen_internal_symbols)) appl_1)) `catchError` (\(!kl_E) -> do return (Types.Atom Types.Nil))
-                                                     !appl_2 <- kl_V2390 `pseq` (appl_0 `pseq` kl_union kl_V2390 appl_0)
-                                                     !appl_3 <- value (Types.Atom (Types.UnboundSym "*property-vector*"))
-                                                     kl_V2389 `pseq` (appl_2 `pseq` (appl_3 `pseq` kl_put kl_V2389 (ApplC (wrapNamed "shen.internal-symbols" kl_shen_internal_symbols)) appl_2 appl_3))
-
-kl_shen_internal_symbols :: Types.KLValue ->
-                            Types.KLValue -> Types.KLContext Types.Env Types.KLValue
-kl_shen_internal_symbols (!kl_V2401) (!kl_V2402) = do !kl_if_0 <- kl_V2402 `pseq` kl_symbolP kl_V2402
-                                                      !kl_if_1 <- case kl_if_0 of
-                                                                      Atom (B (True)) -> do !appl_2 <- kl_V2402 `pseq` kl_explode kl_V2402
-                                                                                            !kl_if_3 <- kl_V2401 `pseq` (appl_2 `pseq` kl_shen_prefixP kl_V2401 appl_2)
-                                                                                            case kl_if_3 of
-                                                                                                Atom (B (True)) -> do return (Atom (B True))
-                                                                                                Atom (B (False)) -> do do return (Atom (B False))
-                                                                                                _ -> throwError "if: expected boolean"
-                                                                      Atom (B (False)) -> do do return (Atom (B False))
-                                                                      _ -> throwError "if: expected boolean"
-                                                      case kl_if_1 of
-                                                          Atom (B (True)) -> do kl_V2402 `pseq` klCons kl_V2402 (Types.Atom Types.Nil)
-                                                          Atom (B (False)) -> do let pat_cond_4 kl_V2402 kl_V2402h kl_V2402t = do !appl_5 <- kl_V2401 `pseq` (kl_V2402h `pseq` kl_shen_internal_symbols kl_V2401 kl_V2402h)
-                                                                                                                                  !appl_6 <- kl_V2401 `pseq` (kl_V2402t `pseq` kl_shen_internal_symbols kl_V2401 kl_V2402t)
-                                                                                                                                  appl_5 `pseq` (appl_6 `pseq` kl_union appl_5 appl_6)
-                                                                                     pat_cond_7 = do do return (Types.Atom Types.Nil)
-                                                                                  in case kl_V2402 of
-                                                                                         !(kl_V2402@(Cons (!kl_V2402h)
-                                                                                                          (!kl_V2402t))) -> pat_cond_4 kl_V2402 kl_V2402h kl_V2402t
-                                                                                         _ -> pat_cond_7
-                                                          _ -> throwError "if: expected boolean"
-
-kl_shen_packageh :: Types.KLValue ->
-                    Types.KLValue ->
-                    Types.KLValue ->
-                    Types.KLValue -> Types.KLContext Types.Env Types.KLValue
-kl_shen_packageh (!kl_V2419) (!kl_V2420) (!kl_V2421) (!kl_V2422) = do let pat_cond_0 kl_V2421 kl_V2421h kl_V2421t = do !appl_1 <- kl_V2419 `pseq` (kl_V2420 `pseq` (kl_V2421h `pseq` (kl_V2422 `pseq` kl_shen_packageh kl_V2419 kl_V2420 kl_V2421h kl_V2422)))
-                                                                                                                       !appl_2 <- kl_V2419 `pseq` (kl_V2420 `pseq` (kl_V2421t `pseq` (kl_V2422 `pseq` kl_shen_packageh kl_V2419 kl_V2420 kl_V2421t kl_V2422)))
-                                                                                                                       appl_1 `pseq` (appl_2 `pseq` klCons appl_1 appl_2)
-                                                                          pat_cond_3 = do !kl_if_4 <- kl_V2421 `pseq` kl_shen_sysfuncP kl_V2421
-                                                                                          !kl_if_5 <- case kl_if_4 of
-                                                                                                          Atom (B (True)) -> do return (Atom (B True))
-                                                                                                          Atom (B (False)) -> do do !kl_if_6 <- kl_V2421 `pseq` kl_variableP kl_V2421
-                                                                                                                                    !kl_if_7 <- case kl_if_6 of
-                                                                                                                                                    Atom (B (True)) -> do return (Atom (B True))
-                                                                                                                                                    Atom (B (False)) -> do do !kl_if_8 <- kl_V2421 `pseq` (kl_V2420 `pseq` kl_elementP kl_V2421 kl_V2420)
-                                                                                                                                                                              !kl_if_9 <- case kl_if_8 of
-                                                                                                                                                                                              Atom (B (True)) -> do return (Atom (B True))
-                                                                                                                                                                                              Atom (B (False)) -> do do !kl_if_10 <- kl_V2421 `pseq` kl_shen_doubleunderlineP kl_V2421
-                                                                                                                                                                                                                        !kl_if_11 <- case kl_if_10 of
-                                                                                                                                                                                                                                         Atom (B (True)) -> do return (Atom (B True))
-                                                                                                                                                                                                                                         Atom (B (False)) -> do do !kl_if_12 <- kl_V2421 `pseq` kl_shen_singleunderlineP kl_V2421
-                                                                                                                                                                                                                                                                   case kl_if_12 of
-                                                                                                                                                                                                                                                                       Atom (B (True)) -> do return (Atom (B True))
-                                                                                                                                                                                                                                                                       Atom (B (False)) -> do do return (Atom (B False))
-                                                                                                                                                                                                                                                                       _ -> throwError "if: expected boolean"
-                                                                                                                                                                                                                                         _ -> throwError "if: expected boolean"
-                                                                                                                                                                                                                        case kl_if_11 of
-                                                                                                                                                                                                                            Atom (B (True)) -> do return (Atom (B True))
-                                                                                                                                                                                                                            Atom (B (False)) -> do do return (Atom (B False))
-                                                                                                                                                                                                                            _ -> throwError "if: expected boolean"
-                                                                                                                                                                                              _ -> throwError "if: expected boolean"
-                                                                                                                                                                              case kl_if_9 of
-                                                                                                                                                                                  Atom (B (True)) -> do return (Atom (B True))
-                                                                                                                                                                                  Atom (B (False)) -> do do return (Atom (B False))
-                                                                                                                                                                                  _ -> throwError "if: expected boolean"
-                                                                                                                                                    _ -> throwError "if: expected boolean"
-                                                                                                                                    case kl_if_7 of
-                                                                                                                                        Atom (B (True)) -> do return (Atom (B True))
-                                                                                                                                        Atom (B (False)) -> do do return (Atom (B False))
-                                                                                                                                        _ -> throwError "if: expected boolean"
-                                                                                                          _ -> throwError "if: expected boolean"
-                                                                                          case kl_if_5 of
-                                                                                              Atom (B (True)) -> do return kl_V2421
-                                                                                              Atom (B (False)) -> do !kl_if_13 <- kl_V2421 `pseq` kl_symbolP kl_V2421
-                                                                                                                     !kl_if_14 <- case kl_if_13 of
-                                                                                                                                      Atom (B (True)) -> do let !appl_15 = ApplC (Func "lambda" (Context (\(!kl_ExplodeX) -> do !appl_16 <- klCons (Types.Atom (Types.Str ".")) (Types.Atom Types.Nil)
-                                                                                                                                                                                                                                !appl_17 <- appl_16 `pseq` klCons (Types.Atom (Types.Str "n")) appl_16
-                                                                                                                                                                                                                                !appl_18 <- appl_17 `pseq` klCons (Types.Atom (Types.Str "e")) appl_17
-                                                                                                                                                                                                                                !appl_19 <- appl_18 `pseq` klCons (Types.Atom (Types.Str "h")) appl_18
-                                                                                                                                                                                                                                !appl_20 <- appl_19 `pseq` klCons (Types.Atom (Types.Str "s")) appl_19
-                                                                                                                                                                                                                                !appl_21 <- appl_20 `pseq` (kl_ExplodeX `pseq` kl_shen_prefixP appl_20 kl_ExplodeX)
-                                                                                                                                                                                                                                !kl_if_22 <- appl_21 `pseq` kl_not appl_21
-                                                                                                                                                                                                                                case kl_if_22 of
-                                                                                                                                                                                                                                    Atom (B (True)) -> do !appl_23 <- kl_V2422 `pseq` (kl_ExplodeX `pseq` kl_shen_prefixP kl_V2422 kl_ExplodeX)
-                                                                                                                                                                                                                                                          !kl_if_24 <- appl_23 `pseq` kl_not appl_23
-                                                                                                                                                                                                                                                          case kl_if_24 of
-                                                                                                                                                                                                                                                              Atom (B (True)) -> do return (Atom (B True))
-                                                                                                                                                                                                                                                              Atom (B (False)) -> do do return (Atom (B False))
-                                                                                                                                                                                                                                                              _ -> throwError "if: expected boolean"
-                                                                                                                                                                                                                                    Atom (B (False)) -> do do return (Atom (B False))
-                                                                                                                                                                                                                                    _ -> throwError "if: expected boolean")))
-                                                                                                                                                            !appl_25 <- kl_V2421 `pseq` kl_explode kl_V2421
-                                                                                                                                                            !kl_if_26 <- appl_25 `pseq` applyWrapper appl_15 [appl_25]
-                                                                                                                                                            case kl_if_26 of
-                                                                                                                                                                Atom (B (True)) -> do return (Atom (B True))
-                                                                                                                                                                Atom (B (False)) -> do do return (Atom (B False))
-                                                                                                                                                                _ -> throwError "if: expected boolean"
-                                                                                                                                      Atom (B (False)) -> do do return (Atom (B False))
-                                                                                                                                      _ -> throwError "if: expected boolean"
-                                                                                                                     case kl_if_14 of
-                                                                                                                         Atom (B (True)) -> do kl_V2419 `pseq` (kl_V2421 `pseq` kl_concat kl_V2419 kl_V2421)
-                                                                                                                         Atom (B (False)) -> do do return kl_V2421
-                                                                                                                         _ -> throwError "if: expected boolean"
-                                                                                              _ -> throwError "if: expected boolean"
-                                                                       in case kl_V2421 of
-                                                                              !(kl_V2421@(Cons (!kl_V2421h)
-                                                                                               (!kl_V2421t))) -> pat_cond_0 kl_V2421 kl_V2421h kl_V2421t
-                                                                              _ -> pat_cond_3
-
-expr5 :: Types.KLContext Types.Env Types.KLValue
-expr5 = do (do return (Types.Atom (Types.Str "Copyright (c) 2015, Mark Tarver\n\nAll rights reserved.\n\nRedistribution and use in source and binary forms, with or without\nmodification, are permitted provided that the following conditions are met:\n1. Redistributions of source code must retain the above copyright\n   notice, this list of conditions and the following disclaimer.\n2. Redistributions in binary form must reproduce the above copyright\n   notice, this list of conditions and the following disclaimer in the\n   documentation and/or other materials provided with the distribution.\n3. The name of Mark Tarver may not be used to endorse or promote products\n   derived from this software without specific prior written permission.\n\nTHIS SOFTWARE IS PROVIDED BY Mark Tarver ''AS IS'' AND ANY\nEXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED\nWARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE\nDISCLAIMED. IN NO EVENT SHALL Mark Tarver BE LIABLE FOR ANY\nDIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES\n(INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;\nLOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND\nON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT\n(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS\nSOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE."))) `catchError` (\(!kl_E) -> do return (Types.Atom (Types.Str "E")))
+{-# LANGUAGE BangPatterns #-}+{-# LANGUAGE OverloadedStrings #-}+{-# LANGUAGE Strict #-}+{-# LANGUAGE StrictData #-}+{-# LANGUAGE ViewPatterns #-}++module Backend.Reader where++import Control.Monad.Except+import Control.Parallel+import Environment+import Core.Primitives as Primitives+import Backend.Utils+import Core.Types+import Core.Utils+import Wrap+import Backend.Toplevel+import Backend.Core+import Backend.Sys+import Backend.Sequent+import Backend.Yacc++{-+Copyright (c) 2015, Mark Tarver+All rights reserved.++Redistribution and use in source and binary forms, with or without+modification, are permitted provided that the following conditions are met:++1. Redistributions of source code must retain the above copyright+   notice, this list of conditions and the following disclaimer.+2. Redistributions in binary form must reproduce the above copyright+   notice, this list of conditions and the following disclaimer in the+   documentation and/or other materials provided with the distribution.+3. The name of Mark Tarver may not be used to endorse or promote products+   derived from this software without specific prior written permission.++THIS SOFTWARE IS PROVIDED BY Mark Tarver ''AS IS'' AND ANY+EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED+WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE+DISCLAIMED. IN NO EVENT SHALL Mark Tarver BE LIABLE FOR ANY+DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES+(INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;+LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND+ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT+(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS+SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.+-}++kl_read_char_code :: Core.Types.KLValue ->+                     Core.Types.KLContext Core.Types.Env Core.Types.KLValue+kl_read_char_code (!kl_V2163) = do kl_V2163 `pseq` readByte kl_V2163++kl_read_file_as_bytelist :: Core.Types.KLValue ->+                            Core.Types.KLContext Core.Types.Env Core.Types.KLValue+kl_read_file_as_bytelist (!kl_V2165) = do let !appl_0 = ApplC (Func "lambda" (Context (\(!kl_S) -> do kl_S `pseq` readByte kl_S)))+                                          kl_V2165 `pseq` (appl_0 `pseq` kl_shen_read_file_as_Xlist kl_V2165 appl_0)++kl_read_file_as_charlist :: Core.Types.KLValue ->+                            Core.Types.KLContext Core.Types.Env Core.Types.KLValue+kl_read_file_as_charlist (!kl_V2167) = do let !appl_0 = ApplC (Func "lambda" (Context (\(!kl_S) -> do kl_S `pseq` kl_read_char_code kl_S)))+                                          kl_V2167 `pseq` (appl_0 `pseq` kl_shen_read_file_as_Xlist kl_V2167 appl_0)++kl_shen_read_file_as_Xlist :: Core.Types.KLValue ->+                              Core.Types.KLValue ->+                              Core.Types.KLContext Core.Types.Env Core.Types.KLValue+kl_shen_read_file_as_Xlist (!kl_V2170) (!kl_V2171) = do let !appl_0 = ApplC (Func "lambda" (Context (\(!kl_Stream) -> do let !appl_1 = ApplC (Func "lambda" (Context (\(!kl_X) -> do let !appl_2 = ApplC (Func "lambda" (Context (\(!kl_Xs) -> do let !appl_3 = ApplC (Func "lambda" (Context (\(!kl_Close) -> do kl_Xs `pseq` kl_reverse kl_Xs)))+                                                                                                                                                                                                                                                  !appl_4 <- kl_Stream `pseq` closeStream kl_Stream+                                                                                                                                                                                                                                                  appl_4 `pseq` applyWrapper appl_3 [appl_4])))+                                                                                                                                                                                     let !appl_5 = Atom Nil+                                                                                                                                                                                     !appl_6 <- kl_Stream `pseq` (kl_V2171 `pseq` (kl_X `pseq` (appl_5 `pseq` kl_shen_read_file_as_Xlist_help kl_Stream kl_V2171 kl_X appl_5)))+                                                                                                                                                                                     appl_6 `pseq` applyWrapper appl_2 [appl_6])))+                                                                                                                         !appl_7 <- kl_Stream `pseq` applyWrapper kl_V2171 [kl_Stream]+                                                                                                                         appl_7 `pseq` applyWrapper appl_1 [appl_7])))+                                                        !appl_8 <- kl_V2170 `pseq` openStream kl_V2170 (Core.Types.Atom (Core.Types.UnboundSym "in"))+                                                        appl_8 `pseq` applyWrapper appl_0 [appl_8]++kl_shen_read_file_as_Xlist_help :: Core.Types.KLValue ->+                                   Core.Types.KLValue ->+                                   Core.Types.KLValue ->+                                   Core.Types.KLValue ->+                                   Core.Types.KLContext Core.Types.Env Core.Types.KLValue+kl_shen_read_file_as_Xlist_help (!kl_V2176) (!kl_V2177) (!kl_V2178) (!kl_V2179) = do let pat_cond_0 = do return kl_V2179+                                                                                         pat_cond_1 = do do !appl_2 <- kl_V2176 `pseq` applyWrapper kl_V2177 [kl_V2176]+                                                                                                            !appl_3 <- kl_V2178 `pseq` (kl_V2179 `pseq` klCons kl_V2178 kl_V2179)+                                                                                                            kl_V2176 `pseq` (kl_V2177 `pseq` (appl_2 `pseq` (appl_3 `pseq` kl_shen_read_file_as_Xlist_help kl_V2176 kl_V2177 appl_2 appl_3)))+                                                                                      in case kl_V2178 of+                                                                                             kl_V2178@(Atom (N (KI (-1)))) -> pat_cond_0+                                                                                             _ -> pat_cond_1++kl_read_file_as_string :: Core.Types.KLValue ->+                          Core.Types.KLContext Core.Types.Env Core.Types.KLValue+kl_read_file_as_string (!kl_V2181) = do let !appl_0 = ApplC (Func "lambda" (Context (\(!kl_Stream) -> do !appl_1 <- kl_Stream `pseq` kl_read_char_code kl_Stream+                                                                                                         kl_Stream `pseq` (appl_1 `pseq` kl_shen_rfas_h kl_Stream appl_1 (Core.Types.Atom (Core.Types.Str ""))))))+                                        !appl_2 <- kl_V2181 `pseq` openStream kl_V2181 (Core.Types.Atom (Core.Types.UnboundSym "in"))+                                        appl_2 `pseq` applyWrapper appl_0 [appl_2]++kl_shen_rfas_h :: Core.Types.KLValue ->+                  Core.Types.KLValue ->+                  Core.Types.KLValue ->+                  Core.Types.KLContext Core.Types.Env Core.Types.KLValue+kl_shen_rfas_h (!kl_V2185) (!kl_V2186) (!kl_V2187) = do let pat_cond_0 = do !appl_1 <- kl_V2185 `pseq` closeStream kl_V2185+                                                                            appl_1 `pseq` (kl_V2187 `pseq` kl_do appl_1 kl_V2187)+                                                            pat_cond_2 = do do !appl_3 <- kl_V2185 `pseq` kl_read_char_code kl_V2185+                                                                               !appl_4 <- kl_V2186 `pseq` nToString kl_V2186+                                                                               !appl_5 <- kl_V2187 `pseq` (appl_4 `pseq` cn kl_V2187 appl_4)+                                                                               kl_V2185 `pseq` (appl_3 `pseq` (appl_5 `pseq` kl_shen_rfas_h kl_V2185 appl_3 appl_5))+                                                         in case kl_V2186 of+                                                                kl_V2186@(Atom (N (KI (-1)))) -> pat_cond_0+                                                                _ -> pat_cond_2++kl_input :: Core.Types.KLValue ->+            Core.Types.KLContext Core.Types.Env Core.Types.KLValue+kl_input (!kl_V2189) = do !appl_0 <- kl_V2189 `pseq` kl_read kl_V2189+                          appl_0 `pseq` evalKL appl_0++kl_inputPlus :: Core.Types.KLValue ->+                Core.Types.KLValue ->+                Core.Types.KLContext Core.Types.Env Core.Types.KLValue+kl_inputPlus (!kl_V2192) (!kl_V2193) = do let !appl_0 = ApplC (Func "lambda" (Context (\(!kl_MonoP) -> do let !appl_1 = ApplC (Func "lambda" (Context (\(!kl_Input) -> do let !aw_2 = Core.Types.Atom (Core.Types.UnboundSym "shen.demodulate")+                                                                                                                                                                          !appl_3 <- kl_V2192 `pseq` applyWrapper aw_2 [kl_V2192]+                                                                                                                                                                          let !aw_4 = Core.Types.Atom (Core.Types.UnboundSym "shen.typecheck")+                                                                                                                                                                          !appl_5 <- kl_Input `pseq` (appl_3 `pseq` applyWrapper aw_4 [kl_Input,+                                                                                                                                                                                                                                       appl_3])+                                                                                                                                                                          !kl_if_6 <- appl_5 `pseq` eq (Atom (B False)) appl_5+                                                                                                                                                                          case kl_if_6 of+                                                                                                                                                                              Atom (B (True)) -> do let !aw_7 = Core.Types.Atom (Core.Types.UnboundSym "shen.app")+                                                                                                                                                                                                    !appl_8 <- kl_V2192 `pseq` applyWrapper aw_7 [kl_V2192,+                                                                                                                                                                                                                                                  Core.Types.Atom (Core.Types.Str "\n"),+                                                                                                                                                                                                                                                  Core.Types.Atom (Core.Types.UnboundSym "shen.r")]+                                                                                                                                                                                                    !appl_9 <- appl_8 `pseq` cn (Core.Types.Atom (Core.Types.Str " is not of type ")) appl_8+                                                                                                                                                                                                    let !aw_10 = Core.Types.Atom (Core.Types.UnboundSym "shen.app")+                                                                                                                                                                                                    !appl_11 <- kl_Input `pseq` (appl_9 `pseq` applyWrapper aw_10 [kl_Input,+                                                                                                                                                                                                                                                                   appl_9,+                                                                                                                                                                                                                                                                   Core.Types.Atom (Core.Types.UnboundSym "shen.r")])+                                                                                                                                                                                                    !appl_12 <- appl_11 `pseq` cn (Core.Types.Atom (Core.Types.Str "type error: ")) appl_11+                                                                                                                                                                                                    appl_12 `pseq` simpleError appl_12+                                                                                                                                                                              Atom (B (False)) -> do do kl_Input `pseq` evalKL kl_Input+                                                                                                                                                                              _ -> throwError "if: expected boolean")))+                                                                                                          !appl_13 <- kl_V2193 `pseq` kl_read kl_V2193+                                                                                                          appl_13 `pseq` applyWrapper appl_1 [appl_13])))+                                          !appl_14 <- kl_V2192 `pseq` kl_shen_monotype kl_V2192+                                          appl_14 `pseq` applyWrapper appl_0 [appl_14]++kl_shen_monotype :: Core.Types.KLValue ->+                    Core.Types.KLContext Core.Types.Env Core.Types.KLValue+kl_shen_monotype (!kl_V2195) = do let pat_cond_0 kl_V2195 kl_V2195h kl_V2195t = do let !appl_1 = ApplC (Func "lambda" (Context (\(!kl_Z) -> do kl_Z `pseq` kl_shen_monotype kl_Z)))+                                                                                   appl_1 `pseq` (kl_V2195 `pseq` kl_map appl_1 kl_V2195)+                                      pat_cond_2 = do do !kl_if_3 <- kl_V2195 `pseq` kl_variableP kl_V2195+                                                         case kl_if_3 of+                                                             Atom (B (True)) -> do let !aw_4 = Core.Types.Atom (Core.Types.UnboundSym "shen.app")+                                                                                   !appl_5 <- kl_V2195 `pseq` applyWrapper aw_4 [kl_V2195,+                                                                                                                                 Core.Types.Atom (Core.Types.Str "\n"),+                                                                                                                                 Core.Types.Atom (Core.Types.UnboundSym "shen.a")]+                                                                                   !appl_6 <- appl_5 `pseq` cn (Core.Types.Atom (Core.Types.Str "input+ expects a monotype: not ")) appl_5+                                                                                   appl_6 `pseq` simpleError appl_6+                                                             Atom (B (False)) -> do do return kl_V2195+                                                             _ -> throwError "if: expected boolean"+                                   in case kl_V2195 of+                                          !(kl_V2195@(Cons (!kl_V2195h)+                                                           (!kl_V2195t))) -> pat_cond_0 kl_V2195 kl_V2195h kl_V2195t+                                          _ -> pat_cond_2++kl_read :: Core.Types.KLValue ->+           Core.Types.KLContext Core.Types.Env Core.Types.KLValue+kl_read (!kl_V2197) = do !appl_0 <- kl_V2197 `pseq` kl_read_char_code kl_V2197+                         let !appl_1 = Atom Nil+                         !appl_2 <- kl_V2197 `pseq` (appl_0 `pseq` (appl_1 `pseq` kl_shen_read_loop kl_V2197 appl_0 appl_1))+                         appl_2 `pseq` hd appl_2++kl_it :: Core.Types.KLContext Core.Types.Env Core.Types.KLValue+kl_it = do value (Core.Types.Atom (Core.Types.UnboundSym "shen.*it*"))++kl_shen_read_loop :: Core.Types.KLValue ->+                     Core.Types.KLValue ->+                     Core.Types.KLValue ->+                     Core.Types.KLContext Core.Types.Env Core.Types.KLValue+kl_shen_read_loop (!kl_V2205) (!kl_V2206) (!kl_V2207) = do let pat_cond_0 = do simpleError (Core.Types.Atom (Core.Types.Str "read aborted"))+                                                               pat_cond_1 = do !kl_if_2 <- kl_V2207 `pseq` kl_emptyP kl_V2207+                                                                               case kl_if_2 of+                                                                                   Atom (B (True)) -> do simpleError (Core.Types.Atom (Core.Types.Str "error: empty stream"))+                                                                                   Atom (B (False)) -> do do let !appl_3 = ApplC (Func "lambda" (Context (\(!kl_X) -> do kl_X `pseq` kl_shen_LBst_inputRB kl_X)))+                                                                                                             let !appl_4 = ApplC (Func "lambda" (Context (\(!kl_E) -> do return kl_E)))+                                                                                                             appl_3 `pseq` (kl_V2207 `pseq` (appl_4 `pseq` kl_compile appl_3 kl_V2207 appl_4))+                                                                                   _ -> throwError "if: expected boolean"+                                                               pat_cond_5 = do !kl_if_6 <- kl_V2206 `pseq` kl_shen_terminatorP kl_V2206+                                                                               case kl_if_6 of+                                                                                   Atom (B (True)) -> do let !appl_7 = ApplC (Func "lambda" (Context (\(!kl_AllChars) -> do let !appl_8 = ApplC (Func "lambda" (Context (\(!kl_It) -> do let !appl_9 = ApplC (Func "lambda" (Context (\(!kl_Read) -> do !kl_if_10 <- let pat_cond_11 = do return (Atom (B True))+                                                                                                                                                                                                                                                                                                                         pat_cond_12 = do do !kl_if_13 <- kl_Read `pseq` kl_emptyP kl_Read+                                                                                                                                                                                                                                                                                                                                             case kl_if_13 of+                                                                                                                                                                                                                                                                                                                                                 Atom (B (True)) -> do return (Atom (B True))+                                                                                                                                                                                                                                                                                                                                                 Atom (B (False)) -> do do return (Atom (B False))+                                                                                                                                                                                                                                                                                                                                                 _ -> throwError "if: expected boolean"+                                                                                                                                                                                                                                                                                                                      in case kl_Read of+                                                                                                                                                                                                                                                                                                                             kl_Read@(Atom (UnboundSym "shen.nextbyte")) -> pat_cond_11+                                                                                                                                                                                                                                                                                                                             kl_Read@(ApplC (PL "shen.nextbyte"+                                                                                                                                                                                                                                                                                                                                                _)) -> pat_cond_11+                                                                                                                                                                                                                                                                                                                             kl_Read@(ApplC (Func "shen.nextbyte"+                                                                                                                                                                                                                                                                                                                                                  _)) -> pat_cond_11+                                                                                                                                                                                                                                                                                                                             _ -> pat_cond_12+                                                                                                                                                                                                                                                                                                        case kl_if_10 of+                                                                                                                                                                                                                                                                                                            Atom (B (True)) -> do !appl_14 <- kl_V2205 `pseq` kl_read_char_code kl_V2205+                                                                                                                                                                                                                                                                                                                                  kl_V2205 `pseq` (appl_14 `pseq` (kl_AllChars `pseq` kl_shen_read_loop kl_V2205 appl_14 kl_AllChars))+                                                                                                                                                                                                                                                                                                            Atom (B (False)) -> do do return kl_Read+                                                                                                                                                                                                                                                                                                            _ -> throwError "if: expected boolean")))+                                                                                                                                                                                                                                         let !appl_15 = ApplC (Func "lambda" (Context (\(!kl_X) -> do kl_X `pseq` kl_shen_LBst_inputRB kl_X)))+                                                                                                                                                                                                                                         let !appl_16 = ApplC (Func "lambda" (Context (\(!kl_E) -> do return (Core.Types.Atom (Core.Types.UnboundSym "shen.nextbyte")))))+                                                                                                                                                                                                                                         !appl_17 <- appl_15 `pseq` (kl_AllChars `pseq` (appl_16 `pseq` kl_compile appl_15 kl_AllChars appl_16))+                                                                                                                                                                                                                                         appl_17 `pseq` applyWrapper appl_9 [appl_17])))+                                                                                                                                                                            !appl_18 <- kl_AllChars `pseq` kl_shen_record_it kl_AllChars+                                                                                                                                                                            appl_18 `pseq` applyWrapper appl_8 [appl_18])))+                                                                                                         let !appl_19 = Atom Nil+                                                                                                         !appl_20 <- kl_V2206 `pseq` (appl_19 `pseq` klCons kl_V2206 appl_19)+                                                                                                         !appl_21 <- kl_V2207 `pseq` (appl_20 `pseq` kl_append kl_V2207 appl_20)+                                                                                                         appl_21 `pseq` applyWrapper appl_7 [appl_21]+                                                                                   Atom (B (False)) -> do do !appl_22 <- kl_V2205 `pseq` kl_read_char_code kl_V2205+                                                                                                             let !appl_23 = Atom Nil+                                                                                                             !appl_24 <- kl_V2206 `pseq` (appl_23 `pseq` klCons kl_V2206 appl_23)+                                                                                                             !appl_25 <- kl_V2207 `pseq` (appl_24 `pseq` kl_append kl_V2207 appl_24)+                                                                                                             kl_V2205 `pseq` (appl_22 `pseq` (appl_25 `pseq` kl_shen_read_loop kl_V2205 appl_22 appl_25))+                                                                                   _ -> throwError "if: expected boolean"+                                                            in case kl_V2206 of+                                                                   kl_V2206@(Atom (N (KI 94))) -> pat_cond_0+                                                                   kl_V2206@(Atom (N (KI (-1)))) -> pat_cond_1+                                                                   _ -> pat_cond_5++kl_shen_terminatorP :: Core.Types.KLValue ->+                       Core.Types.KLContext Core.Types.Env Core.Types.KLValue+kl_shen_terminatorP (!kl_V2209) = do let !appl_0 = Atom Nil+                                     !appl_1 <- appl_0 `pseq` klCons (Core.Types.Atom (Core.Types.N (Core.Types.KI 93))) appl_0+                                     !appl_2 <- appl_1 `pseq` klCons (Core.Types.Atom (Core.Types.N (Core.Types.KI 41))) appl_1+                                     !appl_3 <- appl_2 `pseq` klCons (Core.Types.Atom (Core.Types.N (Core.Types.KI 34))) appl_2+                                     !appl_4 <- appl_3 `pseq` klCons (Core.Types.Atom (Core.Types.N (Core.Types.KI 32))) appl_3+                                     !appl_5 <- appl_4 `pseq` klCons (Core.Types.Atom (Core.Types.N (Core.Types.KI 13))) appl_4+                                     !appl_6 <- appl_5 `pseq` klCons (Core.Types.Atom (Core.Types.N (Core.Types.KI 10))) appl_5+                                     !appl_7 <- appl_6 `pseq` klCons (Core.Types.Atom (Core.Types.N (Core.Types.KI 9))) appl_6+                                     kl_V2209 `pseq` (appl_7 `pseq` kl_elementP kl_V2209 appl_7)++kl_lineread :: Core.Types.KLValue ->+               Core.Types.KLContext Core.Types.Env Core.Types.KLValue+kl_lineread (!kl_V2211) = do !appl_0 <- kl_V2211 `pseq` kl_read_char_code kl_V2211+                             let !appl_1 = Atom Nil+                             appl_0 `pseq` (appl_1 `pseq` (kl_V2211 `pseq` kl_shen_lineread_loop appl_0 appl_1 kl_V2211))++kl_shen_lineread_loop :: Core.Types.KLValue ->+                         Core.Types.KLValue ->+                         Core.Types.KLValue ->+                         Core.Types.KLContext Core.Types.Env Core.Types.KLValue+kl_shen_lineread_loop (!kl_V2216) (!kl_V2217) (!kl_V2218) = do let pat_cond_0 = do !kl_if_1 <- kl_V2217 `pseq` kl_emptyP kl_V2217+                                                                                   case kl_if_1 of+                                                                                       Atom (B (True)) -> do simpleError (Core.Types.Atom (Core.Types.Str "empty stream"))+                                                                                       Atom (B (False)) -> do do let !appl_2 = ApplC (Func "lambda" (Context (\(!kl_X) -> do kl_X `pseq` kl_shen_LBst_inputRB kl_X)))+                                                                                                                 let !appl_3 = ApplC (Func "lambda" (Context (\(!kl_E) -> do return kl_E)))+                                                                                                                 appl_2 `pseq` (kl_V2217 `pseq` (appl_3 `pseq` kl_compile appl_2 kl_V2217 appl_3))+                                                                                       _ -> throwError "if: expected boolean"+                                                                   pat_cond_4 = do !appl_5 <- kl_shen_hat+                                                                                   !kl_if_6 <- kl_V2216 `pseq` (appl_5 `pseq` eq kl_V2216 appl_5)+                                                                                   case kl_if_6 of+                                                                                       Atom (B (True)) -> do simpleError (Core.Types.Atom (Core.Types.Str "line read aborted"))+                                                                                       Atom (B (False)) -> do !appl_7 <- kl_shen_newline+                                                                                                              !appl_8 <- kl_shen_carriage_return+                                                                                                              let !appl_9 = Atom Nil+                                                                                                              !appl_10 <- appl_8 `pseq` (appl_9 `pseq` klCons appl_8 appl_9)+                                                                                                              !appl_11 <- appl_7 `pseq` (appl_10 `pseq` klCons appl_7 appl_10)+                                                                                                              !kl_if_12 <- kl_V2216 `pseq` (appl_11 `pseq` kl_elementP kl_V2216 appl_11)+                                                                                                              case kl_if_12 of+                                                                                                                  Atom (B (True)) -> do let !appl_13 = ApplC (Func "lambda" (Context (\(!kl_Line) -> do let !appl_14 = ApplC (Func "lambda" (Context (\(!kl_It) -> do !kl_if_15 <- let pat_cond_16 = do return (Atom (B True))+                                                                                                                                                                                                                                                                                       pat_cond_17 = do do !kl_if_18 <- kl_Line `pseq` kl_emptyP kl_Line+                                                                                                                                                                                                                                                                                                           case kl_if_18 of+                                                                                                                                                                                                                                                                                                               Atom (B (True)) -> do return (Atom (B True))+                                                                                                                                                                                                                                                                                                               Atom (B (False)) -> do do return (Atom (B False))+                                                                                                                                                                                                                                                                                                               _ -> throwError "if: expected boolean"+                                                                                                                                                                                                                                                                                    in case kl_Line of+                                                                                                                                                                                                                                                                                           kl_Line@(Atom (UnboundSym "shen.nextline")) -> pat_cond_16+                                                                                                                                                                                                                                                                                           kl_Line@(ApplC (PL "shen.nextline"+                                                                                                                                                                                                                                                                                                              _)) -> pat_cond_16+                                                                                                                                                                                                                                                                                           kl_Line@(ApplC (Func "shen.nextline"+                                                                                                                                                                                                                                                                                                                _)) -> pat_cond_16+                                                                                                                                                                                                                                                                                           _ -> pat_cond_17+                                                                                                                                                                                                                                                                      case kl_if_15 of+                                                                                                                                                                                                                                                                          Atom (B (True)) -> do !appl_19 <- kl_V2218 `pseq` kl_read_char_code kl_V2218+                                                                                                                                                                                                                                                                                                let !appl_20 = Atom Nil+                                                                                                                                                                                                                                                                                                !appl_21 <- kl_V2216 `pseq` (appl_20 `pseq` klCons kl_V2216 appl_20)+                                                                                                                                                                                                                                                                                                !appl_22 <- kl_V2217 `pseq` (appl_21 `pseq` kl_append kl_V2217 appl_21)+                                                                                                                                                                                                                                                                                                appl_19 `pseq` (appl_22 `pseq` (kl_V2218 `pseq` kl_shen_lineread_loop appl_19 appl_22 kl_V2218))+                                                                                                                                                                                                                                                                          Atom (B (False)) -> do do return kl_Line+                                                                                                                                                                                                                                                                          _ -> throwError "if: expected boolean")))+                                                                                                                                                                                                        !appl_23 <- kl_V2217 `pseq` kl_shen_record_it kl_V2217+                                                                                                                                                                                                        appl_23 `pseq` applyWrapper appl_14 [appl_23])))+                                                                                                                                        let !appl_24 = ApplC (Func "lambda" (Context (\(!kl_X) -> do kl_X `pseq` kl_shen_LBst_inputRB kl_X)))+                                                                                                                                        let !appl_25 = ApplC (Func "lambda" (Context (\(!kl_E) -> do return (Core.Types.Atom (Core.Types.UnboundSym "shen.nextline")))))+                                                                                                                                        !appl_26 <- appl_24 `pseq` (kl_V2217 `pseq` (appl_25 `pseq` kl_compile appl_24 kl_V2217 appl_25))+                                                                                                                                        appl_26 `pseq` applyWrapper appl_13 [appl_26]+                                                                                                                  Atom (B (False)) -> do do !appl_27 <- kl_V2218 `pseq` kl_read_char_code kl_V2218+                                                                                                                                            let !appl_28 = Atom Nil+                                                                                                                                            !appl_29 <- kl_V2216 `pseq` (appl_28 `pseq` klCons kl_V2216 appl_28)+                                                                                                                                            !appl_30 <- kl_V2217 `pseq` (appl_29 `pseq` kl_append kl_V2217 appl_29)+                                                                                                                                            appl_27 `pseq` (appl_30 `pseq` (kl_V2218 `pseq` kl_shen_lineread_loop appl_27 appl_30 kl_V2218))+                                                                                                                  _ -> throwError "if: expected boolean"+                                                                                       _ -> throwError "if: expected boolean"+                                                                in case kl_V2216 of+                                                                       kl_V2216@(Atom (N (KI (-1)))) -> pat_cond_0+                                                                       _ -> pat_cond_4++kl_shen_record_it :: Core.Types.KLValue ->+                     Core.Types.KLContext Core.Types.Env Core.Types.KLValue+kl_shen_record_it (!kl_V2220) = do let !appl_0 = ApplC (Func "lambda" (Context (\(!kl_TrimLeft) -> do let !appl_1 = ApplC (Func "lambda" (Context (\(!kl_TrimRight) -> do let !appl_2 = ApplC (Func "lambda" (Context (\(!kl_Trimmed) -> do kl_Trimmed `pseq` kl_shen_record_it_h kl_Trimmed)))+                                                                                                                                                                          !appl_3 <- kl_TrimRight `pseq` kl_reverse kl_TrimRight+                                                                                                                                                                          appl_3 `pseq` applyWrapper appl_2 [appl_3])))+                                                                                                      !appl_4 <- kl_TrimLeft `pseq` kl_reverse kl_TrimLeft+                                                                                                      !appl_5 <- appl_4 `pseq` kl_shen_trim_whitespace appl_4+                                                                                                      appl_5 `pseq` applyWrapper appl_1 [appl_5])))+                                   !appl_6 <- kl_V2220 `pseq` kl_shen_trim_whitespace kl_V2220+                                   appl_6 `pseq` applyWrapper appl_0 [appl_6]++kl_shen_trim_whitespace :: Core.Types.KLValue ->+                           Core.Types.KLContext Core.Types.Env Core.Types.KLValue+kl_shen_trim_whitespace (!kl_V2222) = do !kl_if_0 <- let pat_cond_1 kl_V2222 kl_V2222h kl_V2222t = do let !appl_2 = Atom Nil+                                                                                                      !appl_3 <- appl_2 `pseq` klCons (Core.Types.Atom (Core.Types.N (Core.Types.KI 32))) appl_2+                                                                                                      !appl_4 <- appl_3 `pseq` klCons (Core.Types.Atom (Core.Types.N (Core.Types.KI 13))) appl_3+                                                                                                      !appl_5 <- appl_4 `pseq` klCons (Core.Types.Atom (Core.Types.N (Core.Types.KI 10))) appl_4+                                                                                                      !appl_6 <- appl_5 `pseq` klCons (Core.Types.Atom (Core.Types.N (Core.Types.KI 9))) appl_5+                                                                                                      !kl_if_7 <- kl_V2222h `pseq` (appl_6 `pseq` kl_elementP kl_V2222h appl_6)+                                                                                                      case kl_if_7 of+                                                                                                          Atom (B (True)) -> do return (Atom (B True))+                                                                                                          Atom (B (False)) -> do do return (Atom (B False))+                                                                                                          _ -> throwError "if: expected boolean"+                                                         pat_cond_8 = do do return (Atom (B False))+                                                      in case kl_V2222 of+                                                             !(kl_V2222@(Cons (!kl_V2222h)+                                                                              (!kl_V2222t))) -> pat_cond_1 kl_V2222 kl_V2222h kl_V2222t+                                                             _ -> pat_cond_8+                                         case kl_if_0 of+                                             Atom (B (True)) -> do !appl_9 <- kl_V2222 `pseq` tl kl_V2222+                                                                   appl_9 `pseq` kl_shen_trim_whitespace appl_9+                                             Atom (B (False)) -> do do return kl_V2222+                                             _ -> throwError "if: expected boolean"++kl_shen_record_it_h :: Core.Types.KLValue ->+                       Core.Types.KLContext Core.Types.Env Core.Types.KLValue+kl_shen_record_it_h (!kl_V2224) = do let !appl_0 = ApplC (Func "lambda" (Context (\(!kl_X) -> do kl_X `pseq` nToString kl_X)))+                                     !appl_1 <- appl_0 `pseq` (kl_V2224 `pseq` kl_map appl_0 kl_V2224)+                                     !appl_2 <- appl_1 `pseq` kl_shen_cn_all appl_1+                                     !appl_3 <- appl_2 `pseq` klSet (Core.Types.Atom (Core.Types.UnboundSym "shen.*it*")) appl_2+                                     appl_3 `pseq` (kl_V2224 `pseq` kl_do appl_3 kl_V2224)++kl_shen_cn_all :: Core.Types.KLValue ->+                  Core.Types.KLContext Core.Types.Env Core.Types.KLValue+kl_shen_cn_all (!kl_V2226) = do let !appl_0 = Atom Nil+                                !kl_if_1 <- appl_0 `pseq` (kl_V2226 `pseq` eq appl_0 kl_V2226)+                                case kl_if_1 of+                                    Atom (B (True)) -> do return (Core.Types.Atom (Core.Types.Str ""))+                                    Atom (B (False)) -> do let pat_cond_2 kl_V2226 kl_V2226h kl_V2226t = do !appl_3 <- kl_V2226t `pseq` kl_shen_cn_all kl_V2226t+                                                                                                            kl_V2226h `pseq` (appl_3 `pseq` cn kl_V2226h appl_3)+                                                               pat_cond_4 = do do let !aw_5 = Core.Types.Atom (Core.Types.UnboundSym "shen.f_error")+                                                                                  applyWrapper aw_5 [ApplC (wrapNamed "shen.cn-all" kl_shen_cn_all)]+                                                            in case kl_V2226 of+                                                                   !(kl_V2226@(Cons (!kl_V2226h)+                                                                                    (!kl_V2226t))) -> pat_cond_2 kl_V2226 kl_V2226h kl_V2226t+                                                                   _ -> pat_cond_4+                                    _ -> throwError "if: expected boolean"++kl_read_file :: Core.Types.KLValue ->+                Core.Types.KLContext Core.Types.Env Core.Types.KLValue+kl_read_file (!kl_V2228) = do let !appl_0 = ApplC (Func "lambda" (Context (\(!kl_Charlist) -> do let !appl_1 = ApplC (Func "lambda" (Context (\(!kl_X) -> do kl_X `pseq` kl_shen_LBst_inputRB kl_X)))+                                                                                                 let !appl_2 = ApplC (Func "lambda" (Context (\(!kl_X) -> do kl_X `pseq` kl_shen_read_error kl_X)))+                                                                                                 appl_1 `pseq` (kl_Charlist `pseq` (appl_2 `pseq` kl_compile appl_1 kl_Charlist appl_2)))))+                              !appl_3 <- kl_V2228 `pseq` kl_read_file_as_charlist kl_V2228+                              appl_3 `pseq` applyWrapper appl_0 [appl_3]++kl_read_from_string :: Core.Types.KLValue ->+                       Core.Types.KLContext Core.Types.Env Core.Types.KLValue+kl_read_from_string (!kl_V2230) = do let !appl_0 = ApplC (Func "lambda" (Context (\(!kl_Ns) -> do let !appl_1 = ApplC (Func "lambda" (Context (\(!kl_X) -> do kl_X `pseq` kl_shen_LBst_inputRB kl_X)))+                                                                                                  let !appl_2 = ApplC (Func "lambda" (Context (\(!kl_X) -> do kl_X `pseq` kl_shen_read_error kl_X)))+                                                                                                  appl_1 `pseq` (kl_Ns `pseq` (appl_2 `pseq` kl_compile appl_1 kl_Ns appl_2)))))+                                     let !appl_3 = ApplC (Func "lambda" (Context (\(!kl_X) -> do kl_X `pseq` stringToN kl_X)))+                                     !appl_4 <- kl_V2230 `pseq` kl_explode kl_V2230+                                     !appl_5 <- appl_3 `pseq` (appl_4 `pseq` kl_map appl_3 appl_4)+                                     appl_5 `pseq` applyWrapper appl_0 [appl_5]++kl_shen_read_error :: Core.Types.KLValue ->+                      Core.Types.KLContext Core.Types.Env Core.Types.KLValue+kl_shen_read_error (!kl_V2238) = do !kl_if_0 <- let pat_cond_1 kl_V2238 kl_V2238h kl_V2238t = do !kl_if_2 <- let pat_cond_3 kl_V2238h kl_V2238hh kl_V2238ht = do !kl_if_4 <- let pat_cond_5 kl_V2238t kl_V2238th kl_V2238tt = do let !appl_6 = Atom Nil+                                                                                                                                                                                                                                 !kl_if_7 <- appl_6 `pseq` (kl_V2238tt `pseq` eq appl_6 kl_V2238tt)+                                                                                                                                                                                                                                 case kl_if_7 of+                                                                                                                                                                                                                                     Atom (B (True)) -> do return (Atom (B True))+                                                                                                                                                                                                                                     Atom (B (False)) -> do do return (Atom (B False))+                                                                                                                                                                                                                                     _ -> throwError "if: expected boolean"+                                                                                                                                                                                 pat_cond_8 = do do return (Atom (B False))+                                                                                                                                                                              in case kl_V2238t of+                                                                                                                                                                                     !(kl_V2238t@(Cons (!kl_V2238th)+                                                                                                                                                                                                       (!kl_V2238tt))) -> pat_cond_5 kl_V2238t kl_V2238th kl_V2238tt+                                                                                                                                                                                     _ -> pat_cond_8+                                                                                                                                                                 case kl_if_4 of+                                                                                                                                                                     Atom (B (True)) -> do return (Atom (B True))+                                                                                                                                                                     Atom (B (False)) -> do do return (Atom (B False))+                                                                                                                                                                     _ -> throwError "if: expected boolean"+                                                                                                                 pat_cond_9 = do do return (Atom (B False))+                                                                                                              in case kl_V2238h of+                                                                                                                     !(kl_V2238h@(Cons (!kl_V2238hh)+                                                                                                                                       (!kl_V2238ht))) -> pat_cond_3 kl_V2238h kl_V2238hh kl_V2238ht+                                                                                                                     _ -> pat_cond_9+                                                                                                 case kl_if_2 of+                                                                                                     Atom (B (True)) -> do return (Atom (B True))+                                                                                                     Atom (B (False)) -> do do return (Atom (B False))+                                                                                                     _ -> throwError "if: expected boolean"+                                                    pat_cond_10 = do do return (Atom (B False))+                                                 in case kl_V2238 of+                                                        !(kl_V2238@(Cons (!kl_V2238h)+                                                                         (!kl_V2238t))) -> pat_cond_1 kl_V2238 kl_V2238h kl_V2238t+                                                        _ -> pat_cond_10+                                    case kl_if_0 of+                                        Atom (B (True)) -> do !appl_11 <- kl_V2238 `pseq` hd kl_V2238+                                                              !appl_12 <- appl_11 `pseq` kl_shen_compress_50 (Core.Types.Atom (Core.Types.N (Core.Types.KI 50))) appl_11+                                                              let !aw_13 = Core.Types.Atom (Core.Types.UnboundSym "shen.app")+                                                              !appl_14 <- appl_12 `pseq` applyWrapper aw_13 [appl_12,+                                                                                                             Core.Types.Atom (Core.Types.Str "\n"),+                                                                                                             Core.Types.Atom (Core.Types.UnboundSym "shen.a")]+                                                              !appl_15 <- appl_14 `pseq` cn (Core.Types.Atom (Core.Types.Str "read error here:\n\n ")) appl_14+                                                              appl_15 `pseq` simpleError appl_15+                                        Atom (B (False)) -> do do simpleError (Core.Types.Atom (Core.Types.Str "read error\n"))+                                        _ -> throwError "if: expected boolean"++kl_shen_compress_50 :: Core.Types.KLValue ->+                       Core.Types.KLValue ->+                       Core.Types.KLContext Core.Types.Env Core.Types.KLValue+kl_shen_compress_50 (!kl_V2245) (!kl_V2246) = do let !appl_0 = Atom Nil+                                                 !kl_if_1 <- appl_0 `pseq` (kl_V2246 `pseq` eq appl_0 kl_V2246)+                                                 case kl_if_1 of+                                                     Atom (B (True)) -> do return (Core.Types.Atom (Core.Types.Str ""))+                                                     Atom (B (False)) -> do let pat_cond_2 = do return (Core.Types.Atom (Core.Types.Str ""))+                                                                                pat_cond_3 = do let pat_cond_4 kl_V2246 kl_V2246h kl_V2246t = do !appl_5 <- kl_V2246h `pseq` nToString kl_V2246h+                                                                                                                                                 !appl_6 <- kl_V2245 `pseq` Primitives.subtract kl_V2245 (Core.Types.Atom (Core.Types.N (Core.Types.KI 1)))+                                                                                                                                                 !appl_7 <- appl_6 `pseq` (kl_V2246t `pseq` kl_shen_compress_50 appl_6 kl_V2246t)+                                                                                                                                                 appl_5 `pseq` (appl_7 `pseq` cn appl_5 appl_7)+                                                                                                    pat_cond_8 = do do let !aw_9 = Core.Types.Atom (Core.Types.UnboundSym "shen.f_error")+                                                                                                                       applyWrapper aw_9 [ApplC (wrapNamed "shen.compress-50" kl_shen_compress_50)]+                                                                                                 in case kl_V2246 of+                                                                                                        !(kl_V2246@(Cons (!kl_V2246h)+                                                                                                                         (!kl_V2246t))) -> pat_cond_4 kl_V2246 kl_V2246h kl_V2246t+                                                                                                        _ -> pat_cond_8+                                                                             in case kl_V2245 of+                                                                                    kl_V2245@(Atom (N (KI 0))) -> pat_cond_2+                                                                                    _ -> pat_cond_3+                                                     _ -> throwError "if: expected boolean"++kl_shen_LBst_inputRB :: Core.Types.KLValue ->+                        Core.Types.KLContext Core.Types.Env Core.Types.KLValue+kl_shen_LBst_inputRB (!kl_V2248) = do let !appl_0 = ApplC (Func "lambda" (Context (\(!kl_YaccParse) -> do !appl_1 <- kl_fail+                                                                                                          !kl_if_2 <- kl_YaccParse `pseq` (appl_1 `pseq` eq kl_YaccParse appl_1)+                                                                                                          case kl_if_2 of+                                                                                                              Atom (B (True)) -> do let !appl_3 = ApplC (Func "lambda" (Context (\(!kl_YaccParse) -> do !appl_4 <- kl_fail+                                                                                                                                                                                                        !kl_if_5 <- kl_YaccParse `pseq` (appl_4 `pseq` eq kl_YaccParse appl_4)+                                                                                                                                                                                                        case kl_if_5 of+                                                                                                                                                                                                            Atom (B (True)) -> do let !appl_6 = ApplC (Func "lambda" (Context (\(!kl_YaccParse) -> do !appl_7 <- kl_fail+                                                                                                                                                                                                                                                                                                      !kl_if_8 <- kl_YaccParse `pseq` (appl_7 `pseq` eq kl_YaccParse appl_7)+                                                                                                                                                                                                                                                                                                      case kl_if_8 of+                                                                                                                                                                                                                                                                                                          Atom (B (True)) -> do let !appl_9 = ApplC (Func "lambda" (Context (\(!kl_YaccParse) -> do !appl_10 <- kl_fail+                                                                                                                                                                                                                                                                                                                                                                                                    !kl_if_11 <- kl_YaccParse `pseq` (appl_10 `pseq` eq kl_YaccParse appl_10)+                                                                                                                                                                                                                                                                                                                                                                                                    case kl_if_11 of+                                                                                                                                                                                                                                                                                                                                                                                                        Atom (B (True)) -> do let !appl_12 = ApplC (Func "lambda" (Context (\(!kl_YaccParse) -> do !appl_13 <- kl_fail+                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                   !kl_if_14 <- kl_YaccParse `pseq` (appl_13 `pseq` eq kl_YaccParse appl_13)+                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                   case kl_if_14 of+                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                       Atom (B (True)) -> do let !appl_15 = ApplC (Func "lambda" (Context (\(!kl_YaccParse) -> do !appl_16 <- kl_fail+                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                  !kl_if_17 <- kl_YaccParse `pseq` (appl_16 `pseq` eq kl_YaccParse appl_16)+                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                  case kl_if_17 of+                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                      Atom (B (True)) -> do let !appl_18 = ApplC (Func "lambda" (Context (\(!kl_YaccParse) -> do !appl_19 <- kl_fail+                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                 !kl_if_20 <- kl_YaccParse `pseq` (appl_19 `pseq` eq kl_YaccParse appl_19)+                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                 case kl_if_20 of+                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                     Atom (B (True)) -> do let !appl_21 = ApplC (Func "lambda" (Context (\(!kl_YaccParse) -> do !appl_22 <- kl_fail+                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                !kl_if_23 <- kl_YaccParse `pseq` (appl_22 `pseq` eq kl_YaccParse appl_22)+                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                case kl_if_23 of+                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                    Atom (B (True)) -> do let !appl_24 = ApplC (Func "lambda" (Context (\(!kl_YaccParse) -> do !appl_25 <- kl_fail+                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                               !kl_if_26 <- kl_YaccParse `pseq` (appl_25 `pseq` eq kl_YaccParse appl_25)+                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                               case kl_if_26 of+                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                   Atom (B (True)) -> do let !appl_27 = ApplC (Func "lambda" (Context (\(!kl_YaccParse) -> do !appl_28 <- kl_fail+                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                              !kl_if_29 <- kl_YaccParse `pseq` (appl_28 `pseq` eq kl_YaccParse appl_28)+                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                              case kl_if_29 of+                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                  Atom (B (True)) -> do let !appl_30 = ApplC (Func "lambda" (Context (\(!kl_YaccParse) -> do !appl_31 <- kl_fail+                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                             !kl_if_32 <- kl_YaccParse `pseq` (appl_31 `pseq` eq kl_YaccParse appl_31)+                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                             case kl_if_32 of+                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                 Atom (B (True)) -> do let !appl_33 = ApplC (Func "lambda" (Context (\(!kl_YaccParse) -> do !appl_34 <- kl_fail+                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                            !kl_if_35 <- kl_YaccParse `pseq` (appl_34 `pseq` eq kl_YaccParse appl_34)+                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                            case kl_if_35 of+                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                Atom (B (True)) -> do let !appl_36 = ApplC (Func "lambda" (Context (\(!kl_YaccParse) -> do !appl_37 <- kl_fail+                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                           !kl_if_38 <- kl_YaccParse `pseq` (appl_37 `pseq` eq kl_YaccParse appl_37)+                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                           case kl_if_38 of+                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                               Atom (B (True)) -> do let !appl_39 = ApplC (Func "lambda" (Context (\(!kl_Parse_LBeRB) -> do !appl_40 <- kl_fail+                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                            !appl_41 <- appl_40 `pseq` (kl_Parse_LBeRB `pseq` eq appl_40 kl_Parse_LBeRB)+                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                            !kl_if_42 <- appl_41 `pseq` kl_not appl_41+                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                            case kl_if_42 of+                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                Atom (B (True)) -> do !appl_43 <- kl_Parse_LBeRB `pseq` hd kl_Parse_LBeRB+                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                      let !appl_44 = Atom Nil+                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                      appl_43 `pseq` (appl_44 `pseq` kl_shen_pair appl_43 appl_44)+                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                Atom (B (False)) -> do do kl_fail+                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                _ -> throwError "if: expected boolean")))+                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                     !appl_45 <- kl_V2248 `pseq` kl_LBeRB kl_V2248+                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                     appl_45 `pseq` applyWrapper appl_39 [appl_45]+                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                               Atom (B (False)) -> do do return kl_YaccParse+                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                               _ -> throwError "if: expected boolean")))+                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                      let !appl_46 = ApplC (Func "lambda" (Context (\(!kl_Parse_shen_LBwhitespacesRB) -> do !appl_47 <- kl_fail+                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                            !appl_48 <- appl_47 `pseq` (kl_Parse_shen_LBwhitespacesRB `pseq` eq appl_47 kl_Parse_shen_LBwhitespacesRB)+                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                            !kl_if_49 <- appl_48 `pseq` kl_not appl_48+                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                            case kl_if_49 of+                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                Atom (B (True)) -> do let !appl_50 = ApplC (Func "lambda" (Context (\(!kl_Parse_shen_LBst_inputRB) -> do !appl_51 <- kl_fail+                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                         !appl_52 <- appl_51 `pseq` (kl_Parse_shen_LBst_inputRB `pseq` eq appl_51 kl_Parse_shen_LBst_inputRB)+                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                         !kl_if_53 <- appl_52 `pseq` kl_not appl_52+                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                         case kl_if_53 of+                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                             Atom (B (True)) -> do !appl_54 <- kl_Parse_shen_LBst_inputRB `pseq` hd kl_Parse_shen_LBst_inputRB+                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                   !appl_55 <- kl_Parse_shen_LBst_inputRB `pseq` kl_shen_hdtl kl_Parse_shen_LBst_inputRB+                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                   appl_54 `pseq` (appl_55 `pseq` kl_shen_pair appl_54 appl_55)+                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                             Atom (B (False)) -> do do kl_fail+                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                             _ -> throwError "if: expected boolean")))+                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                      !appl_56 <- kl_Parse_shen_LBwhitespacesRB `pseq` kl_shen_LBst_inputRB kl_Parse_shen_LBwhitespacesRB+                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                      appl_56 `pseq` applyWrapper appl_50 [appl_56]+                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                Atom (B (False)) -> do do kl_fail+                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                _ -> throwError "if: expected boolean")))+                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                      !appl_57 <- kl_V2248 `pseq` kl_shen_LBwhitespacesRB kl_V2248+                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                      !appl_58 <- appl_57 `pseq` applyWrapper appl_46 [appl_57]+                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                      appl_58 `pseq` applyWrapper appl_36 [appl_58]+                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                Atom (B (False)) -> do do return kl_YaccParse+                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                _ -> throwError "if: expected boolean")))+                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                       let !appl_59 = ApplC (Func "lambda" (Context (\(!kl_Parse_shen_LBatomRB) -> do !appl_60 <- kl_fail+                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                      !appl_61 <- appl_60 `pseq` (kl_Parse_shen_LBatomRB `pseq` eq appl_60 kl_Parse_shen_LBatomRB)+                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                      !kl_if_62 <- appl_61 `pseq` kl_not appl_61+                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                      case kl_if_62 of+                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                          Atom (B (True)) -> do let !appl_63 = ApplC (Func "lambda" (Context (\(!kl_Parse_shen_LBst_inputRB) -> do !appl_64 <- kl_fail+                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                   !appl_65 <- appl_64 `pseq` (kl_Parse_shen_LBst_inputRB `pseq` eq appl_64 kl_Parse_shen_LBst_inputRB)+                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                   !kl_if_66 <- appl_65 `pseq` kl_not appl_65+                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                   case kl_if_66 of+                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                       Atom (B (True)) -> do !appl_67 <- kl_Parse_shen_LBst_inputRB `pseq` hd kl_Parse_shen_LBst_inputRB+                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                             !appl_68 <- kl_Parse_shen_LBatomRB `pseq` kl_shen_hdtl kl_Parse_shen_LBatomRB+                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                             let !aw_69 = Core.Types.Atom (Core.Types.UnboundSym "macroexpand")+                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                             !appl_70 <- appl_68 `pseq` applyWrapper aw_69 [appl_68]+                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                             !appl_71 <- kl_Parse_shen_LBst_inputRB `pseq` kl_shen_hdtl kl_Parse_shen_LBst_inputRB+                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                             !appl_72 <- appl_70 `pseq` (appl_71 `pseq` klCons appl_70 appl_71)+                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                             appl_67 `pseq` (appl_72 `pseq` kl_shen_pair appl_67 appl_72)+                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                       Atom (B (False)) -> do do kl_fail+                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                       _ -> throwError "if: expected boolean")))+                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                !appl_73 <- kl_Parse_shen_LBatomRB `pseq` kl_shen_LBst_inputRB kl_Parse_shen_LBatomRB+                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                appl_73 `pseq` applyWrapper appl_63 [appl_73]+                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                          Atom (B (False)) -> do do kl_fail+                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                          _ -> throwError "if: expected boolean")))+                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                       !appl_74 <- kl_V2248 `pseq` kl_shen_LBatomRB kl_V2248+                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                       !appl_75 <- appl_74 `pseq` applyWrapper appl_59 [appl_74]+                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                       appl_75 `pseq` applyWrapper appl_33 [appl_75]+                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                 Atom (B (False)) -> do do return kl_YaccParse+                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                 _ -> throwError "if: expected boolean")))+                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                        let !appl_76 = ApplC (Func "lambda" (Context (\(!kl_Parse_shen_LBcommentRB) -> do !appl_77 <- kl_fail+                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                          !appl_78 <- appl_77 `pseq` (kl_Parse_shen_LBcommentRB `pseq` eq appl_77 kl_Parse_shen_LBcommentRB)+                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                          !kl_if_79 <- appl_78 `pseq` kl_not appl_78+                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                          case kl_if_79 of+                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                              Atom (B (True)) -> do let !appl_80 = ApplC (Func "lambda" (Context (\(!kl_Parse_shen_LBst_inputRB) -> do !appl_81 <- kl_fail+                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                       !appl_82 <- appl_81 `pseq` (kl_Parse_shen_LBst_inputRB `pseq` eq appl_81 kl_Parse_shen_LBst_inputRB)+                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                       !kl_if_83 <- appl_82 `pseq` kl_not appl_82+                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                       case kl_if_83 of+                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                           Atom (B (True)) -> do !appl_84 <- kl_Parse_shen_LBst_inputRB `pseq` hd kl_Parse_shen_LBst_inputRB+                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                 !appl_85 <- kl_Parse_shen_LBst_inputRB `pseq` kl_shen_hdtl kl_Parse_shen_LBst_inputRB+                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                 appl_84 `pseq` (appl_85 `pseq` kl_shen_pair appl_84 appl_85)+                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                           Atom (B (False)) -> do do kl_fail+                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                           _ -> throwError "if: expected boolean")))+                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                    !appl_86 <- kl_Parse_shen_LBcommentRB `pseq` kl_shen_LBst_inputRB kl_Parse_shen_LBcommentRB+                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                    appl_86 `pseq` applyWrapper appl_80 [appl_86]+                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                              Atom (B (False)) -> do do kl_fail+                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                              _ -> throwError "if: expected boolean")))+                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                        !appl_87 <- kl_V2248 `pseq` kl_shen_LBcommentRB kl_V2248+                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                        !appl_88 <- appl_87 `pseq` applyWrapper appl_76 [appl_87]+                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                        appl_88 `pseq` applyWrapper appl_30 [appl_88]+                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                  Atom (B (False)) -> do do return kl_YaccParse+                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                  _ -> throwError "if: expected boolean")))+                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                         let !appl_89 = ApplC (Func "lambda" (Context (\(!kl_Parse_shen_LBcommaRB) -> do !appl_90 <- kl_fail+                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                         !appl_91 <- appl_90 `pseq` (kl_Parse_shen_LBcommaRB `pseq` eq appl_90 kl_Parse_shen_LBcommaRB)+                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                         !kl_if_92 <- appl_91 `pseq` kl_not appl_91+                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                         case kl_if_92 of+                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                             Atom (B (True)) -> do let !appl_93 = ApplC (Func "lambda" (Context (\(!kl_Parse_shen_LBst_inputRB) -> do !appl_94 <- kl_fail+                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                      !appl_95 <- appl_94 `pseq` (kl_Parse_shen_LBst_inputRB `pseq` eq appl_94 kl_Parse_shen_LBst_inputRB)+                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                      !kl_if_96 <- appl_95 `pseq` kl_not appl_95+                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                      case kl_if_96 of+                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                          Atom (B (True)) -> do !appl_97 <- kl_Parse_shen_LBst_inputRB `pseq` hd kl_Parse_shen_LBst_inputRB+                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                !appl_98 <- intern (Core.Types.Atom (Core.Types.Str ","))+                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                !appl_99 <- kl_Parse_shen_LBst_inputRB `pseq` kl_shen_hdtl kl_Parse_shen_LBst_inputRB+                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                !appl_100 <- appl_98 `pseq` (appl_99 `pseq` klCons appl_98 appl_99)+                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                appl_97 `pseq` (appl_100 `pseq` kl_shen_pair appl_97 appl_100)+                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                          Atom (B (False)) -> do do kl_fail+                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                          _ -> throwError "if: expected boolean")))+                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                   !appl_101 <- kl_Parse_shen_LBcommaRB `pseq` kl_shen_LBst_inputRB kl_Parse_shen_LBcommaRB+                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                   appl_101 `pseq` applyWrapper appl_93 [appl_101]+                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                             Atom (B (False)) -> do do kl_fail+                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                             _ -> throwError "if: expected boolean")))+                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                         !appl_102 <- kl_V2248 `pseq` kl_shen_LBcommaRB kl_V2248+                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                         !appl_103 <- appl_102 `pseq` applyWrapper appl_89 [appl_102]+                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                         appl_103 `pseq` applyWrapper appl_27 [appl_103]+                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                   Atom (B (False)) -> do do return kl_YaccParse+                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                   _ -> throwError "if: expected boolean")))+                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                          let !appl_104 = ApplC (Func "lambda" (Context (\(!kl_Parse_shen_LBcolonRB) -> do !appl_105 <- kl_fail+                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                           !appl_106 <- appl_105 `pseq` (kl_Parse_shen_LBcolonRB `pseq` eq appl_105 kl_Parse_shen_LBcolonRB)+                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                           !kl_if_107 <- appl_106 `pseq` kl_not appl_106+                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                           case kl_if_107 of+                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                               Atom (B (True)) -> do let !appl_108 = ApplC (Func "lambda" (Context (\(!kl_Parse_shen_LBst_inputRB) -> do !appl_109 <- kl_fail+                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                         !appl_110 <- appl_109 `pseq` (kl_Parse_shen_LBst_inputRB `pseq` eq appl_109 kl_Parse_shen_LBst_inputRB)+                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                         !kl_if_111 <- appl_110 `pseq` kl_not appl_110+                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                         case kl_if_111 of+                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                             Atom (B (True)) -> do !appl_112 <- kl_Parse_shen_LBst_inputRB `pseq` hd kl_Parse_shen_LBst_inputRB+                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                   !appl_113 <- kl_Parse_shen_LBst_inputRB `pseq` kl_shen_hdtl kl_Parse_shen_LBst_inputRB+                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                   !appl_114 <- appl_113 `pseq` klCons (Core.Types.Atom (Core.Types.UnboundSym ":")) appl_113+                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                   appl_112 `pseq` (appl_114 `pseq` kl_shen_pair appl_112 appl_114)+                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                             Atom (B (False)) -> do do kl_fail+                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                             _ -> throwError "if: expected boolean")))+                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                     !appl_115 <- kl_Parse_shen_LBcolonRB `pseq` kl_shen_LBst_inputRB kl_Parse_shen_LBcolonRB+                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                     appl_115 `pseq` applyWrapper appl_108 [appl_115]+                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                               Atom (B (False)) -> do do kl_fail+                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                               _ -> throwError "if: expected boolean")))+                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                          !appl_116 <- kl_V2248 `pseq` kl_shen_LBcolonRB kl_V2248+                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                          !appl_117 <- appl_116 `pseq` applyWrapper appl_104 [appl_116]+                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                          appl_117 `pseq` applyWrapper appl_24 [appl_117]+                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                    Atom (B (False)) -> do do return kl_YaccParse+                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                    _ -> throwError "if: expected boolean")))+                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                           let !appl_118 = ApplC (Func "lambda" (Context (\(!kl_Parse_shen_LBcolonRB) -> do !appl_119 <- kl_fail+                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                            !appl_120 <- appl_119 `pseq` (kl_Parse_shen_LBcolonRB `pseq` eq appl_119 kl_Parse_shen_LBcolonRB)+                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                            !kl_if_121 <- appl_120 `pseq` kl_not appl_120+                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                            case kl_if_121 of+                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                Atom (B (True)) -> do let !appl_122 = ApplC (Func "lambda" (Context (\(!kl_Parse_shen_LBminusRB) -> do !appl_123 <- kl_fail+                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                       !appl_124 <- appl_123 `pseq` (kl_Parse_shen_LBminusRB `pseq` eq appl_123 kl_Parse_shen_LBminusRB)+                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                       !kl_if_125 <- appl_124 `pseq` kl_not appl_124+                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                       case kl_if_125 of+                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                           Atom (B (True)) -> do let !appl_126 = ApplC (Func "lambda" (Context (\(!kl_Parse_shen_LBst_inputRB) -> do !appl_127 <- kl_fail+                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                     !appl_128 <- appl_127 `pseq` (kl_Parse_shen_LBst_inputRB `pseq` eq appl_127 kl_Parse_shen_LBst_inputRB)+                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                     !kl_if_129 <- appl_128 `pseq` kl_not appl_128+                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                     case kl_if_129 of+                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                         Atom (B (True)) -> do !appl_130 <- kl_Parse_shen_LBst_inputRB `pseq` hd kl_Parse_shen_LBst_inputRB+                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                               !appl_131 <- kl_Parse_shen_LBst_inputRB `pseq` kl_shen_hdtl kl_Parse_shen_LBst_inputRB+                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                               !appl_132 <- appl_131 `pseq` klCons (Core.Types.Atom (Core.Types.UnboundSym ":-")) appl_131+                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                               appl_130 `pseq` (appl_132 `pseq` kl_shen_pair appl_130 appl_132)+                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                         Atom (B (False)) -> do do kl_fail+                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                         _ -> throwError "if: expected boolean")))+                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                 !appl_133 <- kl_Parse_shen_LBminusRB `pseq` kl_shen_LBst_inputRB kl_Parse_shen_LBminusRB+                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                 appl_133 `pseq` applyWrapper appl_126 [appl_133]+                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                           Atom (B (False)) -> do do kl_fail+                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                           _ -> throwError "if: expected boolean")))+                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                      !appl_134 <- kl_Parse_shen_LBcolonRB `pseq` kl_shen_LBminusRB kl_Parse_shen_LBcolonRB+                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                      appl_134 `pseq` applyWrapper appl_122 [appl_134]+                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                Atom (B (False)) -> do do kl_fail+                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                _ -> throwError "if: expected boolean")))+                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                           !appl_135 <- kl_V2248 `pseq` kl_shen_LBcolonRB kl_V2248+                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                           !appl_136 <- appl_135 `pseq` applyWrapper appl_118 [appl_135]+                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                           appl_136 `pseq` applyWrapper appl_21 [appl_136]+                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                     Atom (B (False)) -> do do return kl_YaccParse+                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                     _ -> throwError "if: expected boolean")))+                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                            let !appl_137 = ApplC (Func "lambda" (Context (\(!kl_Parse_shen_LBcolonRB) -> do !appl_138 <- kl_fail+                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                             !appl_139 <- appl_138 `pseq` (kl_Parse_shen_LBcolonRB `pseq` eq appl_138 kl_Parse_shen_LBcolonRB)+                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                             !kl_if_140 <- appl_139 `pseq` kl_not appl_139+                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                             case kl_if_140 of+                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                 Atom (B (True)) -> do let !appl_141 = ApplC (Func "lambda" (Context (\(!kl_Parse_shen_LBequalRB) -> do !appl_142 <- kl_fail+                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                        !appl_143 <- appl_142 `pseq` (kl_Parse_shen_LBequalRB `pseq` eq appl_142 kl_Parse_shen_LBequalRB)+                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                        !kl_if_144 <- appl_143 `pseq` kl_not appl_143+                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                        case kl_if_144 of+                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                            Atom (B (True)) -> do let !appl_145 = ApplC (Func "lambda" (Context (\(!kl_Parse_shen_LBst_inputRB) -> do !appl_146 <- kl_fail+                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                      !appl_147 <- appl_146 `pseq` (kl_Parse_shen_LBst_inputRB `pseq` eq appl_146 kl_Parse_shen_LBst_inputRB)+                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                      !kl_if_148 <- appl_147 `pseq` kl_not appl_147+                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                      case kl_if_148 of+                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                          Atom (B (True)) -> do !appl_149 <- kl_Parse_shen_LBst_inputRB `pseq` hd kl_Parse_shen_LBst_inputRB+                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                !appl_150 <- kl_Parse_shen_LBst_inputRB `pseq` kl_shen_hdtl kl_Parse_shen_LBst_inputRB+                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                !appl_151 <- appl_150 `pseq` klCons (Core.Types.Atom (Core.Types.UnboundSym ":=")) appl_150+                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                appl_149 `pseq` (appl_151 `pseq` kl_shen_pair appl_149 appl_151)+                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                          Atom (B (False)) -> do do kl_fail+                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                          _ -> throwError "if: expected boolean")))+                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                  !appl_152 <- kl_Parse_shen_LBequalRB `pseq` kl_shen_LBst_inputRB kl_Parse_shen_LBequalRB+                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                  appl_152 `pseq` applyWrapper appl_145 [appl_152]+                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                            Atom (B (False)) -> do do kl_fail+                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                            _ -> throwError "if: expected boolean")))+                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                       !appl_153 <- kl_Parse_shen_LBcolonRB `pseq` kl_shen_LBequalRB kl_Parse_shen_LBcolonRB+                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                       appl_153 `pseq` applyWrapper appl_141 [appl_153]+                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                 Atom (B (False)) -> do do kl_fail+                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                 _ -> throwError "if: expected boolean")))+                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                            !appl_154 <- kl_V2248 `pseq` kl_shen_LBcolonRB kl_V2248+                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                            !appl_155 <- appl_154 `pseq` applyWrapper appl_137 [appl_154]+                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                            appl_155 `pseq` applyWrapper appl_18 [appl_155]+                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                      Atom (B (False)) -> do do return kl_YaccParse+                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                      _ -> throwError "if: expected boolean")))+                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                             let !appl_156 = ApplC (Func "lambda" (Context (\(!kl_Parse_shen_LBsemicolonRB) -> do !appl_157 <- kl_fail+                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                  !appl_158 <- appl_157 `pseq` (kl_Parse_shen_LBsemicolonRB `pseq` eq appl_157 kl_Parse_shen_LBsemicolonRB)+                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                  !kl_if_159 <- appl_158 `pseq` kl_not appl_158+                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                  case kl_if_159 of+                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                      Atom (B (True)) -> do let !appl_160 = ApplC (Func "lambda" (Context (\(!kl_Parse_shen_LBst_inputRB) -> do !appl_161 <- kl_fail+                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                !appl_162 <- appl_161 `pseq` (kl_Parse_shen_LBst_inputRB `pseq` eq appl_161 kl_Parse_shen_LBst_inputRB)+                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                !kl_if_163 <- appl_162 `pseq` kl_not appl_162+                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                case kl_if_163 of+                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                    Atom (B (True)) -> do !appl_164 <- kl_Parse_shen_LBst_inputRB `pseq` hd kl_Parse_shen_LBst_inputRB+                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                          !appl_165 <- kl_Parse_shen_LBst_inputRB `pseq` kl_shen_hdtl kl_Parse_shen_LBst_inputRB+                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                          !appl_166 <- appl_165 `pseq` klCons (Core.Types.Atom (Core.Types.UnboundSym ";")) appl_165+                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                          appl_164 `pseq` (appl_166 `pseq` kl_shen_pair appl_164 appl_166)+                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                    Atom (B (False)) -> do do kl_fail+                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                    _ -> throwError "if: expected boolean")))+                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                            !appl_167 <- kl_Parse_shen_LBsemicolonRB `pseq` kl_shen_LBst_inputRB kl_Parse_shen_LBsemicolonRB+                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                            appl_167 `pseq` applyWrapper appl_160 [appl_167]+                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                      Atom (B (False)) -> do do kl_fail+                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                      _ -> throwError "if: expected boolean")))+                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                             !appl_168 <- kl_V2248 `pseq` kl_shen_LBsemicolonRB kl_V2248+                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                             !appl_169 <- appl_168 `pseq` applyWrapper appl_156 [appl_168]+                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                             appl_169 `pseq` applyWrapper appl_15 [appl_169]+                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                       Atom (B (False)) -> do do return kl_YaccParse+                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                       _ -> throwError "if: expected boolean")))+                                                                                                                                                                                                                                                                                                                                                                                                                              let !appl_170 = ApplC (Func "lambda" (Context (\(!kl_Parse_shen_LBbarRB) -> do !appl_171 <- kl_fail+                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                             !appl_172 <- appl_171 `pseq` (kl_Parse_shen_LBbarRB `pseq` eq appl_171 kl_Parse_shen_LBbarRB)+                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                             !kl_if_173 <- appl_172 `pseq` kl_not appl_172+                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                             case kl_if_173 of+                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                 Atom (B (True)) -> do let !appl_174 = ApplC (Func "lambda" (Context (\(!kl_Parse_shen_LBst_inputRB) -> do !appl_175 <- kl_fail+                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                           !appl_176 <- appl_175 `pseq` (kl_Parse_shen_LBst_inputRB `pseq` eq appl_175 kl_Parse_shen_LBst_inputRB)+                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                           !kl_if_177 <- appl_176 `pseq` kl_not appl_176+                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                           case kl_if_177 of+                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                               Atom (B (True)) -> do !appl_178 <- kl_Parse_shen_LBst_inputRB `pseq` hd kl_Parse_shen_LBst_inputRB+                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                     !appl_179 <- kl_Parse_shen_LBst_inputRB `pseq` kl_shen_hdtl kl_Parse_shen_LBst_inputRB+                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                     !appl_180 <- appl_179 `pseq` klCons (Core.Types.Atom (Core.Types.UnboundSym "bar!")) appl_179+                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                     appl_178 `pseq` (appl_180 `pseq` kl_shen_pair appl_178 appl_180)+                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                               Atom (B (False)) -> do do kl_fail+                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                               _ -> throwError "if: expected boolean")))+                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                       !appl_181 <- kl_Parse_shen_LBbarRB `pseq` kl_shen_LBst_inputRB kl_Parse_shen_LBbarRB+                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                       appl_181 `pseq` applyWrapper appl_174 [appl_181]+                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                 Atom (B (False)) -> do do kl_fail+                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                 _ -> throwError "if: expected boolean")))+                                                                                                                                                                                                                                                                                                                                                                                                                              !appl_182 <- kl_V2248 `pseq` kl_shen_LBbarRB kl_V2248+                                                                                                                                                                                                                                                                                                                                                                                                                              !appl_183 <- appl_182 `pseq` applyWrapper appl_170 [appl_182]+                                                                                                                                                                                                                                                                                                                                                                                                                              appl_183 `pseq` applyWrapper appl_12 [appl_183]+                                                                                                                                                                                                                                                                                                                                                                                                        Atom (B (False)) -> do do return kl_YaccParse+                                                                                                                                                                                                                                                                                                                                                                                                        _ -> throwError "if: expected boolean")))+                                                                                                                                                                                                                                                                                                                                let !appl_184 = ApplC (Func "lambda" (Context (\(!kl_Parse_shen_LBrcurlyRB) -> do !appl_185 <- kl_fail+                                                                                                                                                                                                                                                                                                                                                                                                                  !appl_186 <- appl_185 `pseq` (kl_Parse_shen_LBrcurlyRB `pseq` eq appl_185 kl_Parse_shen_LBrcurlyRB)+                                                                                                                                                                                                                                                                                                                                                                                                                  !kl_if_187 <- appl_186 `pseq` kl_not appl_186+                                                                                                                                                                                                                                                                                                                                                                                                                  case kl_if_187 of+                                                                                                                                                                                                                                                                                                                                                                                                                      Atom (B (True)) -> do let !appl_188 = ApplC (Func "lambda" (Context (\(!kl_Parse_shen_LBst_inputRB) -> do !appl_189 <- kl_fail+                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                !appl_190 <- appl_189 `pseq` (kl_Parse_shen_LBst_inputRB `pseq` eq appl_189 kl_Parse_shen_LBst_inputRB)+                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                !kl_if_191 <- appl_190 `pseq` kl_not appl_190+                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                case kl_if_191 of+                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                    Atom (B (True)) -> do !appl_192 <- kl_Parse_shen_LBst_inputRB `pseq` hd kl_Parse_shen_LBst_inputRB+                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                          !appl_193 <- kl_Parse_shen_LBst_inputRB `pseq` kl_shen_hdtl kl_Parse_shen_LBst_inputRB+                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                          !appl_194 <- appl_193 `pseq` klCons (Core.Types.Atom (Core.Types.UnboundSym "}")) appl_193+                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                          appl_192 `pseq` (appl_194 `pseq` kl_shen_pair appl_192 appl_194)+                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                    Atom (B (False)) -> do do kl_fail+                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                    _ -> throwError "if: expected boolean")))+                                                                                                                                                                                                                                                                                                                                                                                                                                            !appl_195 <- kl_Parse_shen_LBrcurlyRB `pseq` kl_shen_LBst_inputRB kl_Parse_shen_LBrcurlyRB+                                                                                                                                                                                                                                                                                                                                                                                                                                            appl_195 `pseq` applyWrapper appl_188 [appl_195]+                                                                                                                                                                                                                                                                                                                                                                                                                      Atom (B (False)) -> do do kl_fail+                                                                                                                                                                                                                                                                                                                                                                                                                      _ -> throwError "if: expected boolean")))+                                                                                                                                                                                                                                                                                                                                !appl_196 <- kl_V2248 `pseq` kl_shen_LBrcurlyRB kl_V2248+                                                                                                                                                                                                                                                                                                                                !appl_197 <- appl_196 `pseq` applyWrapper appl_184 [appl_196]+                                                                                                                                                                                                                                                                                                                                appl_197 `pseq` applyWrapper appl_9 [appl_197]+                                                                                                                                                                                                                                                                                                          Atom (B (False)) -> do do return kl_YaccParse+                                                                                                                                                                                                                                                                                                          _ -> throwError "if: expected boolean")))+                                                                                                                                                                                                                                  let !appl_198 = ApplC (Func "lambda" (Context (\(!kl_Parse_shen_LBlcurlyRB) -> do !appl_199 <- kl_fail+                                                                                                                                                                                                                                                                                                                    !appl_200 <- appl_199 `pseq` (kl_Parse_shen_LBlcurlyRB `pseq` eq appl_199 kl_Parse_shen_LBlcurlyRB)+                                                                                                                                                                                                                                                                                                                    !kl_if_201 <- appl_200 `pseq` kl_not appl_200+                                                                                                                                                                                                                                                                                                                    case kl_if_201 of+                                                                                                                                                                                                                                                                                                                        Atom (B (True)) -> do let !appl_202 = ApplC (Func "lambda" (Context (\(!kl_Parse_shen_LBst_inputRB) -> do !appl_203 <- kl_fail+                                                                                                                                                                                                                                                                                                                                                                                                                                  !appl_204 <- appl_203 `pseq` (kl_Parse_shen_LBst_inputRB `pseq` eq appl_203 kl_Parse_shen_LBst_inputRB)+                                                                                                                                                                                                                                                                                                                                                                                                                                  !kl_if_205 <- appl_204 `pseq` kl_not appl_204+                                                                                                                                                                                                                                                                                                                                                                                                                                  case kl_if_205 of+                                                                                                                                                                                                                                                                                                                                                                                                                                      Atom (B (True)) -> do !appl_206 <- kl_Parse_shen_LBst_inputRB `pseq` hd kl_Parse_shen_LBst_inputRB+                                                                                                                                                                                                                                                                                                                                                                                                                                                            !appl_207 <- kl_Parse_shen_LBst_inputRB `pseq` kl_shen_hdtl kl_Parse_shen_LBst_inputRB+                                                                                                                                                                                                                                                                                                                                                                                                                                                            !appl_208 <- appl_207 `pseq` klCons (Core.Types.Atom (Core.Types.UnboundSym "{")) appl_207+                                                                                                                                                                                                                                                                                                                                                                                                                                                            appl_206 `pseq` (appl_208 `pseq` kl_shen_pair appl_206 appl_208)+                                                                                                                                                                                                                                                                                                                                                                                                                                      Atom (B (False)) -> do do kl_fail+                                                                                                                                                                                                                                                                                                                                                                                                                                      _ -> throwError "if: expected boolean")))+                                                                                                                                                                                                                                                                                                                                              !appl_209 <- kl_Parse_shen_LBlcurlyRB `pseq` kl_shen_LBst_inputRB kl_Parse_shen_LBlcurlyRB+                                                                                                                                                                                                                                                                                                                                              appl_209 `pseq` applyWrapper appl_202 [appl_209]+                                                                                                                                                                                                                                                                                                                        Atom (B (False)) -> do do kl_fail+                                                                                                                                                                                                                                                                                                                        _ -> throwError "if: expected boolean")))+                                                                                                                                                                                                                                  !appl_210 <- kl_V2248 `pseq` kl_shen_LBlcurlyRB kl_V2248+                                                                                                                                                                                                                                  !appl_211 <- appl_210 `pseq` applyWrapper appl_198 [appl_210]+                                                                                                                                                                                                                                  appl_211 `pseq` applyWrapper appl_6 [appl_211]+                                                                                                                                                                                                            Atom (B (False)) -> do do return kl_YaccParse+                                                                                                                                                                                                            _ -> throwError "if: expected boolean")))+                                                                                                                                    let !appl_212 = ApplC (Func "lambda" (Context (\(!kl_Parse_shen_LBlrbRB) -> do !appl_213 <- kl_fail+                                                                                                                                                                                                                   !appl_214 <- appl_213 `pseq` (kl_Parse_shen_LBlrbRB `pseq` eq appl_213 kl_Parse_shen_LBlrbRB)+                                                                                                                                                                                                                   !kl_if_215 <- appl_214 `pseq` kl_not appl_214+                                                                                                                                                                                                                   case kl_if_215 of+                                                                                                                                                                                                                       Atom (B (True)) -> do let !appl_216 = ApplC (Func "lambda" (Context (\(!kl_Parse_shen_LBst_input1RB) -> do !appl_217 <- kl_fail+                                                                                                                                                                                                                                                                                                                                  !appl_218 <- appl_217 `pseq` (kl_Parse_shen_LBst_input1RB `pseq` eq appl_217 kl_Parse_shen_LBst_input1RB)+                                                                                                                                                                                                                                                                                                                                  !kl_if_219 <- appl_218 `pseq` kl_not appl_218+                                                                                                                                                                                                                                                                                                                                  case kl_if_219 of+                                                                                                                                                                                                                                                                                                                                      Atom (B (True)) -> do let !appl_220 = ApplC (Func "lambda" (Context (\(!kl_Parse_shen_LBrrbRB) -> do !appl_221 <- kl_fail+                                                                                                                                                                                                                                                                                                                                                                                                                                           !appl_222 <- appl_221 `pseq` (kl_Parse_shen_LBrrbRB `pseq` eq appl_221 kl_Parse_shen_LBrrbRB)+                                                                                                                                                                                                                                                                                                                                                                                                                                           !kl_if_223 <- appl_222 `pseq` kl_not appl_222+                                                                                                                                                                                                                                                                                                                                                                                                                                           case kl_if_223 of+                                                                                                                                                                                                                                                                                                                                                                                                                                               Atom (B (True)) -> do let !appl_224 = ApplC (Func "lambda" (Context (\(!kl_Parse_shen_LBst_input2RB) -> do !appl_225 <- kl_fail+                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                          !appl_226 <- appl_225 `pseq` (kl_Parse_shen_LBst_input2RB `pseq` eq appl_225 kl_Parse_shen_LBst_input2RB)+                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                          !kl_if_227 <- appl_226 `pseq` kl_not appl_226+                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                          case kl_if_227 of+                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                              Atom (B (True)) -> do !appl_228 <- kl_Parse_shen_LBst_input2RB `pseq` hd kl_Parse_shen_LBst_input2RB+                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                    !appl_229 <- kl_Parse_shen_LBst_input1RB `pseq` kl_shen_hdtl kl_Parse_shen_LBst_input1RB+                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                    let !aw_230 = Core.Types.Atom (Core.Types.UnboundSym "macroexpand")+                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                    !appl_231 <- appl_229 `pseq` applyWrapper aw_230 [appl_229]+                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                    !appl_232 <- kl_Parse_shen_LBst_input2RB `pseq` kl_shen_hdtl kl_Parse_shen_LBst_input2RB+                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                    !appl_233 <- appl_231 `pseq` (appl_232 `pseq` kl_shen_package_macro appl_231 appl_232)+                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                    appl_228 `pseq` (appl_233 `pseq` kl_shen_pair appl_228 appl_233)+                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                              Atom (B (False)) -> do do kl_fail+                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                              _ -> throwError "if: expected boolean")))+                                                                                                                                                                                                                                                                                                                                                                                                                                                                     !appl_234 <- kl_Parse_shen_LBrrbRB `pseq` kl_shen_LBst_input2RB kl_Parse_shen_LBrrbRB+                                                                                                                                                                                                                                                                                                                                                                                                                                                                     appl_234 `pseq` applyWrapper appl_224 [appl_234]+                                                                                                                                                                                                                                                                                                                                                                                                                                               Atom (B (False)) -> do do kl_fail+                                                                                                                                                                                                                                                                                                                                                                                                                                               _ -> throwError "if: expected boolean")))+                                                                                                                                                                                                                                                                                                                                                            !appl_235 <- kl_Parse_shen_LBst_input1RB `pseq` kl_shen_LBrrbRB kl_Parse_shen_LBst_input1RB+                                                                                                                                                                                                                                                                                                                                                            appl_235 `pseq` applyWrapper appl_220 [appl_235]+                                                                                                                                                                                                                                                                                                                                      Atom (B (False)) -> do do kl_fail+                                                                                                                                                                                                                                                                                                                                      _ -> throwError "if: expected boolean")))+                                                                                                                                                                                                                                             !appl_236 <- kl_Parse_shen_LBlrbRB `pseq` kl_shen_LBst_input1RB kl_Parse_shen_LBlrbRB+                                                                                                                                                                                                                                             appl_236 `pseq` applyWrapper appl_216 [appl_236]+                                                                                                                                                                                                                       Atom (B (False)) -> do do kl_fail+                                                                                                                                                                                                                       _ -> throwError "if: expected boolean")))+                                                                                                                                    !appl_237 <- kl_V2248 `pseq` kl_shen_LBlrbRB kl_V2248+                                                                                                                                    !appl_238 <- appl_237 `pseq` applyWrapper appl_212 [appl_237]+                                                                                                                                    appl_238 `pseq` applyWrapper appl_3 [appl_238]+                                                                                                              Atom (B (False)) -> do do return kl_YaccParse+                                                                                                              _ -> throwError "if: expected boolean")))+                                      let !appl_239 = ApplC (Func "lambda" (Context (\(!kl_Parse_shen_LBlsbRB) -> do !appl_240 <- kl_fail+                                                                                                                     !appl_241 <- appl_240 `pseq` (kl_Parse_shen_LBlsbRB `pseq` eq appl_240 kl_Parse_shen_LBlsbRB)+                                                                                                                     !kl_if_242 <- appl_241 `pseq` kl_not appl_241+                                                                                                                     case kl_if_242 of+                                                                                                                         Atom (B (True)) -> do let !appl_243 = ApplC (Func "lambda" (Context (\(!kl_Parse_shen_LBst_input1RB) -> do !appl_244 <- kl_fail+                                                                                                                                                                                                                                    !appl_245 <- appl_244 `pseq` (kl_Parse_shen_LBst_input1RB `pseq` eq appl_244 kl_Parse_shen_LBst_input1RB)+                                                                                                                                                                                                                                    !kl_if_246 <- appl_245 `pseq` kl_not appl_245+                                                                                                                                                                                                                                    case kl_if_246 of+                                                                                                                                                                                                                                        Atom (B (True)) -> do let !appl_247 = ApplC (Func "lambda" (Context (\(!kl_Parse_shen_LBrsbRB) -> do !appl_248 <- kl_fail+                                                                                                                                                                                                                                                                                                                                             !appl_249 <- appl_248 `pseq` (kl_Parse_shen_LBrsbRB `pseq` eq appl_248 kl_Parse_shen_LBrsbRB)+                                                                                                                                                                                                                                                                                                                                             !kl_if_250 <- appl_249 `pseq` kl_not appl_249+                                                                                                                                                                                                                                                                                                                                             case kl_if_250 of+                                                                                                                                                                                                                                                                                                                                                 Atom (B (True)) -> do let !appl_251 = ApplC (Func "lambda" (Context (\(!kl_Parse_shen_LBst_input2RB) -> do !appl_252 <- kl_fail+                                                                                                                                                                                                                                                                                                                                                                                                                                                            !appl_253 <- appl_252 `pseq` (kl_Parse_shen_LBst_input2RB `pseq` eq appl_252 kl_Parse_shen_LBst_input2RB)+                                                                                                                                                                                                                                                                                                                                                                                                                                                            !kl_if_254 <- appl_253 `pseq` kl_not appl_253+                                                                                                                                                                                                                                                                                                                                                                                                                                                            case kl_if_254 of+                                                                                                                                                                                                                                                                                                                                                                                                                                                                Atom (B (True)) -> do !appl_255 <- kl_Parse_shen_LBst_input2RB `pseq` hd kl_Parse_shen_LBst_input2RB+                                                                                                                                                                                                                                                                                                                                                                                                                                                                                      !appl_256 <- kl_Parse_shen_LBst_input1RB `pseq` kl_shen_hdtl kl_Parse_shen_LBst_input1RB+                                                                                                                                                                                                                                                                                                                                                                                                                                                                                      !appl_257 <- appl_256 `pseq` kl_shen_cons_form appl_256+                                                                                                                                                                                                                                                                                                                                                                                                                                                                                      let !aw_258 = Core.Types.Atom (Core.Types.UnboundSym "macroexpand")+                                                                                                                                                                                                                                                                                                                                                                                                                                                                                      !appl_259 <- appl_257 `pseq` applyWrapper aw_258 [appl_257]+                                                                                                                                                                                                                                                                                                                                                                                                                                                                                      !appl_260 <- kl_Parse_shen_LBst_input2RB `pseq` kl_shen_hdtl kl_Parse_shen_LBst_input2RB+                                                                                                                                                                                                                                                                                                                                                                                                                                                                                      !appl_261 <- appl_259 `pseq` (appl_260 `pseq` klCons appl_259 appl_260)+                                                                                                                                                                                                                                                                                                                                                                                                                                                                                      appl_255 `pseq` (appl_261 `pseq` kl_shen_pair appl_255 appl_261)+                                                                                                                                                                                                                                                                                                                                                                                                                                                                Atom (B (False)) -> do do kl_fail+                                                                                                                                                                                                                                                                                                                                                                                                                                                                _ -> throwError "if: expected boolean")))+                                                                                                                                                                                                                                                                                                                                                                       !appl_262 <- kl_Parse_shen_LBrsbRB `pseq` kl_shen_LBst_input2RB kl_Parse_shen_LBrsbRB+                                                                                                                                                                                                                                                                                                                                                                       appl_262 `pseq` applyWrapper appl_251 [appl_262]+                                                                                                                                                                                                                                                                                                                                                 Atom (B (False)) -> do do kl_fail+                                                                                                                                                                                                                                                                                                                                                 _ -> throwError "if: expected boolean")))+                                                                                                                                                                                                                                                              !appl_263 <- kl_Parse_shen_LBst_input1RB `pseq` kl_shen_LBrsbRB kl_Parse_shen_LBst_input1RB+                                                                                                                                                                                                                                                              appl_263 `pseq` applyWrapper appl_247 [appl_263]+                                                                                                                                                                                                                                        Atom (B (False)) -> do do kl_fail+                                                                                                                                                                                                                                        _ -> throwError "if: expected boolean")))+                                                                                                                                               !appl_264 <- kl_Parse_shen_LBlsbRB `pseq` kl_shen_LBst_input1RB kl_Parse_shen_LBlsbRB+                                                                                                                                               appl_264 `pseq` applyWrapper appl_243 [appl_264]+                                                                                                                         Atom (B (False)) -> do do kl_fail+                                                                                                                         _ -> throwError "if: expected boolean")))+                                      !appl_265 <- kl_V2248 `pseq` kl_shen_LBlsbRB kl_V2248+                                      !appl_266 <- appl_265 `pseq` applyWrapper appl_239 [appl_265]+                                      appl_266 `pseq` applyWrapper appl_0 [appl_266]++kl_shen_LBlsbRB :: Core.Types.KLValue ->+                   Core.Types.KLContext Core.Types.Env Core.Types.KLValue+kl_shen_LBlsbRB (!kl_V2250) = do !appl_0 <- kl_V2250 `pseq` hd kl_V2250+                                 !kl_if_1 <- appl_0 `pseq` consP appl_0+                                 !kl_if_2 <- case kl_if_1 of+                                                 Atom (B (True)) -> do !appl_3 <- kl_V2250 `pseq` hd kl_V2250+                                                                       !appl_4 <- appl_3 `pseq` hd appl_3+                                                                       !kl_if_5 <- appl_4 `pseq` eq (Core.Types.Atom (Core.Types.N (Core.Types.KI 91))) appl_4+                                                                       case kl_if_5 of+                                                                           Atom (B (True)) -> do return (Atom (B True))+                                                                           Atom (B (False)) -> do do return (Atom (B False))+                                                                           _ -> throwError "if: expected boolean"+                                                 Atom (B (False)) -> do do return (Atom (B False))+                                                 _ -> throwError "if: expected boolean"+                                 case kl_if_2 of+                                     Atom (B (True)) -> do !appl_6 <- kl_V2250 `pseq` hd kl_V2250+                                                           !appl_7 <- appl_6 `pseq` tl appl_6+                                                           !appl_8 <- kl_V2250 `pseq` kl_shen_hdtl kl_V2250+                                                           !appl_9 <- appl_7 `pseq` (appl_8 `pseq` kl_shen_pair appl_7 appl_8)+                                                           !appl_10 <- appl_9 `pseq` hd appl_9+                                                           appl_10 `pseq` kl_shen_pair appl_10 (Core.Types.Atom (Core.Types.UnboundSym "shen.skip"))+                                     Atom (B (False)) -> do do kl_fail+                                     _ -> throwError "if: expected boolean"++kl_shen_LBrsbRB :: Core.Types.KLValue ->+                   Core.Types.KLContext Core.Types.Env Core.Types.KLValue+kl_shen_LBrsbRB (!kl_V2252) = do !appl_0 <- kl_V2252 `pseq` hd kl_V2252+                                 !kl_if_1 <- appl_0 `pseq` consP appl_0+                                 !kl_if_2 <- case kl_if_1 of+                                                 Atom (B (True)) -> do !appl_3 <- kl_V2252 `pseq` hd kl_V2252+                                                                       !appl_4 <- appl_3 `pseq` hd appl_3+                                                                       !kl_if_5 <- appl_4 `pseq` eq (Core.Types.Atom (Core.Types.N (Core.Types.KI 93))) appl_4+                                                                       case kl_if_5 of+                                                                           Atom (B (True)) -> do return (Atom (B True))+                                                                           Atom (B (False)) -> do do return (Atom (B False))+                                                                           _ -> throwError "if: expected boolean"+                                                 Atom (B (False)) -> do do return (Atom (B False))+                                                 _ -> throwError "if: expected boolean"+                                 case kl_if_2 of+                                     Atom (B (True)) -> do !appl_6 <- kl_V2252 `pseq` hd kl_V2252+                                                           !appl_7 <- appl_6 `pseq` tl appl_6+                                                           !appl_8 <- kl_V2252 `pseq` kl_shen_hdtl kl_V2252+                                                           !appl_9 <- appl_7 `pseq` (appl_8 `pseq` kl_shen_pair appl_7 appl_8)+                                                           !appl_10 <- appl_9 `pseq` hd appl_9+                                                           appl_10 `pseq` kl_shen_pair appl_10 (Core.Types.Atom (Core.Types.UnboundSym "shen.skip"))+                                     Atom (B (False)) -> do do kl_fail+                                     _ -> throwError "if: expected boolean"++kl_shen_LBlcurlyRB :: Core.Types.KLValue ->+                      Core.Types.KLContext Core.Types.Env Core.Types.KLValue+kl_shen_LBlcurlyRB (!kl_V2254) = do !appl_0 <- kl_V2254 `pseq` hd kl_V2254+                                    !kl_if_1 <- appl_0 `pseq` consP appl_0+                                    !kl_if_2 <- case kl_if_1 of+                                                    Atom (B (True)) -> do !appl_3 <- kl_V2254 `pseq` hd kl_V2254+                                                                          !appl_4 <- appl_3 `pseq` hd appl_3+                                                                          !kl_if_5 <- appl_4 `pseq` eq (Core.Types.Atom (Core.Types.N (Core.Types.KI 123))) appl_4+                                                                          case kl_if_5 of+                                                                              Atom (B (True)) -> do return (Atom (B True))+                                                                              Atom (B (False)) -> do do return (Atom (B False))+                                                                              _ -> throwError "if: expected boolean"+                                                    Atom (B (False)) -> do do return (Atom (B False))+                                                    _ -> throwError "if: expected boolean"+                                    case kl_if_2 of+                                        Atom (B (True)) -> do !appl_6 <- kl_V2254 `pseq` hd kl_V2254+                                                              !appl_7 <- appl_6 `pseq` tl appl_6+                                                              !appl_8 <- kl_V2254 `pseq` kl_shen_hdtl kl_V2254+                                                              !appl_9 <- appl_7 `pseq` (appl_8 `pseq` kl_shen_pair appl_7 appl_8)+                                                              !appl_10 <- appl_9 `pseq` hd appl_9+                                                              appl_10 `pseq` kl_shen_pair appl_10 (Core.Types.Atom (Core.Types.UnboundSym "shen.skip"))+                                        Atom (B (False)) -> do do kl_fail+                                        _ -> throwError "if: expected boolean"++kl_shen_LBrcurlyRB :: Core.Types.KLValue ->+                      Core.Types.KLContext Core.Types.Env Core.Types.KLValue+kl_shen_LBrcurlyRB (!kl_V2256) = do !appl_0 <- kl_V2256 `pseq` hd kl_V2256+                                    !kl_if_1 <- appl_0 `pseq` consP appl_0+                                    !kl_if_2 <- case kl_if_1 of+                                                    Atom (B (True)) -> do !appl_3 <- kl_V2256 `pseq` hd kl_V2256+                                                                          !appl_4 <- appl_3 `pseq` hd appl_3+                                                                          !kl_if_5 <- appl_4 `pseq` eq (Core.Types.Atom (Core.Types.N (Core.Types.KI 125))) appl_4+                                                                          case kl_if_5 of+                                                                              Atom (B (True)) -> do return (Atom (B True))+                                                                              Atom (B (False)) -> do do return (Atom (B False))+                                                                              _ -> throwError "if: expected boolean"+                                                    Atom (B (False)) -> do do return (Atom (B False))+                                                    _ -> throwError "if: expected boolean"+                                    case kl_if_2 of+                                        Atom (B (True)) -> do !appl_6 <- kl_V2256 `pseq` hd kl_V2256+                                                              !appl_7 <- appl_6 `pseq` tl appl_6+                                                              !appl_8 <- kl_V2256 `pseq` kl_shen_hdtl kl_V2256+                                                              !appl_9 <- appl_7 `pseq` (appl_8 `pseq` kl_shen_pair appl_7 appl_8)+                                                              !appl_10 <- appl_9 `pseq` hd appl_9+                                                              appl_10 `pseq` kl_shen_pair appl_10 (Core.Types.Atom (Core.Types.UnboundSym "shen.skip"))+                                        Atom (B (False)) -> do do kl_fail+                                        _ -> throwError "if: expected boolean"++kl_shen_LBbarRB :: Core.Types.KLValue ->+                   Core.Types.KLContext Core.Types.Env Core.Types.KLValue+kl_shen_LBbarRB (!kl_V2258) = do !appl_0 <- kl_V2258 `pseq` hd kl_V2258+                                 !kl_if_1 <- appl_0 `pseq` consP appl_0+                                 !kl_if_2 <- case kl_if_1 of+                                                 Atom (B (True)) -> do !appl_3 <- kl_V2258 `pseq` hd kl_V2258+                                                                       !appl_4 <- appl_3 `pseq` hd appl_3+                                                                       !kl_if_5 <- appl_4 `pseq` eq (Core.Types.Atom (Core.Types.N (Core.Types.KI 124))) appl_4+                                                                       case kl_if_5 of+                                                                           Atom (B (True)) -> do return (Atom (B True))+                                                                           Atom (B (False)) -> do do return (Atom (B False))+                                                                           _ -> throwError "if: expected boolean"+                                                 Atom (B (False)) -> do do return (Atom (B False))+                                                 _ -> throwError "if: expected boolean"+                                 case kl_if_2 of+                                     Atom (B (True)) -> do !appl_6 <- kl_V2258 `pseq` hd kl_V2258+                                                           !appl_7 <- appl_6 `pseq` tl appl_6+                                                           !appl_8 <- kl_V2258 `pseq` kl_shen_hdtl kl_V2258+                                                           !appl_9 <- appl_7 `pseq` (appl_8 `pseq` kl_shen_pair appl_7 appl_8)+                                                           !appl_10 <- appl_9 `pseq` hd appl_9+                                                           appl_10 `pseq` kl_shen_pair appl_10 (Core.Types.Atom (Core.Types.UnboundSym "shen.skip"))+                                     Atom (B (False)) -> do do kl_fail+                                     _ -> throwError "if: expected boolean"++kl_shen_LBsemicolonRB :: Core.Types.KLValue ->+                         Core.Types.KLContext Core.Types.Env Core.Types.KLValue+kl_shen_LBsemicolonRB (!kl_V2260) = do !appl_0 <- kl_V2260 `pseq` hd kl_V2260+                                       !kl_if_1 <- appl_0 `pseq` consP appl_0+                                       !kl_if_2 <- case kl_if_1 of+                                                       Atom (B (True)) -> do !appl_3 <- kl_V2260 `pseq` hd kl_V2260+                                                                             !appl_4 <- appl_3 `pseq` hd appl_3+                                                                             !kl_if_5 <- appl_4 `pseq` eq (Core.Types.Atom (Core.Types.N (Core.Types.KI 59))) appl_4+                                                                             case kl_if_5 of+                                                                                 Atom (B (True)) -> do return (Atom (B True))+                                                                                 Atom (B (False)) -> do do return (Atom (B False))+                                                                                 _ -> throwError "if: expected boolean"+                                                       Atom (B (False)) -> do do return (Atom (B False))+                                                       _ -> throwError "if: expected boolean"+                                       case kl_if_2 of+                                           Atom (B (True)) -> do !appl_6 <- kl_V2260 `pseq` hd kl_V2260+                                                                 !appl_7 <- appl_6 `pseq` tl appl_6+                                                                 !appl_8 <- kl_V2260 `pseq` kl_shen_hdtl kl_V2260+                                                                 !appl_9 <- appl_7 `pseq` (appl_8 `pseq` kl_shen_pair appl_7 appl_8)+                                                                 !appl_10 <- appl_9 `pseq` hd appl_9+                                                                 appl_10 `pseq` kl_shen_pair appl_10 (Core.Types.Atom (Core.Types.UnboundSym "shen.skip"))+                                           Atom (B (False)) -> do do kl_fail+                                           _ -> throwError "if: expected boolean"++kl_shen_LBcolonRB :: Core.Types.KLValue ->+                     Core.Types.KLContext Core.Types.Env Core.Types.KLValue+kl_shen_LBcolonRB (!kl_V2262) = do !appl_0 <- kl_V2262 `pseq` hd kl_V2262+                                   !kl_if_1 <- appl_0 `pseq` consP appl_0+                                   !kl_if_2 <- case kl_if_1 of+                                                   Atom (B (True)) -> do !appl_3 <- kl_V2262 `pseq` hd kl_V2262+                                                                         !appl_4 <- appl_3 `pseq` hd appl_3+                                                                         !kl_if_5 <- appl_4 `pseq` eq (Core.Types.Atom (Core.Types.N (Core.Types.KI 58))) appl_4+                                                                         case kl_if_5 of+                                                                             Atom (B (True)) -> do return (Atom (B True))+                                                                             Atom (B (False)) -> do do return (Atom (B False))+                                                                             _ -> throwError "if: expected boolean"+                                                   Atom (B (False)) -> do do return (Atom (B False))+                                                   _ -> throwError "if: expected boolean"+                                   case kl_if_2 of+                                       Atom (B (True)) -> do !appl_6 <- kl_V2262 `pseq` hd kl_V2262+                                                             !appl_7 <- appl_6 `pseq` tl appl_6+                                                             !appl_8 <- kl_V2262 `pseq` kl_shen_hdtl kl_V2262+                                                             !appl_9 <- appl_7 `pseq` (appl_8 `pseq` kl_shen_pair appl_7 appl_8)+                                                             !appl_10 <- appl_9 `pseq` hd appl_9+                                                             appl_10 `pseq` kl_shen_pair appl_10 (Core.Types.Atom (Core.Types.UnboundSym "shen.skip"))+                                       Atom (B (False)) -> do do kl_fail+                                       _ -> throwError "if: expected boolean"++kl_shen_LBcommaRB :: Core.Types.KLValue ->+                     Core.Types.KLContext Core.Types.Env Core.Types.KLValue+kl_shen_LBcommaRB (!kl_V2264) = do !appl_0 <- kl_V2264 `pseq` hd kl_V2264+                                   !kl_if_1 <- appl_0 `pseq` consP appl_0+                                   !kl_if_2 <- case kl_if_1 of+                                                   Atom (B (True)) -> do !appl_3 <- kl_V2264 `pseq` hd kl_V2264+                                                                         !appl_4 <- appl_3 `pseq` hd appl_3+                                                                         !kl_if_5 <- appl_4 `pseq` eq (Core.Types.Atom (Core.Types.N (Core.Types.KI 44))) appl_4+                                                                         case kl_if_5 of+                                                                             Atom (B (True)) -> do return (Atom (B True))+                                                                             Atom (B (False)) -> do do return (Atom (B False))+                                                                             _ -> throwError "if: expected boolean"+                                                   Atom (B (False)) -> do do return (Atom (B False))+                                                   _ -> throwError "if: expected boolean"+                                   case kl_if_2 of+                                       Atom (B (True)) -> do !appl_6 <- kl_V2264 `pseq` hd kl_V2264+                                                             !appl_7 <- appl_6 `pseq` tl appl_6+                                                             !appl_8 <- kl_V2264 `pseq` kl_shen_hdtl kl_V2264+                                                             !appl_9 <- appl_7 `pseq` (appl_8 `pseq` kl_shen_pair appl_7 appl_8)+                                                             !appl_10 <- appl_9 `pseq` hd appl_9+                                                             appl_10 `pseq` kl_shen_pair appl_10 (Core.Types.Atom (Core.Types.UnboundSym "shen.skip"))+                                       Atom (B (False)) -> do do kl_fail+                                       _ -> throwError "if: expected boolean"++kl_shen_LBequalRB :: Core.Types.KLValue ->+                     Core.Types.KLContext Core.Types.Env Core.Types.KLValue+kl_shen_LBequalRB (!kl_V2266) = do !appl_0 <- kl_V2266 `pseq` hd kl_V2266+                                   !kl_if_1 <- appl_0 `pseq` consP appl_0+                                   !kl_if_2 <- case kl_if_1 of+                                                   Atom (B (True)) -> do !appl_3 <- kl_V2266 `pseq` hd kl_V2266+                                                                         !appl_4 <- appl_3 `pseq` hd appl_3+                                                                         !kl_if_5 <- appl_4 `pseq` eq (Core.Types.Atom (Core.Types.N (Core.Types.KI 61))) appl_4+                                                                         case kl_if_5 of+                                                                             Atom (B (True)) -> do return (Atom (B True))+                                                                             Atom (B (False)) -> do do return (Atom (B False))+                                                                             _ -> throwError "if: expected boolean"+                                                   Atom (B (False)) -> do do return (Atom (B False))+                                                   _ -> throwError "if: expected boolean"+                                   case kl_if_2 of+                                       Atom (B (True)) -> do !appl_6 <- kl_V2266 `pseq` hd kl_V2266+                                                             !appl_7 <- appl_6 `pseq` tl appl_6+                                                             !appl_8 <- kl_V2266 `pseq` kl_shen_hdtl kl_V2266+                                                             !appl_9 <- appl_7 `pseq` (appl_8 `pseq` kl_shen_pair appl_7 appl_8)+                                                             !appl_10 <- appl_9 `pseq` hd appl_9+                                                             appl_10 `pseq` kl_shen_pair appl_10 (Core.Types.Atom (Core.Types.UnboundSym "shen.skip"))+                                       Atom (B (False)) -> do do kl_fail+                                       _ -> throwError "if: expected boolean"++kl_shen_LBminusRB :: Core.Types.KLValue ->+                     Core.Types.KLContext Core.Types.Env Core.Types.KLValue+kl_shen_LBminusRB (!kl_V2268) = do !appl_0 <- kl_V2268 `pseq` hd kl_V2268+                                   !kl_if_1 <- appl_0 `pseq` consP appl_0+                                   !kl_if_2 <- case kl_if_1 of+                                                   Atom (B (True)) -> do !appl_3 <- kl_V2268 `pseq` hd kl_V2268+                                                                         !appl_4 <- appl_3 `pseq` hd appl_3+                                                                         !kl_if_5 <- appl_4 `pseq` eq (Core.Types.Atom (Core.Types.N (Core.Types.KI 45))) appl_4+                                                                         case kl_if_5 of+                                                                             Atom (B (True)) -> do return (Atom (B True))+                                                                             Atom (B (False)) -> do do return (Atom (B False))+                                                                             _ -> throwError "if: expected boolean"+                                                   Atom (B (False)) -> do do return (Atom (B False))+                                                   _ -> throwError "if: expected boolean"+                                   case kl_if_2 of+                                       Atom (B (True)) -> do !appl_6 <- kl_V2268 `pseq` hd kl_V2268+                                                             !appl_7 <- appl_6 `pseq` tl appl_6+                                                             !appl_8 <- kl_V2268 `pseq` kl_shen_hdtl kl_V2268+                                                             !appl_9 <- appl_7 `pseq` (appl_8 `pseq` kl_shen_pair appl_7 appl_8)+                                                             !appl_10 <- appl_9 `pseq` hd appl_9+                                                             appl_10 `pseq` kl_shen_pair appl_10 (Core.Types.Atom (Core.Types.UnboundSym "shen.skip"))+                                       Atom (B (False)) -> do do kl_fail+                                       _ -> throwError "if: expected boolean"++kl_shen_LBlrbRB :: Core.Types.KLValue ->+                   Core.Types.KLContext Core.Types.Env Core.Types.KLValue+kl_shen_LBlrbRB (!kl_V2270) = do !appl_0 <- kl_V2270 `pseq` hd kl_V2270+                                 !kl_if_1 <- appl_0 `pseq` consP appl_0+                                 !kl_if_2 <- case kl_if_1 of+                                                 Atom (B (True)) -> do !appl_3 <- kl_V2270 `pseq` hd kl_V2270+                                                                       !appl_4 <- appl_3 `pseq` hd appl_3+                                                                       !kl_if_5 <- appl_4 `pseq` eq (Core.Types.Atom (Core.Types.N (Core.Types.KI 40))) appl_4+                                                                       case kl_if_5 of+                                                                           Atom (B (True)) -> do return (Atom (B True))+                                                                           Atom (B (False)) -> do do return (Atom (B False))+                                                                           _ -> throwError "if: expected boolean"+                                                 Atom (B (False)) -> do do return (Atom (B False))+                                                 _ -> throwError "if: expected boolean"+                                 case kl_if_2 of+                                     Atom (B (True)) -> do !appl_6 <- kl_V2270 `pseq` hd kl_V2270+                                                           !appl_7 <- appl_6 `pseq` tl appl_6+                                                           !appl_8 <- kl_V2270 `pseq` kl_shen_hdtl kl_V2270+                                                           !appl_9 <- appl_7 `pseq` (appl_8 `pseq` kl_shen_pair appl_7 appl_8)+                                                           !appl_10 <- appl_9 `pseq` hd appl_9+                                                           appl_10 `pseq` kl_shen_pair appl_10 (Core.Types.Atom (Core.Types.UnboundSym "shen.skip"))+                                     Atom (B (False)) -> do do kl_fail+                                     _ -> throwError "if: expected boolean"++kl_shen_LBrrbRB :: Core.Types.KLValue ->+                   Core.Types.KLContext Core.Types.Env Core.Types.KLValue+kl_shen_LBrrbRB (!kl_V2272) = do !appl_0 <- kl_V2272 `pseq` hd kl_V2272+                                 !kl_if_1 <- appl_0 `pseq` consP appl_0+                                 !kl_if_2 <- case kl_if_1 of+                                                 Atom (B (True)) -> do !appl_3 <- kl_V2272 `pseq` hd kl_V2272+                                                                       !appl_4 <- appl_3 `pseq` hd appl_3+                                                                       !kl_if_5 <- appl_4 `pseq` eq (Core.Types.Atom (Core.Types.N (Core.Types.KI 41))) appl_4+                                                                       case kl_if_5 of+                                                                           Atom (B (True)) -> do return (Atom (B True))+                                                                           Atom (B (False)) -> do do return (Atom (B False))+                                                                           _ -> throwError "if: expected boolean"+                                                 Atom (B (False)) -> do do return (Atom (B False))+                                                 _ -> throwError "if: expected boolean"+                                 case kl_if_2 of+                                     Atom (B (True)) -> do !appl_6 <- kl_V2272 `pseq` hd kl_V2272+                                                           !appl_7 <- appl_6 `pseq` tl appl_6+                                                           !appl_8 <- kl_V2272 `pseq` kl_shen_hdtl kl_V2272+                                                           !appl_9 <- appl_7 `pseq` (appl_8 `pseq` kl_shen_pair appl_7 appl_8)+                                                           !appl_10 <- appl_9 `pseq` hd appl_9+                                                           appl_10 `pseq` kl_shen_pair appl_10 (Core.Types.Atom (Core.Types.UnboundSym "shen.skip"))+                                     Atom (B (False)) -> do do kl_fail+                                     _ -> throwError "if: expected boolean"++kl_shen_LBatomRB :: Core.Types.KLValue ->+                    Core.Types.KLContext Core.Types.Env Core.Types.KLValue+kl_shen_LBatomRB (!kl_V2274) = do let !appl_0 = ApplC (Func "lambda" (Context (\(!kl_YaccParse) -> do !appl_1 <- kl_fail+                                                                                                      !kl_if_2 <- kl_YaccParse `pseq` (appl_1 `pseq` eq kl_YaccParse appl_1)+                                                                                                      case kl_if_2 of+                                                                                                          Atom (B (True)) -> do let !appl_3 = ApplC (Func "lambda" (Context (\(!kl_YaccParse) -> do !appl_4 <- kl_fail+                                                                                                                                                                                                    !kl_if_5 <- kl_YaccParse `pseq` (appl_4 `pseq` eq kl_YaccParse appl_4)+                                                                                                                                                                                                    case kl_if_5 of+                                                                                                                                                                                                        Atom (B (True)) -> do let !appl_6 = ApplC (Func "lambda" (Context (\(!kl_Parse_shen_LBsymRB) -> do !appl_7 <- kl_fail+                                                                                                                                                                                                                                                                                                           !appl_8 <- appl_7 `pseq` (kl_Parse_shen_LBsymRB `pseq` eq appl_7 kl_Parse_shen_LBsymRB)+                                                                                                                                                                                                                                                                                                           !kl_if_9 <- appl_8 `pseq` kl_not appl_8+                                                                                                                                                                                                                                                                                                           case kl_if_9 of+                                                                                                                                                                                                                                                                                                               Atom (B (True)) -> do !appl_10 <- kl_Parse_shen_LBsymRB `pseq` hd kl_Parse_shen_LBsymRB+                                                                                                                                                                                                                                                                                                                                     !appl_11 <- kl_Parse_shen_LBsymRB `pseq` kl_shen_hdtl kl_Parse_shen_LBsymRB+                                                                                                                                                                                                                                                                                                                                     !kl_if_12 <- appl_11 `pseq` eq appl_11 (Core.Types.Atom (Core.Types.Str "<>"))+                                                                                                                                                                                                                                                                                                                                     !appl_13 <- case kl_if_12 of+                                                                                                                                                                                                                                                                                                                                                     Atom (B (True)) -> do let !appl_14 = Atom Nil+                                                                                                                                                                                                                                                                                                                                                                           !appl_15 <- appl_14 `pseq` klCons (Core.Types.Atom (Core.Types.N (Core.Types.KI 0))) appl_14+                                                                                                                                                                                                                                                                                                                                                                           appl_15 `pseq` klCons (ApplC (wrapNamed "vector" kl_vector)) appl_15+                                                                                                                                                                                                                                                                                                                                                     Atom (B (False)) -> do do !appl_16 <- kl_Parse_shen_LBsymRB `pseq` kl_shen_hdtl kl_Parse_shen_LBsymRB+                                                                                                                                                                                                                                                                                                                                                                               appl_16 `pseq` intern appl_16+                                                                                                                                                                                                                                                                                                                                                     _ -> throwError "if: expected boolean"+                                                                                                                                                                                                                                                                                                                                     appl_10 `pseq` (appl_13 `pseq` kl_shen_pair appl_10 appl_13)+                                                                                                                                                                                                                                                                                                               Atom (B (False)) -> do do kl_fail+                                                                                                                                                                                                                                                                                                               _ -> throwError "if: expected boolean")))+                                                                                                                                                                                                                              !appl_17 <- kl_V2274 `pseq` kl_shen_LBsymRB kl_V2274+                                                                                                                                                                                                                              appl_17 `pseq` applyWrapper appl_6 [appl_17]+                                                                                                                                                                                                        Atom (B (False)) -> do do return kl_YaccParse+                                                                                                                                                                                                        _ -> throwError "if: expected boolean")))+                                                                                                                                let !appl_18 = ApplC (Func "lambda" (Context (\(!kl_Parse_shen_LBnumberRB) -> do !appl_19 <- kl_fail+                                                                                                                                                                                                                 !appl_20 <- appl_19 `pseq` (kl_Parse_shen_LBnumberRB `pseq` eq appl_19 kl_Parse_shen_LBnumberRB)+                                                                                                                                                                                                                 !kl_if_21 <- appl_20 `pseq` kl_not appl_20+                                                                                                                                                                                                                 case kl_if_21 of+                                                                                                                                                                                                                     Atom (B (True)) -> do !appl_22 <- kl_Parse_shen_LBnumberRB `pseq` hd kl_Parse_shen_LBnumberRB+                                                                                                                                                                                                                                           !appl_23 <- kl_Parse_shen_LBnumberRB `pseq` kl_shen_hdtl kl_Parse_shen_LBnumberRB+                                                                                                                                                                                                                                           appl_22 `pseq` (appl_23 `pseq` kl_shen_pair appl_22 appl_23)+                                                                                                                                                                                                                     Atom (B (False)) -> do do kl_fail+                                                                                                                                                                                                                     _ -> throwError "if: expected boolean")))+                                                                                                                                !appl_24 <- kl_V2274 `pseq` kl_shen_LBnumberRB kl_V2274+                                                                                                                                !appl_25 <- appl_24 `pseq` applyWrapper appl_18 [appl_24]+                                                                                                                                appl_25 `pseq` applyWrapper appl_3 [appl_25]+                                                                                                          Atom (B (False)) -> do do return kl_YaccParse+                                                                                                          _ -> throwError "if: expected boolean")))+                                  let !appl_26 = ApplC (Func "lambda" (Context (\(!kl_Parse_shen_LBstrRB) -> do !appl_27 <- kl_fail+                                                                                                                !appl_28 <- appl_27 `pseq` (kl_Parse_shen_LBstrRB `pseq` eq appl_27 kl_Parse_shen_LBstrRB)+                                                                                                                !kl_if_29 <- appl_28 `pseq` kl_not appl_28+                                                                                                                case kl_if_29 of+                                                                                                                    Atom (B (True)) -> do !appl_30 <- kl_Parse_shen_LBstrRB `pseq` hd kl_Parse_shen_LBstrRB+                                                                                                                                          !appl_31 <- kl_Parse_shen_LBstrRB `pseq` kl_shen_hdtl kl_Parse_shen_LBstrRB+                                                                                                                                          !appl_32 <- appl_31 `pseq` kl_shen_control_chars appl_31+                                                                                                                                          appl_30 `pseq` (appl_32 `pseq` kl_shen_pair appl_30 appl_32)+                                                                                                                    Atom (B (False)) -> do do kl_fail+                                                                                                                    _ -> throwError "if: expected boolean")))+                                  !appl_33 <- kl_V2274 `pseq` kl_shen_LBstrRB kl_V2274+                                  !appl_34 <- appl_33 `pseq` applyWrapper appl_26 [appl_33]+                                  appl_34 `pseq` applyWrapper appl_0 [appl_34]++kl_shen_control_chars :: Core.Types.KLValue ->+                         Core.Types.KLContext Core.Types.Env Core.Types.KLValue+kl_shen_control_chars (!kl_V2276) = do let !appl_0 = Atom Nil+                                       !kl_if_1 <- appl_0 `pseq` (kl_V2276 `pseq` eq appl_0 kl_V2276)+                                       case kl_if_1 of+                                           Atom (B (True)) -> do return (Core.Types.Atom (Core.Types.Str ""))+                                           Atom (B (False)) -> do let pat_cond_2 kl_V2276 kl_V2276t kl_V2276tt = do let !appl_3 = ApplC (Func "lambda" (Context (\(!kl_CodePoint) -> do let !appl_4 = ApplC (Func "lambda" (Context (\(!kl_AfterCodePoint) -> do !appl_5 <- kl_CodePoint `pseq` kl_shen_decimalise kl_CodePoint+                                                                                                                                                                                                                                                                 !appl_6 <- appl_5 `pseq` nToString appl_5+                                                                                                                                                                                                                                                                 !appl_7 <- kl_AfterCodePoint `pseq` kl_shen_control_chars kl_AfterCodePoint+                                                                                                                                                                                                                                                                 appl_6 `pseq` (appl_7 `pseq` kl_Ats appl_6 appl_7))))+                                                                                                                                                                                        !appl_8 <- kl_V2276tt `pseq` kl_shen_after_codepoint kl_V2276tt+                                                                                                                                                                                        appl_8 `pseq` applyWrapper appl_4 [appl_8])))+                                                                                                                    !appl_9 <- kl_V2276tt `pseq` kl_shen_code_point kl_V2276tt+                                                                                                                    appl_9 `pseq` applyWrapper appl_3 [appl_9]+                                                                      pat_cond_10 kl_V2276 kl_V2276h kl_V2276t = do !appl_11 <- kl_V2276t `pseq` kl_shen_control_chars kl_V2276t+                                                                                                                    kl_V2276h `pseq` (appl_11 `pseq` kl_Ats kl_V2276h appl_11)+                                                                      pat_cond_12 = do do let !aw_13 = Core.Types.Atom (Core.Types.UnboundSym "shen.f_error")+                                                                                          applyWrapper aw_13 [ApplC (wrapNamed "shen.control-chars" kl_shen_control_chars)]+                                                                   in case kl_V2276 of+                                                                          !(kl_V2276@(Cons (Atom (Str "c"))+                                                                                           (!(kl_V2276t@(Cons (Atom (Str "#"))+                                                                                                              (!kl_V2276tt)))))) -> pat_cond_2 kl_V2276 kl_V2276t kl_V2276tt+                                                                          !(kl_V2276@(Cons (!kl_V2276h)+                                                                                           (!kl_V2276t))) -> pat_cond_10 kl_V2276 kl_V2276h kl_V2276t+                                                                          _ -> pat_cond_12+                                           _ -> throwError "if: expected boolean"++kl_shen_code_point :: Core.Types.KLValue ->+                      Core.Types.KLContext Core.Types.Env Core.Types.KLValue+kl_shen_code_point (!kl_V2280) = do let pat_cond_0 kl_V2280 kl_V2280t = do return (Core.Types.Atom (Core.Types.Str ""))+                                        pat_cond_1 = do !kl_if_2 <- let pat_cond_3 kl_V2280 kl_V2280h kl_V2280t = do let !appl_4 = Atom Nil+                                                                                                                     !appl_5 <- appl_4 `pseq` klCons (Core.Types.Atom (Core.Types.Str "0")) appl_4+                                                                                                                     !appl_6 <- appl_5 `pseq` klCons (Core.Types.Atom (Core.Types.Str "9")) appl_5+                                                                                                                     !appl_7 <- appl_6 `pseq` klCons (Core.Types.Atom (Core.Types.Str "8")) appl_6+                                                                                                                     !appl_8 <- appl_7 `pseq` klCons (Core.Types.Atom (Core.Types.Str "7")) appl_7+                                                                                                                     !appl_9 <- appl_8 `pseq` klCons (Core.Types.Atom (Core.Types.Str "6")) appl_8+                                                                                                                     !appl_10 <- appl_9 `pseq` klCons (Core.Types.Atom (Core.Types.Str "5")) appl_9+                                                                                                                     !appl_11 <- appl_10 `pseq` klCons (Core.Types.Atom (Core.Types.Str "4")) appl_10+                                                                                                                     !appl_12 <- appl_11 `pseq` klCons (Core.Types.Atom (Core.Types.Str "3")) appl_11+                                                                                                                     !appl_13 <- appl_12 `pseq` klCons (Core.Types.Atom (Core.Types.Str "2")) appl_12+                                                                                                                     !appl_14 <- appl_13 `pseq` klCons (Core.Types.Atom (Core.Types.Str "1")) appl_13+                                                                                                                     !appl_15 <- appl_14 `pseq` klCons (Core.Types.Atom (Core.Types.Str "0")) appl_14+                                                                                                                     !kl_if_16 <- kl_V2280h `pseq` (appl_15 `pseq` kl_elementP kl_V2280h appl_15)+                                                                                                                     case kl_if_16 of+                                                                                                                         Atom (B (True)) -> do return (Atom (B True))+                                                                                                                         Atom (B (False)) -> do do return (Atom (B False))+                                                                                                                         _ -> throwError "if: expected boolean"+                                                                        pat_cond_17 = do do return (Atom (B False))+                                                                     in case kl_V2280 of+                                                                            !(kl_V2280@(Cons (!kl_V2280h)+                                                                                             (!kl_V2280t))) -> pat_cond_3 kl_V2280 kl_V2280h kl_V2280t+                                                                            _ -> pat_cond_17+                                                        case kl_if_2 of+                                                            Atom (B (True)) -> do !appl_18 <- kl_V2280 `pseq` hd kl_V2280+                                                                                  !appl_19 <- kl_V2280 `pseq` tl kl_V2280+                                                                                  !appl_20 <- appl_19 `pseq` kl_shen_code_point appl_19+                                                                                  appl_18 `pseq` (appl_20 `pseq` klCons appl_18 appl_20)+                                                            Atom (B (False)) -> do do let !aw_21 = Core.Types.Atom (Core.Types.UnboundSym "shen.app")+                                                                                      !appl_22 <- kl_V2280 `pseq` applyWrapper aw_21 [kl_V2280,+                                                                                                                                      Core.Types.Atom (Core.Types.Str "\n"),+                                                                                                                                      Core.Types.Atom (Core.Types.UnboundSym "shen.a")]+                                                                                      !appl_23 <- appl_22 `pseq` cn (Core.Types.Atom (Core.Types.Str "code point parse error ")) appl_22+                                                                                      appl_23 `pseq` simpleError appl_23+                                                            _ -> throwError "if: expected boolean"+                                     in case kl_V2280 of+                                            !(kl_V2280@(Cons (Atom (Str ";"))+                                                             (!kl_V2280t))) -> pat_cond_0 kl_V2280 kl_V2280t+                                            _ -> pat_cond_1++kl_shen_after_codepoint :: Core.Types.KLValue ->+                           Core.Types.KLContext Core.Types.Env Core.Types.KLValue+kl_shen_after_codepoint (!kl_V2286) = do let !appl_0 = Atom Nil+                                         !kl_if_1 <- appl_0 `pseq` (kl_V2286 `pseq` eq appl_0 kl_V2286)+                                         case kl_if_1 of+                                             Atom (B (True)) -> do return (Atom Nil)+                                             Atom (B (False)) -> do let pat_cond_2 kl_V2286 kl_V2286t = do return kl_V2286t+                                                                        pat_cond_3 kl_V2286 kl_V2286h kl_V2286t = do kl_V2286t `pseq` kl_shen_after_codepoint kl_V2286t+                                                                        pat_cond_4 = do do let !aw_5 = Core.Types.Atom (Core.Types.UnboundSym "shen.f_error")+                                                                                           applyWrapper aw_5 [ApplC (wrapNamed "shen.after-codepoint" kl_shen_after_codepoint)]+                                                                     in case kl_V2286 of+                                                                            !(kl_V2286@(Cons (Atom (Str ";"))+                                                                                             (!kl_V2286t))) -> pat_cond_2 kl_V2286 kl_V2286t+                                                                            !(kl_V2286@(Cons (!kl_V2286h)+                                                                                             (!kl_V2286t))) -> pat_cond_3 kl_V2286 kl_V2286h kl_V2286t+                                                                            _ -> pat_cond_4+                                             _ -> throwError "if: expected boolean"++kl_shen_decimalise :: Core.Types.KLValue ->+                      Core.Types.KLContext Core.Types.Env Core.Types.KLValue+kl_shen_decimalise (!kl_V2288) = do !appl_0 <- kl_V2288 `pseq` kl_shen_digits_RBintegers kl_V2288+                                    !appl_1 <- appl_0 `pseq` kl_reverse appl_0+                                    appl_1 `pseq` kl_shen_pre appl_1 (Core.Types.Atom (Core.Types.N (Core.Types.KI 0)))++kl_shen_digits_RBintegers :: Core.Types.KLValue ->+                             Core.Types.KLContext Core.Types.Env Core.Types.KLValue+kl_shen_digits_RBintegers (!kl_V2294) = do let pat_cond_0 kl_V2294 kl_V2294t = do !appl_1 <- kl_V2294t `pseq` kl_shen_digits_RBintegers kl_V2294t+                                                                                  appl_1 `pseq` klCons (Core.Types.Atom (Core.Types.N (Core.Types.KI 0))) appl_1+                                               pat_cond_2 kl_V2294 kl_V2294t = do !appl_3 <- kl_V2294t `pseq` kl_shen_digits_RBintegers kl_V2294t+                                                                                  appl_3 `pseq` klCons (Core.Types.Atom (Core.Types.N (Core.Types.KI 1))) appl_3+                                               pat_cond_4 kl_V2294 kl_V2294t = do !appl_5 <- kl_V2294t `pseq` kl_shen_digits_RBintegers kl_V2294t+                                                                                  appl_5 `pseq` klCons (Core.Types.Atom (Core.Types.N (Core.Types.KI 2))) appl_5+                                               pat_cond_6 kl_V2294 kl_V2294t = do !appl_7 <- kl_V2294t `pseq` kl_shen_digits_RBintegers kl_V2294t+                                                                                  appl_7 `pseq` klCons (Core.Types.Atom (Core.Types.N (Core.Types.KI 3))) appl_7+                                               pat_cond_8 kl_V2294 kl_V2294t = do !appl_9 <- kl_V2294t `pseq` kl_shen_digits_RBintegers kl_V2294t+                                                                                  appl_9 `pseq` klCons (Core.Types.Atom (Core.Types.N (Core.Types.KI 4))) appl_9+                                               pat_cond_10 kl_V2294 kl_V2294t = do !appl_11 <- kl_V2294t `pseq` kl_shen_digits_RBintegers kl_V2294t+                                                                                   appl_11 `pseq` klCons (Core.Types.Atom (Core.Types.N (Core.Types.KI 5))) appl_11+                                               pat_cond_12 kl_V2294 kl_V2294t = do !appl_13 <- kl_V2294t `pseq` kl_shen_digits_RBintegers kl_V2294t+                                                                                   appl_13 `pseq` klCons (Core.Types.Atom (Core.Types.N (Core.Types.KI 6))) appl_13+                                               pat_cond_14 kl_V2294 kl_V2294t = do !appl_15 <- kl_V2294t `pseq` kl_shen_digits_RBintegers kl_V2294t+                                                                                   appl_15 `pseq` klCons (Core.Types.Atom (Core.Types.N (Core.Types.KI 7))) appl_15+                                               pat_cond_16 kl_V2294 kl_V2294t = do !appl_17 <- kl_V2294t `pseq` kl_shen_digits_RBintegers kl_V2294t+                                                                                   appl_17 `pseq` klCons (Core.Types.Atom (Core.Types.N (Core.Types.KI 8))) appl_17+                                               pat_cond_18 kl_V2294 kl_V2294t = do !appl_19 <- kl_V2294t `pseq` kl_shen_digits_RBintegers kl_V2294t+                                                                                   appl_19 `pseq` klCons (Core.Types.Atom (Core.Types.N (Core.Types.KI 9))) appl_19+                                               pat_cond_20 = do do return (Atom Nil)+                                            in case kl_V2294 of+                                                   !(kl_V2294@(Cons (Atom (Str "0"))+                                                                    (!kl_V2294t))) -> pat_cond_0 kl_V2294 kl_V2294t+                                                   !(kl_V2294@(Cons (Atom (Str "1"))+                                                                    (!kl_V2294t))) -> pat_cond_2 kl_V2294 kl_V2294t+                                                   !(kl_V2294@(Cons (Atom (Str "2"))+                                                                    (!kl_V2294t))) -> pat_cond_4 kl_V2294 kl_V2294t+                                                   !(kl_V2294@(Cons (Atom (Str "3"))+                                                                    (!kl_V2294t))) -> pat_cond_6 kl_V2294 kl_V2294t+                                                   !(kl_V2294@(Cons (Atom (Str "4"))+                                                                    (!kl_V2294t))) -> pat_cond_8 kl_V2294 kl_V2294t+                                                   !(kl_V2294@(Cons (Atom (Str "5"))+                                                                    (!kl_V2294t))) -> pat_cond_10 kl_V2294 kl_V2294t+                                                   !(kl_V2294@(Cons (Atom (Str "6"))+                                                                    (!kl_V2294t))) -> pat_cond_12 kl_V2294 kl_V2294t+                                                   !(kl_V2294@(Cons (Atom (Str "7"))+                                                                    (!kl_V2294t))) -> pat_cond_14 kl_V2294 kl_V2294t+                                                   !(kl_V2294@(Cons (Atom (Str "8"))+                                                                    (!kl_V2294t))) -> pat_cond_16 kl_V2294 kl_V2294t+                                                   !(kl_V2294@(Cons (Atom (Str "9"))+                                                                    (!kl_V2294t))) -> pat_cond_18 kl_V2294 kl_V2294t+                                                   _ -> pat_cond_20++kl_shen_LBsymRB :: Core.Types.KLValue ->+                   Core.Types.KLContext Core.Types.Env Core.Types.KLValue+kl_shen_LBsymRB (!kl_V2296) = do let !appl_0 = ApplC (Func "lambda" (Context (\(!kl_Parse_shen_LBalphaRB) -> do !appl_1 <- kl_fail+                                                                                                                !appl_2 <- appl_1 `pseq` (kl_Parse_shen_LBalphaRB `pseq` eq appl_1 kl_Parse_shen_LBalphaRB)+                                                                                                                !kl_if_3 <- appl_2 `pseq` kl_not appl_2+                                                                                                                case kl_if_3 of+                                                                                                                    Atom (B (True)) -> do let !appl_4 = ApplC (Func "lambda" (Context (\(!kl_Parse_shen_LBalphanumsRB) -> do !appl_5 <- kl_fail+                                                                                                                                                                                                                             !appl_6 <- appl_5 `pseq` (kl_Parse_shen_LBalphanumsRB `pseq` eq appl_5 kl_Parse_shen_LBalphanumsRB)+                                                                                                                                                                                                                             !kl_if_7 <- appl_6 `pseq` kl_not appl_6+                                                                                                                                                                                                                             case kl_if_7 of+                                                                                                                                                                                                                                 Atom (B (True)) -> do !appl_8 <- kl_Parse_shen_LBalphanumsRB `pseq` hd kl_Parse_shen_LBalphanumsRB+                                                                                                                                                                                                                                                       !appl_9 <- kl_Parse_shen_LBalphaRB `pseq` kl_shen_hdtl kl_Parse_shen_LBalphaRB+                                                                                                                                                                                                                                                       !appl_10 <- kl_Parse_shen_LBalphanumsRB `pseq` kl_shen_hdtl kl_Parse_shen_LBalphanumsRB+                                                                                                                                                                                                                                                       !appl_11 <- appl_9 `pseq` (appl_10 `pseq` kl_Ats appl_9 appl_10)+                                                                                                                                                                                                                                                       appl_8 `pseq` (appl_11 `pseq` kl_shen_pair appl_8 appl_11)+                                                                                                                                                                                                                                 Atom (B (False)) -> do do kl_fail+                                                                                                                                                                                                                                 _ -> throwError "if: expected boolean")))+                                                                                                                                          !appl_12 <- kl_Parse_shen_LBalphaRB `pseq` kl_shen_LBalphanumsRB kl_Parse_shen_LBalphaRB+                                                                                                                                          appl_12 `pseq` applyWrapper appl_4 [appl_12]+                                                                                                                    Atom (B (False)) -> do do kl_fail+                                                                                                                    _ -> throwError "if: expected boolean")))+                                 !appl_13 <- kl_V2296 `pseq` kl_shen_LBalphaRB kl_V2296+                                 appl_13 `pseq` applyWrapper appl_0 [appl_13]++kl_shen_LBalphanumsRB :: Core.Types.KLValue ->+                         Core.Types.KLContext Core.Types.Env Core.Types.KLValue+kl_shen_LBalphanumsRB (!kl_V2298) = do let !appl_0 = ApplC (Func "lambda" (Context (\(!kl_YaccParse) -> do !appl_1 <- kl_fail+                                                                                                           !kl_if_2 <- kl_YaccParse `pseq` (appl_1 `pseq` eq kl_YaccParse appl_1)+                                                                                                           case kl_if_2 of+                                                                                                               Atom (B (True)) -> do let !appl_3 = ApplC (Func "lambda" (Context (\(!kl_Parse_LBeRB) -> do !appl_4 <- kl_fail+                                                                                                                                                                                                           !appl_5 <- appl_4 `pseq` (kl_Parse_LBeRB `pseq` eq appl_4 kl_Parse_LBeRB)+                                                                                                                                                                                                           !kl_if_6 <- appl_5 `pseq` kl_not appl_5+                                                                                                                                                                                                           case kl_if_6 of+                                                                                                                                                                                                               Atom (B (True)) -> do !appl_7 <- kl_Parse_LBeRB `pseq` hd kl_Parse_LBeRB+                                                                                                                                                                                                                                     appl_7 `pseq` kl_shen_pair appl_7 (Core.Types.Atom (Core.Types.Str ""))+                                                                                                                                                                                                               Atom (B (False)) -> do do kl_fail+                                                                                                                                                                                                               _ -> throwError "if: expected boolean")))+                                                                                                                                     !appl_8 <- kl_V2298 `pseq` kl_LBeRB kl_V2298+                                                                                                                                     appl_8 `pseq` applyWrapper appl_3 [appl_8]+                                                                                                               Atom (B (False)) -> do do return kl_YaccParse+                                                                                                               _ -> throwError "if: expected boolean")))+                                       let !appl_9 = ApplC (Func "lambda" (Context (\(!kl_Parse_shen_LBalphanumRB) -> do !appl_10 <- kl_fail+                                                                                                                         !appl_11 <- appl_10 `pseq` (kl_Parse_shen_LBalphanumRB `pseq` eq appl_10 kl_Parse_shen_LBalphanumRB)+                                                                                                                         !kl_if_12 <- appl_11 `pseq` kl_not appl_11+                                                                                                                         case kl_if_12 of+                                                                                                                             Atom (B (True)) -> do let !appl_13 = ApplC (Func "lambda" (Context (\(!kl_Parse_shen_LBalphanumsRB) -> do !appl_14 <- kl_fail+                                                                                                                                                                                                                                       !appl_15 <- appl_14 `pseq` (kl_Parse_shen_LBalphanumsRB `pseq` eq appl_14 kl_Parse_shen_LBalphanumsRB)+                                                                                                                                                                                                                                       !kl_if_16 <- appl_15 `pseq` kl_not appl_15+                                                                                                                                                                                                                                       case kl_if_16 of+                                                                                                                                                                                                                                           Atom (B (True)) -> do !appl_17 <- kl_Parse_shen_LBalphanumsRB `pseq` hd kl_Parse_shen_LBalphanumsRB+                                                                                                                                                                                                                                                                 !appl_18 <- kl_Parse_shen_LBalphanumRB `pseq` kl_shen_hdtl kl_Parse_shen_LBalphanumRB+                                                                                                                                                                                                                                                                 !appl_19 <- kl_Parse_shen_LBalphanumsRB `pseq` kl_shen_hdtl kl_Parse_shen_LBalphanumsRB+                                                                                                                                                                                                                                                                 !appl_20 <- appl_18 `pseq` (appl_19 `pseq` kl_Ats appl_18 appl_19)+                                                                                                                                                                                                                                                                 appl_17 `pseq` (appl_20 `pseq` kl_shen_pair appl_17 appl_20)+                                                                                                                                                                                                                                           Atom (B (False)) -> do do kl_fail+                                                                                                                                                                                                                                           _ -> throwError "if: expected boolean")))+                                                                                                                                                   !appl_21 <- kl_Parse_shen_LBalphanumRB `pseq` kl_shen_LBalphanumsRB kl_Parse_shen_LBalphanumRB+                                                                                                                                                   appl_21 `pseq` applyWrapper appl_13 [appl_21]+                                                                                                                             Atom (B (False)) -> do do kl_fail+                                                                                                                             _ -> throwError "if: expected boolean")))+                                       !appl_22 <- kl_V2298 `pseq` kl_shen_LBalphanumRB kl_V2298+                                       !appl_23 <- appl_22 `pseq` applyWrapper appl_9 [appl_22]+                                       appl_23 `pseq` applyWrapper appl_0 [appl_23]++kl_shen_LBalphanumRB :: Core.Types.KLValue ->+                        Core.Types.KLContext Core.Types.Env Core.Types.KLValue+kl_shen_LBalphanumRB (!kl_V2300) = do let !appl_0 = ApplC (Func "lambda" (Context (\(!kl_YaccParse) -> do !appl_1 <- kl_fail+                                                                                                          !kl_if_2 <- kl_YaccParse `pseq` (appl_1 `pseq` eq kl_YaccParse appl_1)+                                                                                                          case kl_if_2 of+                                                                                                              Atom (B (True)) -> do let !appl_3 = ApplC (Func "lambda" (Context (\(!kl_Parse_shen_LBnumRB) -> do !appl_4 <- kl_fail+                                                                                                                                                                                                                 !appl_5 <- appl_4 `pseq` (kl_Parse_shen_LBnumRB `pseq` eq appl_4 kl_Parse_shen_LBnumRB)+                                                                                                                                                                                                                 !kl_if_6 <- appl_5 `pseq` kl_not appl_5+                                                                                                                                                                                                                 case kl_if_6 of+                                                                                                                                                                                                                     Atom (B (True)) -> do !appl_7 <- kl_Parse_shen_LBnumRB `pseq` hd kl_Parse_shen_LBnumRB+                                                                                                                                                                                                                                           !appl_8 <- kl_Parse_shen_LBnumRB `pseq` kl_shen_hdtl kl_Parse_shen_LBnumRB+                                                                                                                                                                                                                                           appl_7 `pseq` (appl_8 `pseq` kl_shen_pair appl_7 appl_8)+                                                                                                                                                                                                                     Atom (B (False)) -> do do kl_fail+                                                                                                                                                                                                                     _ -> throwError "if: expected boolean")))+                                                                                                                                    !appl_9 <- kl_V2300 `pseq` kl_shen_LBnumRB kl_V2300+                                                                                                                                    appl_9 `pseq` applyWrapper appl_3 [appl_9]+                                                                                                              Atom (B (False)) -> do do return kl_YaccParse+                                                                                                              _ -> throwError "if: expected boolean")))+                                      let !appl_10 = ApplC (Func "lambda" (Context (\(!kl_Parse_shen_LBalphaRB) -> do !appl_11 <- kl_fail+                                                                                                                      !appl_12 <- appl_11 `pseq` (kl_Parse_shen_LBalphaRB `pseq` eq appl_11 kl_Parse_shen_LBalphaRB)+                                                                                                                      !kl_if_13 <- appl_12 `pseq` kl_not appl_12+                                                                                                                      case kl_if_13 of+                                                                                                                          Atom (B (True)) -> do !appl_14 <- kl_Parse_shen_LBalphaRB `pseq` hd kl_Parse_shen_LBalphaRB+                                                                                                                                                !appl_15 <- kl_Parse_shen_LBalphaRB `pseq` kl_shen_hdtl kl_Parse_shen_LBalphaRB+                                                                                                                                                appl_14 `pseq` (appl_15 `pseq` kl_shen_pair appl_14 appl_15)+                                                                                                                          Atom (B (False)) -> do do kl_fail+                                                                                                                          _ -> throwError "if: expected boolean")))+                                      !appl_16 <- kl_V2300 `pseq` kl_shen_LBalphaRB kl_V2300+                                      !appl_17 <- appl_16 `pseq` applyWrapper appl_10 [appl_16]+                                      appl_17 `pseq` applyWrapper appl_0 [appl_17]++kl_shen_LBnumRB :: Core.Types.KLValue ->+                   Core.Types.KLContext Core.Types.Env Core.Types.KLValue+kl_shen_LBnumRB (!kl_V2302) = do !appl_0 <- kl_V2302 `pseq` hd kl_V2302+                                 !kl_if_1 <- appl_0 `pseq` consP appl_0+                                 case kl_if_1 of+                                     Atom (B (True)) -> do let !appl_2 = ApplC (Func "lambda" (Context (\(!kl_Parse_Char) -> do !kl_if_3 <- kl_Parse_Char `pseq` kl_shen_numbyteP kl_Parse_Char+                                                                                                                                case kl_if_3 of+                                                                                                                                    Atom (B (True)) -> do !appl_4 <- kl_V2302 `pseq` hd kl_V2302+                                                                                                                                                          !appl_5 <- appl_4 `pseq` tl appl_4+                                                                                                                                                          !appl_6 <- kl_V2302 `pseq` kl_shen_hdtl kl_V2302+                                                                                                                                                          !appl_7 <- appl_5 `pseq` (appl_6 `pseq` kl_shen_pair appl_5 appl_6)+                                                                                                                                                          !appl_8 <- appl_7 `pseq` hd appl_7+                                                                                                                                                          !appl_9 <- kl_Parse_Char `pseq` nToString kl_Parse_Char+                                                                                                                                                          appl_8 `pseq` (appl_9 `pseq` kl_shen_pair appl_8 appl_9)+                                                                                                                                    Atom (B (False)) -> do do kl_fail+                                                                                                                                    _ -> throwError "if: expected boolean")))+                                                           !appl_10 <- kl_V2302 `pseq` hd kl_V2302+                                                           !appl_11 <- appl_10 `pseq` hd appl_10+                                                           appl_11 `pseq` applyWrapper appl_2 [appl_11]+                                     Atom (B (False)) -> do do kl_fail+                                     _ -> throwError "if: expected boolean"++kl_shen_numbyteP :: Core.Types.KLValue ->+                    Core.Types.KLContext Core.Types.Env Core.Types.KLValue+kl_shen_numbyteP (!kl_V2308) = do let pat_cond_0 = do return (Atom (B True))+                                      pat_cond_1 = do return (Atom (B True))+                                      pat_cond_2 = do return (Atom (B True))+                                      pat_cond_3 = do return (Atom (B True))+                                      pat_cond_4 = do return (Atom (B True))+                                      pat_cond_5 = do return (Atom (B True))+                                      pat_cond_6 = do return (Atom (B True))+                                      pat_cond_7 = do return (Atom (B True))+                                      pat_cond_8 = do return (Atom (B True))+                                      pat_cond_9 = do return (Atom (B True))+                                      pat_cond_10 = do do return (Atom (B False))+                                   in case kl_V2308 of+                                          kl_V2308@(Atom (N (KI 48))) -> pat_cond_0+                                          kl_V2308@(Atom (N (KI 49))) -> pat_cond_1+                                          kl_V2308@(Atom (N (KI 50))) -> pat_cond_2+                                          kl_V2308@(Atom (N (KI 51))) -> pat_cond_3+                                          kl_V2308@(Atom (N (KI 52))) -> pat_cond_4+                                          kl_V2308@(Atom (N (KI 53))) -> pat_cond_5+                                          kl_V2308@(Atom (N (KI 54))) -> pat_cond_6+                                          kl_V2308@(Atom (N (KI 55))) -> pat_cond_7+                                          kl_V2308@(Atom (N (KI 56))) -> pat_cond_8+                                          kl_V2308@(Atom (N (KI 57))) -> pat_cond_9+                                          _ -> pat_cond_10++kl_shen_LBalphaRB :: Core.Types.KLValue ->+                     Core.Types.KLContext Core.Types.Env Core.Types.KLValue+kl_shen_LBalphaRB (!kl_V2310) = do !appl_0 <- kl_V2310 `pseq` hd kl_V2310+                                   !kl_if_1 <- appl_0 `pseq` consP appl_0+                                   case kl_if_1 of+                                       Atom (B (True)) -> do let !appl_2 = ApplC (Func "lambda" (Context (\(!kl_Parse_Char) -> do !kl_if_3 <- kl_Parse_Char `pseq` kl_shen_symbol_codeP kl_Parse_Char+                                                                                                                                  case kl_if_3 of+                                                                                                                                      Atom (B (True)) -> do !appl_4 <- kl_V2310 `pseq` hd kl_V2310+                                                                                                                                                            !appl_5 <- appl_4 `pseq` tl appl_4+                                                                                                                                                            !appl_6 <- kl_V2310 `pseq` kl_shen_hdtl kl_V2310+                                                                                                                                                            !appl_7 <- appl_5 `pseq` (appl_6 `pseq` kl_shen_pair appl_5 appl_6)+                                                                                                                                                            !appl_8 <- appl_7 `pseq` hd appl_7+                                                                                                                                                            !appl_9 <- kl_Parse_Char `pseq` nToString kl_Parse_Char+                                                                                                                                                            appl_8 `pseq` (appl_9 `pseq` kl_shen_pair appl_8 appl_9)+                                                                                                                                      Atom (B (False)) -> do do kl_fail+                                                                                                                                      _ -> throwError "if: expected boolean")))+                                                             !appl_10 <- kl_V2310 `pseq` hd kl_V2310+                                                             !appl_11 <- appl_10 `pseq` hd appl_10+                                                             appl_11 `pseq` applyWrapper appl_2 [appl_11]+                                       Atom (B (False)) -> do do kl_fail+                                       _ -> throwError "if: expected boolean"++kl_shen_symbol_codeP :: Core.Types.KLValue ->+                        Core.Types.KLContext Core.Types.Env Core.Types.KLValue+kl_shen_symbol_codeP (!kl_V2312) = do let pat_cond_0 = do return (Atom (B True))+                                          pat_cond_1 = do do !kl_if_2 <- kl_V2312 `pseq` greaterThan kl_V2312 (Core.Types.Atom (Core.Types.N (Core.Types.KI 94)))+                                                             !kl_if_3 <- case kl_if_2 of+                                                                             Atom (B (True)) -> do !kl_if_4 <- kl_V2312 `pseq` lessThan kl_V2312 (Core.Types.Atom (Core.Types.N (Core.Types.KI 123)))+                                                                                                   case kl_if_4 of+                                                                                                       Atom (B (True)) -> do return (Atom (B True))+                                                                                                       Atom (B (False)) -> do do return (Atom (B False))+                                                                                                       _ -> throwError "if: expected boolean"+                                                                             Atom (B (False)) -> do do return (Atom (B False))+                                                                             _ -> throwError "if: expected boolean"+                                                             !kl_if_5 <- case kl_if_3 of+                                                                             Atom (B (True)) -> do return (Atom (B True))+                                                                             Atom (B (False)) -> do do !kl_if_6 <- kl_V2312 `pseq` greaterThan kl_V2312 (Core.Types.Atom (Core.Types.N (Core.Types.KI 59)))+                                                                                                       !kl_if_7 <- case kl_if_6 of+                                                                                                                       Atom (B (True)) -> do !kl_if_8 <- kl_V2312 `pseq` lessThan kl_V2312 (Core.Types.Atom (Core.Types.N (Core.Types.KI 91)))+                                                                                                                                             case kl_if_8 of+                                                                                                                                                 Atom (B (True)) -> do return (Atom (B True))+                                                                                                                                                 Atom (B (False)) -> do do return (Atom (B False))+                                                                                                                                                 _ -> throwError "if: expected boolean"+                                                                                                                       Atom (B (False)) -> do do return (Atom (B False))+                                                                                                                       _ -> throwError "if: expected boolean"+                                                                                                       !kl_if_9 <- case kl_if_7 of+                                                                                                                       Atom (B (True)) -> do return (Atom (B True))+                                                                                                                       Atom (B (False)) -> do do !kl_if_10 <- kl_V2312 `pseq` greaterThan kl_V2312 (Core.Types.Atom (Core.Types.N (Core.Types.KI 41)))+                                                                                                                                                 !kl_if_11 <- case kl_if_10 of+                                                                                                                                                                  Atom (B (True)) -> do !kl_if_12 <- kl_V2312 `pseq` lessThan kl_V2312 (Core.Types.Atom (Core.Types.N (Core.Types.KI 58)))+                                                                                                                                                                                        !kl_if_13 <- case kl_if_12 of+                                                                                                                                                                                                         Atom (B (True)) -> do !appl_14 <- kl_V2312 `pseq` eq kl_V2312 (Core.Types.Atom (Core.Types.N (Core.Types.KI 44)))+                                                                                                                                                                                                                               !kl_if_15 <- appl_14 `pseq` kl_not appl_14+                                                                                                                                                                                                                               case kl_if_15 of+                                                                                                                                                                                                                                   Atom (B (True)) -> do return (Atom (B True))+                                                                                                                                                                                                                                   Atom (B (False)) -> do do return (Atom (B False))+                                                                                                                                                                                                                                   _ -> throwError "if: expected boolean"+                                                                                                                                                                                                         Atom (B (False)) -> do do return (Atom (B False))+                                                                                                                                                                                                         _ -> throwError "if: expected boolean"+                                                                                                                                                                                        case kl_if_13 of+                                                                                                                                                                                            Atom (B (True)) -> do return (Atom (B True))+                                                                                                                                                                                            Atom (B (False)) -> do do return (Atom (B False))+                                                                                                                                                                                            _ -> throwError "if: expected boolean"+                                                                                                                                                                  Atom (B (False)) -> do do return (Atom (B False))+                                                                                                                                                                  _ -> throwError "if: expected boolean"+                                                                                                                                                 !kl_if_16 <- case kl_if_11 of+                                                                                                                                                                  Atom (B (True)) -> do return (Atom (B True))+                                                                                                                                                                  Atom (B (False)) -> do do !kl_if_17 <- kl_V2312 `pseq` greaterThan kl_V2312 (Core.Types.Atom (Core.Types.N (Core.Types.KI 34)))+                                                                                                                                                                                            !kl_if_18 <- case kl_if_17 of+                                                                                                                                                                                                             Atom (B (True)) -> do !kl_if_19 <- kl_V2312 `pseq` lessThan kl_V2312 (Core.Types.Atom (Core.Types.N (Core.Types.KI 40)))+                                                                                                                                                                                                                                   case kl_if_19 of+                                                                                                                                                                                                                                       Atom (B (True)) -> do return (Atom (B True))+                                                                                                                                                                                                                                       Atom (B (False)) -> do do return (Atom (B False))+                                                                                                                                                                                                                                       _ -> throwError "if: expected boolean"+                                                                                                                                                                                                             Atom (B (False)) -> do do return (Atom (B False))+                                                                                                                                                                                                             _ -> throwError "if: expected boolean"+                                                                                                                                                                                            !kl_if_20 <- case kl_if_18 of+                                                                                                                                                                                                             Atom (B (True)) -> do return (Atom (B True))+                                                                                                                                                                                                             Atom (B (False)) -> do do let pat_cond_21 = do return (Atom (B True))+                                                                                                                                                                                                                                           pat_cond_22 = do do return (Atom (B False))+                                                                                                                                                                                                                                        in case kl_V2312 of+                                                                                                                                                                                                                                               kl_V2312@(Atom (N (KI 33))) -> pat_cond_21+                                                                                                                                                                                                                                               _ -> pat_cond_22+                                                                                                                                                                                                             _ -> throwError "if: expected boolean"+                                                                                                                                                                                            case kl_if_20 of+                                                                                                                                                                                                Atom (B (True)) -> do return (Atom (B True))+                                                                                                                                                                                                Atom (B (False)) -> do do return (Atom (B False))+                                                                                                                                                                                                _ -> throwError "if: expected boolean"+                                                                                                                                                                  _ -> throwError "if: expected boolean"+                                                                                                                                                 case kl_if_16 of+                                                                                                                                                     Atom (B (True)) -> do return (Atom (B True))+                                                                                                                                                     Atom (B (False)) -> do do return (Atom (B False))+                                                                                                                                                     _ -> throwError "if: expected boolean"+                                                                                                                       _ -> throwError "if: expected boolean"+                                                                                                       case kl_if_9 of+                                                                                                           Atom (B (True)) -> do return (Atom (B True))+                                                                                                           Atom (B (False)) -> do do return (Atom (B False))+                                                                                                           _ -> throwError "if: expected boolean"+                                                                             _ -> throwError "if: expected boolean"+                                                             case kl_if_5 of+                                                                 Atom (B (True)) -> do return (Atom (B True))+                                                                 Atom (B (False)) -> do do return (Atom (B False))+                                                                 _ -> throwError "if: expected boolean"+                                       in case kl_V2312 of+                                              kl_V2312@(Atom (N (KI 126))) -> pat_cond_0+                                              _ -> pat_cond_1++kl_shen_LBstrRB :: Core.Types.KLValue ->+                   Core.Types.KLContext Core.Types.Env Core.Types.KLValue+kl_shen_LBstrRB (!kl_V2314) = do let !appl_0 = ApplC (Func "lambda" (Context (\(!kl_Parse_shen_LBdbqRB) -> do !appl_1 <- kl_fail+                                                                                                              !appl_2 <- appl_1 `pseq` (kl_Parse_shen_LBdbqRB `pseq` eq appl_1 kl_Parse_shen_LBdbqRB)+                                                                                                              !kl_if_3 <- appl_2 `pseq` kl_not appl_2+                                                                                                              case kl_if_3 of+                                                                                                                  Atom (B (True)) -> do let !appl_4 = ApplC (Func "lambda" (Context (\(!kl_Parse_shen_LBstrcontentsRB) -> do !appl_5 <- kl_fail+                                                                                                                                                                                                                             !appl_6 <- appl_5 `pseq` (kl_Parse_shen_LBstrcontentsRB `pseq` eq appl_5 kl_Parse_shen_LBstrcontentsRB)+                                                                                                                                                                                                                             !kl_if_7 <- appl_6 `pseq` kl_not appl_6+                                                                                                                                                                                                                             case kl_if_7 of+                                                                                                                                                                                                                                 Atom (B (True)) -> do let !appl_8 = ApplC (Func "lambda" (Context (\(!kl_Parse_shen_LBdbqRB) -> do !appl_9 <- kl_fail+                                                                                                                                                                                                                                                                                                                                    !appl_10 <- appl_9 `pseq` (kl_Parse_shen_LBdbqRB `pseq` eq appl_9 kl_Parse_shen_LBdbqRB)+                                                                                                                                                                                                                                                                                                                                    !kl_if_11 <- appl_10 `pseq` kl_not appl_10+                                                                                                                                                                                                                                                                                                                                    case kl_if_11 of+                                                                                                                                                                                                                                                                                                                                        Atom (B (True)) -> do !appl_12 <- kl_Parse_shen_LBdbqRB `pseq` hd kl_Parse_shen_LBdbqRB+                                                                                                                                                                                                                                                                                                                                                              !appl_13 <- kl_Parse_shen_LBstrcontentsRB `pseq` kl_shen_hdtl kl_Parse_shen_LBstrcontentsRB+                                                                                                                                                                                                                                                                                                                                                              appl_12 `pseq` (appl_13 `pseq` kl_shen_pair appl_12 appl_13)+                                                                                                                                                                                                                                                                                                                                        Atom (B (False)) -> do do kl_fail+                                                                                                                                                                                                                                                                                                                                        _ -> throwError "if: expected boolean")))+                                                                                                                                                                                                                                                       !appl_14 <- kl_Parse_shen_LBstrcontentsRB `pseq` kl_shen_LBdbqRB kl_Parse_shen_LBstrcontentsRB+                                                                                                                                                                                                                                                       appl_14 `pseq` applyWrapper appl_8 [appl_14]+                                                                                                                                                                                                                                 Atom (B (False)) -> do do kl_fail+                                                                                                                                                                                                                                 _ -> throwError "if: expected boolean")))+                                                                                                                                        !appl_15 <- kl_Parse_shen_LBdbqRB `pseq` kl_shen_LBstrcontentsRB kl_Parse_shen_LBdbqRB+                                                                                                                                        appl_15 `pseq` applyWrapper appl_4 [appl_15]+                                                                                                                  Atom (B (False)) -> do do kl_fail+                                                                                                                  _ -> throwError "if: expected boolean")))+                                 !appl_16 <- kl_V2314 `pseq` kl_shen_LBdbqRB kl_V2314+                                 appl_16 `pseq` applyWrapper appl_0 [appl_16]++kl_shen_LBdbqRB :: Core.Types.KLValue ->+                   Core.Types.KLContext Core.Types.Env Core.Types.KLValue+kl_shen_LBdbqRB (!kl_V2316) = do !appl_0 <- kl_V2316 `pseq` hd kl_V2316+                                 !kl_if_1 <- appl_0 `pseq` consP appl_0+                                 case kl_if_1 of+                                     Atom (B (True)) -> do let !appl_2 = ApplC (Func "lambda" (Context (\(!kl_Parse_Char) -> do let pat_cond_3 = do !appl_4 <- kl_V2316 `pseq` hd kl_V2316+                                                                                                                                                    !appl_5 <- appl_4 `pseq` tl appl_4+                                                                                                                                                    !appl_6 <- kl_V2316 `pseq` kl_shen_hdtl kl_V2316+                                                                                                                                                    !appl_7 <- appl_5 `pseq` (appl_6 `pseq` kl_shen_pair appl_5 appl_6)+                                                                                                                                                    !appl_8 <- appl_7 `pseq` hd appl_7+                                                                                                                                                    appl_8 `pseq` (kl_Parse_Char `pseq` kl_shen_pair appl_8 kl_Parse_Char)+                                                                                                                                    pat_cond_9 = do do kl_fail+                                                                                                                                 in case kl_Parse_Char of+                                                                                                                                        kl_Parse_Char@(Atom (N (KI 34))) -> pat_cond_3+                                                                                                                                        _ -> pat_cond_9)))+                                                           !appl_10 <- kl_V2316 `pseq` hd kl_V2316+                                                           !appl_11 <- appl_10 `pseq` hd appl_10+                                                           appl_11 `pseq` applyWrapper appl_2 [appl_11]+                                     Atom (B (False)) -> do do kl_fail+                                     _ -> throwError "if: expected boolean"++kl_shen_LBstrcontentsRB :: Core.Types.KLValue ->+                           Core.Types.KLContext Core.Types.Env Core.Types.KLValue+kl_shen_LBstrcontentsRB (!kl_V2318) = do let !appl_0 = ApplC (Func "lambda" (Context (\(!kl_YaccParse) -> do !appl_1 <- kl_fail+                                                                                                             !kl_if_2 <- kl_YaccParse `pseq` (appl_1 `pseq` eq kl_YaccParse appl_1)+                                                                                                             case kl_if_2 of+                                                                                                                 Atom (B (True)) -> do let !appl_3 = ApplC (Func "lambda" (Context (\(!kl_Parse_LBeRB) -> do !appl_4 <- kl_fail+                                                                                                                                                                                                             !appl_5 <- appl_4 `pseq` (kl_Parse_LBeRB `pseq` eq appl_4 kl_Parse_LBeRB)+                                                                                                                                                                                                             !kl_if_6 <- appl_5 `pseq` kl_not appl_5+                                                                                                                                                                                                             case kl_if_6 of+                                                                                                                                                                                                                 Atom (B (True)) -> do !appl_7 <- kl_Parse_LBeRB `pseq` hd kl_Parse_LBeRB+                                                                                                                                                                                                                                       let !appl_8 = Atom Nil+                                                                                                                                                                                                                                       appl_7 `pseq` (appl_8 `pseq` kl_shen_pair appl_7 appl_8)+                                                                                                                                                                                                                 Atom (B (False)) -> do do kl_fail+                                                                                                                                                                                                                 _ -> throwError "if: expected boolean")))+                                                                                                                                       !appl_9 <- kl_V2318 `pseq` kl_LBeRB kl_V2318+                                                                                                                                       appl_9 `pseq` applyWrapper appl_3 [appl_9]+                                                                                                                 Atom (B (False)) -> do do return kl_YaccParse+                                                                                                                 _ -> throwError "if: expected boolean")))+                                         let !appl_10 = ApplC (Func "lambda" (Context (\(!kl_Parse_shen_LBstrcRB) -> do !appl_11 <- kl_fail+                                                                                                                        !appl_12 <- appl_11 `pseq` (kl_Parse_shen_LBstrcRB `pseq` eq appl_11 kl_Parse_shen_LBstrcRB)+                                                                                                                        !kl_if_13 <- appl_12 `pseq` kl_not appl_12+                                                                                                                        case kl_if_13 of+                                                                                                                            Atom (B (True)) -> do let !appl_14 = ApplC (Func "lambda" (Context (\(!kl_Parse_shen_LBstrcontentsRB) -> do !appl_15 <- kl_fail+                                                                                                                                                                                                                                        !appl_16 <- appl_15 `pseq` (kl_Parse_shen_LBstrcontentsRB `pseq` eq appl_15 kl_Parse_shen_LBstrcontentsRB)+                                                                                                                                                                                                                                        !kl_if_17 <- appl_16 `pseq` kl_not appl_16+                                                                                                                                                                                                                                        case kl_if_17 of+                                                                                                                                                                                                                                            Atom (B (True)) -> do !appl_18 <- kl_Parse_shen_LBstrcontentsRB `pseq` hd kl_Parse_shen_LBstrcontentsRB+                                                                                                                                                                                                                                                                  !appl_19 <- kl_Parse_shen_LBstrcRB `pseq` kl_shen_hdtl kl_Parse_shen_LBstrcRB+                                                                                                                                                                                                                                                                  !appl_20 <- kl_Parse_shen_LBstrcontentsRB `pseq` kl_shen_hdtl kl_Parse_shen_LBstrcontentsRB+                                                                                                                                                                                                                                                                  !appl_21 <- appl_19 `pseq` (appl_20 `pseq` klCons appl_19 appl_20)+                                                                                                                                                                                                                                                                  appl_18 `pseq` (appl_21 `pseq` kl_shen_pair appl_18 appl_21)+                                                                                                                                                                                                                                            Atom (B (False)) -> do do kl_fail+                                                                                                                                                                                                                                            _ -> throwError "if: expected boolean")))+                                                                                                                                                  !appl_22 <- kl_Parse_shen_LBstrcRB `pseq` kl_shen_LBstrcontentsRB kl_Parse_shen_LBstrcRB+                                                                                                                                                  appl_22 `pseq` applyWrapper appl_14 [appl_22]+                                                                                                                            Atom (B (False)) -> do do kl_fail+                                                                                                                            _ -> throwError "if: expected boolean")))+                                         !appl_23 <- kl_V2318 `pseq` kl_shen_LBstrcRB kl_V2318+                                         !appl_24 <- appl_23 `pseq` applyWrapper appl_10 [appl_23]+                                         appl_24 `pseq` applyWrapper appl_0 [appl_24]++kl_shen_LBbyteRB :: Core.Types.KLValue ->+                    Core.Types.KLContext Core.Types.Env Core.Types.KLValue+kl_shen_LBbyteRB (!kl_V2320) = do !appl_0 <- kl_V2320 `pseq` hd kl_V2320+                                  !kl_if_1 <- appl_0 `pseq` consP appl_0+                                  case kl_if_1 of+                                      Atom (B (True)) -> do let !appl_2 = ApplC (Func "lambda" (Context (\(!kl_Parse_Char) -> do !appl_3 <- kl_V2320 `pseq` hd kl_V2320+                                                                                                                                 !appl_4 <- appl_3 `pseq` tl appl_3+                                                                                                                                 !appl_5 <- kl_V2320 `pseq` kl_shen_hdtl kl_V2320+                                                                                                                                 !appl_6 <- appl_4 `pseq` (appl_5 `pseq` kl_shen_pair appl_4 appl_5)+                                                                                                                                 !appl_7 <- appl_6 `pseq` hd appl_6+                                                                                                                                 !appl_8 <- kl_Parse_Char `pseq` nToString kl_Parse_Char+                                                                                                                                 appl_7 `pseq` (appl_8 `pseq` kl_shen_pair appl_7 appl_8))))+                                                            !appl_9 <- kl_V2320 `pseq` hd kl_V2320+                                                            !appl_10 <- appl_9 `pseq` hd appl_9+                                                            appl_10 `pseq` applyWrapper appl_2 [appl_10]+                                      Atom (B (False)) -> do do kl_fail+                                      _ -> throwError "if: expected boolean"++kl_shen_LBstrcRB :: Core.Types.KLValue ->+                    Core.Types.KLContext Core.Types.Env Core.Types.KLValue+kl_shen_LBstrcRB (!kl_V2322) = do !appl_0 <- kl_V2322 `pseq` hd kl_V2322+                                  !kl_if_1 <- appl_0 `pseq` consP appl_0+                                  case kl_if_1 of+                                      Atom (B (True)) -> do let !appl_2 = ApplC (Func "lambda" (Context (\(!kl_Parse_Char) -> do !appl_3 <- kl_Parse_Char `pseq` eq kl_Parse_Char (Core.Types.Atom (Core.Types.N (Core.Types.KI 34)))+                                                                                                                                 !kl_if_4 <- appl_3 `pseq` kl_not appl_3+                                                                                                                                 case kl_if_4 of+                                                                                                                                     Atom (B (True)) -> do !appl_5 <- kl_V2322 `pseq` hd kl_V2322+                                                                                                                                                           !appl_6 <- appl_5 `pseq` tl appl_5+                                                                                                                                                           !appl_7 <- kl_V2322 `pseq` kl_shen_hdtl kl_V2322+                                                                                                                                                           !appl_8 <- appl_6 `pseq` (appl_7 `pseq` kl_shen_pair appl_6 appl_7)+                                                                                                                                                           !appl_9 <- appl_8 `pseq` hd appl_8+                                                                                                                                                           !appl_10 <- kl_Parse_Char `pseq` nToString kl_Parse_Char+                                                                                                                                                           appl_9 `pseq` (appl_10 `pseq` kl_shen_pair appl_9 appl_10)+                                                                                                                                     Atom (B (False)) -> do do kl_fail+                                                                                                                                     _ -> throwError "if: expected boolean")))+                                                            !appl_11 <- kl_V2322 `pseq` hd kl_V2322+                                                            !appl_12 <- appl_11 `pseq` hd appl_11+                                                            appl_12 `pseq` applyWrapper appl_2 [appl_12]+                                      Atom (B (False)) -> do do kl_fail+                                      _ -> throwError "if: expected boolean"++kl_shen_LBnumberRB :: Core.Types.KLValue ->+                      Core.Types.KLContext Core.Types.Env Core.Types.KLValue+kl_shen_LBnumberRB (!kl_V2324) = do let !appl_0 = ApplC (Func "lambda" (Context (\(!kl_YaccParse) -> do !appl_1 <- kl_fail+                                                                                                        !kl_if_2 <- kl_YaccParse `pseq` (appl_1 `pseq` eq kl_YaccParse appl_1)+                                                                                                        case kl_if_2 of+                                                                                                            Atom (B (True)) -> do let !appl_3 = ApplC (Func "lambda" (Context (\(!kl_YaccParse) -> do !appl_4 <- kl_fail+                                                                                                                                                                                                      !kl_if_5 <- kl_YaccParse `pseq` (appl_4 `pseq` eq kl_YaccParse appl_4)+                                                                                                                                                                                                      case kl_if_5 of+                                                                                                                                                                                                          Atom (B (True)) -> do let !appl_6 = ApplC (Func "lambda" (Context (\(!kl_YaccParse) -> do !appl_7 <- kl_fail+                                                                                                                                                                                                                                                                                                    !kl_if_8 <- kl_YaccParse `pseq` (appl_7 `pseq` eq kl_YaccParse appl_7)+                                                                                                                                                                                                                                                                                                    case kl_if_8 of+                                                                                                                                                                                                                                                                                                        Atom (B (True)) -> do let !appl_9 = ApplC (Func "lambda" (Context (\(!kl_YaccParse) -> do !appl_10 <- kl_fail+                                                                                                                                                                                                                                                                                                                                                                                                  !kl_if_11 <- kl_YaccParse `pseq` (appl_10 `pseq` eq kl_YaccParse appl_10)+                                                                                                                                                                                                                                                                                                                                                                                                  case kl_if_11 of+                                                                                                                                                                                                                                                                                                                                                                                                      Atom (B (True)) -> do let !appl_12 = ApplC (Func "lambda" (Context (\(!kl_YaccParse) -> do !appl_13 <- kl_fail+                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                 !kl_if_14 <- kl_YaccParse `pseq` (appl_13 `pseq` eq kl_YaccParse appl_13)+                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                 case kl_if_14 of+                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                     Atom (B (True)) -> do let !appl_15 = ApplC (Func "lambda" (Context (\(!kl_Parse_shen_LBdigitsRB) -> do !appl_16 <- kl_fail+                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                            !appl_17 <- appl_16 `pseq` (kl_Parse_shen_LBdigitsRB `pseq` eq appl_16 kl_Parse_shen_LBdigitsRB)+                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                            !kl_if_18 <- appl_17 `pseq` kl_not appl_17+                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                            case kl_if_18 of+                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                Atom (B (True)) -> do !appl_19 <- kl_Parse_shen_LBdigitsRB `pseq` hd kl_Parse_shen_LBdigitsRB+                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                      !appl_20 <- kl_Parse_shen_LBdigitsRB `pseq` kl_shen_hdtl kl_Parse_shen_LBdigitsRB+                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                      !appl_21 <- appl_20 `pseq` kl_reverse appl_20+                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                      !appl_22 <- appl_21 `pseq` kl_shen_pre appl_21 (Core.Types.Atom (Core.Types.N (Core.Types.KI 0)))+                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                      appl_19 `pseq` (appl_22 `pseq` kl_shen_pair appl_19 appl_22)+                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                Atom (B (False)) -> do do kl_fail+                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                _ -> throwError "if: expected boolean")))+                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                           !appl_23 <- kl_V2324 `pseq` kl_shen_LBdigitsRB kl_V2324+                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                           appl_23 `pseq` applyWrapper appl_15 [appl_23]+                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                     Atom (B (False)) -> do do return kl_YaccParse+                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                     _ -> throwError "if: expected boolean")))+                                                                                                                                                                                                                                                                                                                                                                                                                            let !appl_24 = ApplC (Func "lambda" (Context (\(!kl_Parse_shen_LBpredigitsRB) -> do !appl_25 <- kl_fail+                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                !appl_26 <- appl_25 `pseq` (kl_Parse_shen_LBpredigitsRB `pseq` eq appl_25 kl_Parse_shen_LBpredigitsRB)+                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                !kl_if_27 <- appl_26 `pseq` kl_not appl_26+                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                case kl_if_27 of+                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                    Atom (B (True)) -> do let !appl_28 = ApplC (Func "lambda" (Context (\(!kl_Parse_shen_LBstopRB) -> do !appl_29 <- kl_fail+                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                         !appl_30 <- appl_29 `pseq` (kl_Parse_shen_LBstopRB `pseq` eq appl_29 kl_Parse_shen_LBstopRB)+                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                         !kl_if_31 <- appl_30 `pseq` kl_not appl_30+                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                         case kl_if_31 of+                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                             Atom (B (True)) -> do let !appl_32 = ApplC (Func "lambda" (Context (\(!kl_Parse_shen_LBpostdigitsRB) -> do !appl_33 <- kl_fail+                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                        !appl_34 <- appl_33 `pseq` (kl_Parse_shen_LBpostdigitsRB `pseq` eq appl_33 kl_Parse_shen_LBpostdigitsRB)+                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                        !kl_if_35 <- appl_34 `pseq` kl_not appl_34+                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                        case kl_if_35 of+                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                            Atom (B (True)) -> do !appl_36 <- kl_Parse_shen_LBpostdigitsRB `pseq` hd kl_Parse_shen_LBpostdigitsRB+                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                  !appl_37 <- kl_Parse_shen_LBpredigitsRB `pseq` kl_shen_hdtl kl_Parse_shen_LBpredigitsRB+                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                  !appl_38 <- appl_37 `pseq` kl_reverse appl_37+                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                  !appl_39 <- appl_38 `pseq` kl_shen_pre appl_38 (Core.Types.Atom (Core.Types.N (Core.Types.KI 0)))+                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                  !appl_40 <- kl_Parse_shen_LBpostdigitsRB `pseq` kl_shen_hdtl kl_Parse_shen_LBpostdigitsRB+                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                  !appl_41 <- appl_40 `pseq` kl_shen_post appl_40 (Core.Types.Atom (Core.Types.N (Core.Types.KI 1)))+                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                  !appl_42 <- appl_39 `pseq` (appl_41 `pseq` add appl_39 appl_41)+                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                  appl_36 `pseq` (appl_42 `pseq` kl_shen_pair appl_36 appl_42)+                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                            Atom (B (False)) -> do do kl_fail+                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                            _ -> throwError "if: expected boolean")))+                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                   !appl_43 <- kl_Parse_shen_LBstopRB `pseq` kl_shen_LBpostdigitsRB kl_Parse_shen_LBstopRB+                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                   appl_43 `pseq` applyWrapper appl_32 [appl_43]+                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                             Atom (B (False)) -> do do kl_fail+                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                             _ -> throwError "if: expected boolean")))+                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                          !appl_44 <- kl_Parse_shen_LBpredigitsRB `pseq` kl_shen_LBstopRB kl_Parse_shen_LBpredigitsRB+                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                          appl_44 `pseq` applyWrapper appl_28 [appl_44]+                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                    Atom (B (False)) -> do do kl_fail+                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                    _ -> throwError "if: expected boolean")))+                                                                                                                                                                                                                                                                                                                                                                                                                            !appl_45 <- kl_V2324 `pseq` kl_shen_LBpredigitsRB kl_V2324+                                                                                                                                                                                                                                                                                                                                                                                                                            !appl_46 <- appl_45 `pseq` applyWrapper appl_24 [appl_45]+                                                                                                                                                                                                                                                                                                                                                                                                                            appl_46 `pseq` applyWrapper appl_12 [appl_46]+                                                                                                                                                                                                                                                                                                                                                                                                      Atom (B (False)) -> do do return kl_YaccParse+                                                                                                                                                                                                                                                                                                                                                                                                      _ -> throwError "if: expected boolean")))+                                                                                                                                                                                                                                                                                                                              let !appl_47 = ApplC (Func "lambda" (Context (\(!kl_Parse_shen_LBdigitsRB) -> do !appl_48 <- kl_fail+                                                                                                                                                                                                                                                                                                                                                                                                               !appl_49 <- appl_48 `pseq` (kl_Parse_shen_LBdigitsRB `pseq` eq appl_48 kl_Parse_shen_LBdigitsRB)+                                                                                                                                                                                                                                                                                                                                                                                                               !kl_if_50 <- appl_49 `pseq` kl_not appl_49+                                                                                                                                                                                                                                                                                                                                                                                                               case kl_if_50 of+                                                                                                                                                                                                                                                                                                                                                                                                                   Atom (B (True)) -> do let !appl_51 = ApplC (Func "lambda" (Context (\(!kl_Parse_shen_LBERB) -> do !appl_52 <- kl_fail+                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                     !appl_53 <- appl_52 `pseq` (kl_Parse_shen_LBERB `pseq` eq appl_52 kl_Parse_shen_LBERB)+                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                     !kl_if_54 <- appl_53 `pseq` kl_not appl_53+                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                     case kl_if_54 of+                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                         Atom (B (True)) -> do let !appl_55 = ApplC (Func "lambda" (Context (\(!kl_Parse_shen_LBlog10RB) -> do !appl_56 <- kl_fail+                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                               !appl_57 <- appl_56 `pseq` (kl_Parse_shen_LBlog10RB `pseq` eq appl_56 kl_Parse_shen_LBlog10RB)+                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                               !kl_if_58 <- appl_57 `pseq` kl_not appl_57+                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                               case kl_if_58 of+                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                   Atom (B (True)) -> do !appl_59 <- kl_Parse_shen_LBlog10RB `pseq` hd kl_Parse_shen_LBlog10RB+                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                         !appl_60 <- kl_Parse_shen_LBlog10RB `pseq` kl_shen_hdtl kl_Parse_shen_LBlog10RB+                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                         !appl_61 <- appl_60 `pseq` kl_shen_expt (Core.Types.Atom (Core.Types.N (Core.Types.KI 10))) appl_60+                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                         !appl_62 <- kl_Parse_shen_LBdigitsRB `pseq` kl_shen_hdtl kl_Parse_shen_LBdigitsRB+                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                         !appl_63 <- appl_62 `pseq` kl_reverse appl_62+                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                         !appl_64 <- appl_63 `pseq` kl_shen_pre appl_63 (Core.Types.Atom (Core.Types.N (Core.Types.KI 0)))+                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                         !appl_65 <- appl_61 `pseq` (appl_64 `pseq` multiply appl_61 appl_64)+                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                         appl_59 `pseq` (appl_65 `pseq` kl_shen_pair appl_59 appl_65)+                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                   Atom (B (False)) -> do do kl_fail+                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                   _ -> throwError "if: expected boolean")))+                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                               !appl_66 <- kl_Parse_shen_LBERB `pseq` kl_shen_LBlog10RB kl_Parse_shen_LBERB+                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                               appl_66 `pseq` applyWrapper appl_55 [appl_66]+                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                         Atom (B (False)) -> do do kl_fail+                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                         _ -> throwError "if: expected boolean")))+                                                                                                                                                                                                                                                                                                                                                                                                                                         !appl_67 <- kl_Parse_shen_LBdigitsRB `pseq` kl_shen_LBERB kl_Parse_shen_LBdigitsRB+                                                                                                                                                                                                                                                                                                                                                                                                                                         appl_67 `pseq` applyWrapper appl_51 [appl_67]+                                                                                                                                                                                                                                                                                                                                                                                                                   Atom (B (False)) -> do do kl_fail+                                                                                                                                                                                                                                                                                                                                                                                                                   _ -> throwError "if: expected boolean")))+                                                                                                                                                                                                                                                                                                                              !appl_68 <- kl_V2324 `pseq` kl_shen_LBdigitsRB kl_V2324+                                                                                                                                                                                                                                                                                                                              !appl_69 <- appl_68 `pseq` applyWrapper appl_47 [appl_68]+                                                                                                                                                                                                                                                                                                                              appl_69 `pseq` applyWrapper appl_9 [appl_69]+                                                                                                                                                                                                                                                                                                        Atom (B (False)) -> do do return kl_YaccParse+                                                                                                                                                                                                                                                                                                        _ -> throwError "if: expected boolean")))+                                                                                                                                                                                                                                let !appl_70 = ApplC (Func "lambda" (Context (\(!kl_Parse_shen_LBpredigitsRB) -> do !appl_71 <- kl_fail+                                                                                                                                                                                                                                                                                                                    !appl_72 <- appl_71 `pseq` (kl_Parse_shen_LBpredigitsRB `pseq` eq appl_71 kl_Parse_shen_LBpredigitsRB)+                                                                                                                                                                                                                                                                                                                    !kl_if_73 <- appl_72 `pseq` kl_not appl_72+                                                                                                                                                                                                                                                                                                                    case kl_if_73 of+                                                                                                                                                                                                                                                                                                                        Atom (B (True)) -> do let !appl_74 = ApplC (Func "lambda" (Context (\(!kl_Parse_shen_LBstopRB) -> do !appl_75 <- kl_fail+                                                                                                                                                                                                                                                                                                                                                                                                                             !appl_76 <- appl_75 `pseq` (kl_Parse_shen_LBstopRB `pseq` eq appl_75 kl_Parse_shen_LBstopRB)+                                                                                                                                                                                                                                                                                                                                                                                                                             !kl_if_77 <- appl_76 `pseq` kl_not appl_76+                                                                                                                                                                                                                                                                                                                                                                                                                             case kl_if_77 of+                                                                                                                                                                                                                                                                                                                                                                                                                                 Atom (B (True)) -> do let !appl_78 = ApplC (Func "lambda" (Context (\(!kl_Parse_shen_LBpostdigitsRB) -> do !appl_79 <- kl_fail+                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                            !appl_80 <- appl_79 `pseq` (kl_Parse_shen_LBpostdigitsRB `pseq` eq appl_79 kl_Parse_shen_LBpostdigitsRB)+                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                            !kl_if_81 <- appl_80 `pseq` kl_not appl_80+                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                            case kl_if_81 of+                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                Atom (B (True)) -> do let !appl_82 = ApplC (Func "lambda" (Context (\(!kl_Parse_shen_LBERB) -> do !appl_83 <- kl_fail+                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                  !appl_84 <- appl_83 `pseq` (kl_Parse_shen_LBERB `pseq` eq appl_83 kl_Parse_shen_LBERB)+                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                  !kl_if_85 <- appl_84 `pseq` kl_not appl_84+                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                  case kl_if_85 of+                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                      Atom (B (True)) -> do let !appl_86 = ApplC (Func "lambda" (Context (\(!kl_Parse_shen_LBlog10RB) -> do !appl_87 <- kl_fail+                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                            !appl_88 <- appl_87 `pseq` (kl_Parse_shen_LBlog10RB `pseq` eq appl_87 kl_Parse_shen_LBlog10RB)+                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                            !kl_if_89 <- appl_88 `pseq` kl_not appl_88+                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                            case kl_if_89 of+                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                Atom (B (True)) -> do !appl_90 <- kl_Parse_shen_LBlog10RB `pseq` hd kl_Parse_shen_LBlog10RB+                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                      !appl_91 <- kl_Parse_shen_LBlog10RB `pseq` kl_shen_hdtl kl_Parse_shen_LBlog10RB+                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                      !appl_92 <- appl_91 `pseq` kl_shen_expt (Core.Types.Atom (Core.Types.N (Core.Types.KI 10))) appl_91+                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                      !appl_93 <- kl_Parse_shen_LBpredigitsRB `pseq` kl_shen_hdtl kl_Parse_shen_LBpredigitsRB+                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                      !appl_94 <- appl_93 `pseq` kl_reverse appl_93+                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                      !appl_95 <- appl_94 `pseq` kl_shen_pre appl_94 (Core.Types.Atom (Core.Types.N (Core.Types.KI 0)))+                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                      !appl_96 <- kl_Parse_shen_LBpostdigitsRB `pseq` kl_shen_hdtl kl_Parse_shen_LBpostdigitsRB+                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                      !appl_97 <- appl_96 `pseq` kl_shen_post appl_96 (Core.Types.Atom (Core.Types.N (Core.Types.KI 1)))+                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                      !appl_98 <- appl_95 `pseq` (appl_97 `pseq` add appl_95 appl_97)+                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                      !appl_99 <- appl_92 `pseq` (appl_98 `pseq` multiply appl_92 appl_98)+                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                      appl_90 `pseq` (appl_99 `pseq` kl_shen_pair appl_90 appl_99)+                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                Atom (B (False)) -> do do kl_fail+                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                _ -> throwError "if: expected boolean")))+                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                            !appl_100 <- kl_Parse_shen_LBERB `pseq` kl_shen_LBlog10RB kl_Parse_shen_LBERB+                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                            appl_100 `pseq` applyWrapper appl_86 [appl_100]+                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                      Atom (B (False)) -> do do kl_fail+                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                      _ -> throwError "if: expected boolean")))+                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                      !appl_101 <- kl_Parse_shen_LBpostdigitsRB `pseq` kl_shen_LBERB kl_Parse_shen_LBpostdigitsRB+                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                      appl_101 `pseq` applyWrapper appl_82 [appl_101]+                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                Atom (B (False)) -> do do kl_fail+                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                _ -> throwError "if: expected boolean")))+                                                                                                                                                                                                                                                                                                                                                                                                                                                       !appl_102 <- kl_Parse_shen_LBstopRB `pseq` kl_shen_LBpostdigitsRB kl_Parse_shen_LBstopRB+                                                                                                                                                                                                                                                                                                                                                                                                                                                       appl_102 `pseq` applyWrapper appl_78 [appl_102]+                                                                                                                                                                                                                                                                                                                                                                                                                                 Atom (B (False)) -> do do kl_fail+                                                                                                                                                                                                                                                                                                                                                                                                                                 _ -> throwError "if: expected boolean")))+                                                                                                                                                                                                                                                                                                                                              !appl_103 <- kl_Parse_shen_LBpredigitsRB `pseq` kl_shen_LBstopRB kl_Parse_shen_LBpredigitsRB+                                                                                                                                                                                                                                                                                                                                              appl_103 `pseq` applyWrapper appl_74 [appl_103]+                                                                                                                                                                                                                                                                                                                        Atom (B (False)) -> do do kl_fail+                                                                                                                                                                                                                                                                                                                        _ -> throwError "if: expected boolean")))+                                                                                                                                                                                                                                !appl_104 <- kl_V2324 `pseq` kl_shen_LBpredigitsRB kl_V2324+                                                                                                                                                                                                                                !appl_105 <- appl_104 `pseq` applyWrapper appl_70 [appl_104]+                                                                                                                                                                                                                                appl_105 `pseq` applyWrapper appl_6 [appl_105]+                                                                                                                                                                                                          Atom (B (False)) -> do do return kl_YaccParse+                                                                                                                                                                                                          _ -> throwError "if: expected boolean")))+                                                                                                                                  let !appl_106 = ApplC (Func "lambda" (Context (\(!kl_Parse_shen_LBplusRB) -> do !appl_107 <- kl_fail+                                                                                                                                                                                                                  !appl_108 <- appl_107 `pseq` (kl_Parse_shen_LBplusRB `pseq` eq appl_107 kl_Parse_shen_LBplusRB)+                                                                                                                                                                                                                  !kl_if_109 <- appl_108 `pseq` kl_not appl_108+                                                                                                                                                                                                                  case kl_if_109 of+                                                                                                                                                                                                                      Atom (B (True)) -> do let !appl_110 = ApplC (Func "lambda" (Context (\(!kl_Parse_shen_LBnumberRB) -> do !appl_111 <- kl_fail+                                                                                                                                                                                                                                                                                                                              !appl_112 <- appl_111 `pseq` (kl_Parse_shen_LBnumberRB `pseq` eq appl_111 kl_Parse_shen_LBnumberRB)+                                                                                                                                                                                                                                                                                                                              !kl_if_113 <- appl_112 `pseq` kl_not appl_112+                                                                                                                                                                                                                                                                                                                              case kl_if_113 of+                                                                                                                                                                                                                                                                                                                                  Atom (B (True)) -> do !appl_114 <- kl_Parse_shen_LBnumberRB `pseq` hd kl_Parse_shen_LBnumberRB+                                                                                                                                                                                                                                                                                                                                                        !appl_115 <- kl_Parse_shen_LBnumberRB `pseq` kl_shen_hdtl kl_Parse_shen_LBnumberRB+                                                                                                                                                                                                                                                                                                                                                        appl_114 `pseq` (appl_115 `pseq` kl_shen_pair appl_114 appl_115)+                                                                                                                                                                                                                                                                                                                                  Atom (B (False)) -> do do kl_fail+                                                                                                                                                                                                                                                                                                                                  _ -> throwError "if: expected boolean")))+                                                                                                                                                                                                                                            !appl_116 <- kl_Parse_shen_LBplusRB `pseq` kl_shen_LBnumberRB kl_Parse_shen_LBplusRB+                                                                                                                                                                                                                                            appl_116 `pseq` applyWrapper appl_110 [appl_116]+                                                                                                                                                                                                                      Atom (B (False)) -> do do kl_fail+                                                                                                                                                                                                                      _ -> throwError "if: expected boolean")))+                                                                                                                                  !appl_117 <- kl_V2324 `pseq` kl_shen_LBplusRB kl_V2324+                                                                                                                                  !appl_118 <- appl_117 `pseq` applyWrapper appl_106 [appl_117]+                                                                                                                                  appl_118 `pseq` applyWrapper appl_3 [appl_118]+                                                                                                            Atom (B (False)) -> do do return kl_YaccParse+                                                                                                            _ -> throwError "if: expected boolean")))+                                    let !appl_119 = ApplC (Func "lambda" (Context (\(!kl_Parse_shen_LBminusRB) -> do !appl_120 <- kl_fail+                                                                                                                     !appl_121 <- appl_120 `pseq` (kl_Parse_shen_LBminusRB `pseq` eq appl_120 kl_Parse_shen_LBminusRB)+                                                                                                                     !kl_if_122 <- appl_121 `pseq` kl_not appl_121+                                                                                                                     case kl_if_122 of+                                                                                                                         Atom (B (True)) -> do let !appl_123 = ApplC (Func "lambda" (Context (\(!kl_Parse_shen_LBnumberRB) -> do !appl_124 <- kl_fail+                                                                                                                                                                                                                                 !appl_125 <- appl_124 `pseq` (kl_Parse_shen_LBnumberRB `pseq` eq appl_124 kl_Parse_shen_LBnumberRB)+                                                                                                                                                                                                                                 !kl_if_126 <- appl_125 `pseq` kl_not appl_125+                                                                                                                                                                                                                                 case kl_if_126 of+                                                                                                                                                                                                                                     Atom (B (True)) -> do !appl_127 <- kl_Parse_shen_LBnumberRB `pseq` hd kl_Parse_shen_LBnumberRB+                                                                                                                                                                                                                                                           !appl_128 <- kl_Parse_shen_LBnumberRB `pseq` kl_shen_hdtl kl_Parse_shen_LBnumberRB+                                                                                                                                                                                                                                                           !appl_129 <- appl_128 `pseq` Primitives.subtract (Core.Types.Atom (Core.Types.N (Core.Types.KI 0))) appl_128+                                                                                                                                                                                                                                                           appl_127 `pseq` (appl_129 `pseq` kl_shen_pair appl_127 appl_129)+                                                                                                                                                                                                                                     Atom (B (False)) -> do do kl_fail+                                                                                                                                                                                                                                     _ -> throwError "if: expected boolean")))+                                                                                                                                               !appl_130 <- kl_Parse_shen_LBminusRB `pseq` kl_shen_LBnumberRB kl_Parse_shen_LBminusRB+                                                                                                                                               appl_130 `pseq` applyWrapper appl_123 [appl_130]+                                                                                                                         Atom (B (False)) -> do do kl_fail+                                                                                                                         _ -> throwError "if: expected boolean")))+                                    !appl_131 <- kl_V2324 `pseq` kl_shen_LBminusRB kl_V2324+                                    !appl_132 <- appl_131 `pseq` applyWrapper appl_119 [appl_131]+                                    appl_132 `pseq` applyWrapper appl_0 [appl_132]++kl_shen_LBERB :: Core.Types.KLValue ->+                 Core.Types.KLContext Core.Types.Env Core.Types.KLValue+kl_shen_LBERB (!kl_V2326) = do !appl_0 <- kl_V2326 `pseq` hd kl_V2326+                               !kl_if_1 <- appl_0 `pseq` consP appl_0+                               !kl_if_2 <- case kl_if_1 of+                                               Atom (B (True)) -> do !appl_3 <- kl_V2326 `pseq` hd kl_V2326+                                                                     !appl_4 <- appl_3 `pseq` hd appl_3+                                                                     !kl_if_5 <- appl_4 `pseq` eq (Core.Types.Atom (Core.Types.N (Core.Types.KI 101))) appl_4+                                                                     case kl_if_5 of+                                                                         Atom (B (True)) -> do return (Atom (B True))+                                                                         Atom (B (False)) -> do do return (Atom (B False))+                                                                         _ -> throwError "if: expected boolean"+                                               Atom (B (False)) -> do do return (Atom (B False))+                                               _ -> throwError "if: expected boolean"+                               case kl_if_2 of+                                   Atom (B (True)) -> do !appl_6 <- kl_V2326 `pseq` hd kl_V2326+                                                         !appl_7 <- appl_6 `pseq` tl appl_6+                                                         !appl_8 <- kl_V2326 `pseq` kl_shen_hdtl kl_V2326+                                                         !appl_9 <- appl_7 `pseq` (appl_8 `pseq` kl_shen_pair appl_7 appl_8)+                                                         !appl_10 <- appl_9 `pseq` hd appl_9+                                                         appl_10 `pseq` kl_shen_pair appl_10 (Core.Types.Atom (Core.Types.UnboundSym "shen.skip"))+                                   Atom (B (False)) -> do do kl_fail+                                   _ -> throwError "if: expected boolean"++kl_shen_LBlog10RB :: Core.Types.KLValue ->+                     Core.Types.KLContext Core.Types.Env Core.Types.KLValue+kl_shen_LBlog10RB (!kl_V2328) = do let !appl_0 = ApplC (Func "lambda" (Context (\(!kl_YaccParse) -> do !appl_1 <- kl_fail+                                                                                                       !kl_if_2 <- kl_YaccParse `pseq` (appl_1 `pseq` eq kl_YaccParse appl_1)+                                                                                                       case kl_if_2 of+                                                                                                           Atom (B (True)) -> do let !appl_3 = ApplC (Func "lambda" (Context (\(!kl_Parse_shen_LBdigitsRB) -> do !appl_4 <- kl_fail+                                                                                                                                                                                                                 !appl_5 <- appl_4 `pseq` (kl_Parse_shen_LBdigitsRB `pseq` eq appl_4 kl_Parse_shen_LBdigitsRB)+                                                                                                                                                                                                                 !kl_if_6 <- appl_5 `pseq` kl_not appl_5+                                                                                                                                                                                                                 case kl_if_6 of+                                                                                                                                                                                                                     Atom (B (True)) -> do !appl_7 <- kl_Parse_shen_LBdigitsRB `pseq` hd kl_Parse_shen_LBdigitsRB+                                                                                                                                                                                                                                           !appl_8 <- kl_Parse_shen_LBdigitsRB `pseq` kl_shen_hdtl kl_Parse_shen_LBdigitsRB+                                                                                                                                                                                                                                           !appl_9 <- appl_8 `pseq` kl_reverse appl_8+                                                                                                                                                                                                                                           !appl_10 <- appl_9 `pseq` kl_shen_pre appl_9 (Core.Types.Atom (Core.Types.N (Core.Types.KI 0)))+                                                                                                                                                                                                                                           appl_7 `pseq` (appl_10 `pseq` kl_shen_pair appl_7 appl_10)+                                                                                                                                                                                                                     Atom (B (False)) -> do do kl_fail+                                                                                                                                                                                                                     _ -> throwError "if: expected boolean")))+                                                                                                                                 !appl_11 <- kl_V2328 `pseq` kl_shen_LBdigitsRB kl_V2328+                                                                                                                                 appl_11 `pseq` applyWrapper appl_3 [appl_11]+                                                                                                           Atom (B (False)) -> do do return kl_YaccParse+                                                                                                           _ -> throwError "if: expected boolean")))+                                   let !appl_12 = ApplC (Func "lambda" (Context (\(!kl_Parse_shen_LBminusRB) -> do !appl_13 <- kl_fail+                                                                                                                   !appl_14 <- appl_13 `pseq` (kl_Parse_shen_LBminusRB `pseq` eq appl_13 kl_Parse_shen_LBminusRB)+                                                                                                                   !kl_if_15 <- appl_14 `pseq` kl_not appl_14+                                                                                                                   case kl_if_15 of+                                                                                                                       Atom (B (True)) -> do let !appl_16 = ApplC (Func "lambda" (Context (\(!kl_Parse_shen_LBdigitsRB) -> do !appl_17 <- kl_fail+                                                                                                                                                                                                                              !appl_18 <- appl_17 `pseq` (kl_Parse_shen_LBdigitsRB `pseq` eq appl_17 kl_Parse_shen_LBdigitsRB)+                                                                                                                                                                                                                              !kl_if_19 <- appl_18 `pseq` kl_not appl_18+                                                                                                                                                                                                                              case kl_if_19 of+                                                                                                                                                                                                                                  Atom (B (True)) -> do !appl_20 <- kl_Parse_shen_LBdigitsRB `pseq` hd kl_Parse_shen_LBdigitsRB+                                                                                                                                                                                                                                                        !appl_21 <- kl_Parse_shen_LBdigitsRB `pseq` kl_shen_hdtl kl_Parse_shen_LBdigitsRB+                                                                                                                                                                                                                                                        !appl_22 <- appl_21 `pseq` kl_reverse appl_21+                                                                                                                                                                                                                                                        !appl_23 <- appl_22 `pseq` kl_shen_pre appl_22 (Core.Types.Atom (Core.Types.N (Core.Types.KI 0)))+                                                                                                                                                                                                                                                        !appl_24 <- appl_23 `pseq` Primitives.subtract (Core.Types.Atom (Core.Types.N (Core.Types.KI 0))) appl_23+                                                                                                                                                                                                                                                        appl_20 `pseq` (appl_24 `pseq` kl_shen_pair appl_20 appl_24)+                                                                                                                                                                                                                                  Atom (B (False)) -> do do kl_fail+                                                                                                                                                                                                                                  _ -> throwError "if: expected boolean")))+                                                                                                                                             !appl_25 <- kl_Parse_shen_LBminusRB `pseq` kl_shen_LBdigitsRB kl_Parse_shen_LBminusRB+                                                                                                                                             appl_25 `pseq` applyWrapper appl_16 [appl_25]+                                                                                                                       Atom (B (False)) -> do do kl_fail+                                                                                                                       _ -> throwError "if: expected boolean")))+                                   !appl_26 <- kl_V2328 `pseq` kl_shen_LBminusRB kl_V2328+                                   !appl_27 <- appl_26 `pseq` applyWrapper appl_12 [appl_26]+                                   appl_27 `pseq` applyWrapper appl_0 [appl_27]++kl_shen_LBplusRB :: Core.Types.KLValue ->+                    Core.Types.KLContext Core.Types.Env Core.Types.KLValue+kl_shen_LBplusRB (!kl_V2330) = do !appl_0 <- kl_V2330 `pseq` hd kl_V2330+                                  !kl_if_1 <- appl_0 `pseq` consP appl_0+                                  case kl_if_1 of+                                      Atom (B (True)) -> do let !appl_2 = ApplC (Func "lambda" (Context (\(!kl_Parse_Char) -> do let pat_cond_3 = do !appl_4 <- kl_V2330 `pseq` hd kl_V2330+                                                                                                                                                     !appl_5 <- appl_4 `pseq` tl appl_4+                                                                                                                                                     !appl_6 <- kl_V2330 `pseq` kl_shen_hdtl kl_V2330+                                                                                                                                                     !appl_7 <- appl_5 `pseq` (appl_6 `pseq` kl_shen_pair appl_5 appl_6)+                                                                                                                                                     !appl_8 <- appl_7 `pseq` hd appl_7+                                                                                                                                                     appl_8 `pseq` (kl_Parse_Char `pseq` kl_shen_pair appl_8 kl_Parse_Char)+                                                                                                                                     pat_cond_9 = do do kl_fail+                                                                                                                                  in case kl_Parse_Char of+                                                                                                                                         kl_Parse_Char@(Atom (N (KI 43))) -> pat_cond_3+                                                                                                                                         _ -> pat_cond_9)))+                                                            !appl_10 <- kl_V2330 `pseq` hd kl_V2330+                                                            !appl_11 <- appl_10 `pseq` hd appl_10+                                                            appl_11 `pseq` applyWrapper appl_2 [appl_11]+                                      Atom (B (False)) -> do do kl_fail+                                      _ -> throwError "if: expected boolean"++kl_shen_LBstopRB :: Core.Types.KLValue ->+                    Core.Types.KLContext Core.Types.Env Core.Types.KLValue+kl_shen_LBstopRB (!kl_V2332) = do !appl_0 <- kl_V2332 `pseq` hd kl_V2332+                                  !kl_if_1 <- appl_0 `pseq` consP appl_0+                                  case kl_if_1 of+                                      Atom (B (True)) -> do let !appl_2 = ApplC (Func "lambda" (Context (\(!kl_Parse_Char) -> do let pat_cond_3 = do !appl_4 <- kl_V2332 `pseq` hd kl_V2332+                                                                                                                                                     !appl_5 <- appl_4 `pseq` tl appl_4+                                                                                                                                                     !appl_6 <- kl_V2332 `pseq` kl_shen_hdtl kl_V2332+                                                                                                                                                     !appl_7 <- appl_5 `pseq` (appl_6 `pseq` kl_shen_pair appl_5 appl_6)+                                                                                                                                                     !appl_8 <- appl_7 `pseq` hd appl_7+                                                                                                                                                     appl_8 `pseq` (kl_Parse_Char `pseq` kl_shen_pair appl_8 kl_Parse_Char)+                                                                                                                                     pat_cond_9 = do do kl_fail+                                                                                                                                  in case kl_Parse_Char of+                                                                                                                                         kl_Parse_Char@(Atom (N (KI 46))) -> pat_cond_3+                                                                                                                                         _ -> pat_cond_9)))+                                                            !appl_10 <- kl_V2332 `pseq` hd kl_V2332+                                                            !appl_11 <- appl_10 `pseq` hd appl_10+                                                            appl_11 `pseq` applyWrapper appl_2 [appl_11]+                                      Atom (B (False)) -> do do kl_fail+                                      _ -> throwError "if: expected boolean"++kl_shen_LBpredigitsRB :: Core.Types.KLValue ->+                         Core.Types.KLContext Core.Types.Env Core.Types.KLValue+kl_shen_LBpredigitsRB (!kl_V2334) = do let !appl_0 = ApplC (Func "lambda" (Context (\(!kl_YaccParse) -> do !appl_1 <- kl_fail+                                                                                                           !kl_if_2 <- kl_YaccParse `pseq` (appl_1 `pseq` eq kl_YaccParse appl_1)+                                                                                                           case kl_if_2 of+                                                                                                               Atom (B (True)) -> do let !appl_3 = ApplC (Func "lambda" (Context (\(!kl_Parse_LBeRB) -> do !appl_4 <- kl_fail+                                                                                                                                                                                                           !appl_5 <- appl_4 `pseq` (kl_Parse_LBeRB `pseq` eq appl_4 kl_Parse_LBeRB)+                                                                                                                                                                                                           !kl_if_6 <- appl_5 `pseq` kl_not appl_5+                                                                                                                                                                                                           case kl_if_6 of+                                                                                                                                                                                                               Atom (B (True)) -> do !appl_7 <- kl_Parse_LBeRB `pseq` hd kl_Parse_LBeRB+                                                                                                                                                                                                                                     let !appl_8 = Atom Nil+                                                                                                                                                                                                                                     appl_7 `pseq` (appl_8 `pseq` kl_shen_pair appl_7 appl_8)+                                                                                                                                                                                                               Atom (B (False)) -> do do kl_fail+                                                                                                                                                                                                               _ -> throwError "if: expected boolean")))+                                                                                                                                     !appl_9 <- kl_V2334 `pseq` kl_LBeRB kl_V2334+                                                                                                                                     appl_9 `pseq` applyWrapper appl_3 [appl_9]+                                                                                                               Atom (B (False)) -> do do return kl_YaccParse+                                                                                                               _ -> throwError "if: expected boolean")))+                                       let !appl_10 = ApplC (Func "lambda" (Context (\(!kl_Parse_shen_LBdigitsRB) -> do !appl_11 <- kl_fail+                                                                                                                        !appl_12 <- appl_11 `pseq` (kl_Parse_shen_LBdigitsRB `pseq` eq appl_11 kl_Parse_shen_LBdigitsRB)+                                                                                                                        !kl_if_13 <- appl_12 `pseq` kl_not appl_12+                                                                                                                        case kl_if_13 of+                                                                                                                            Atom (B (True)) -> do !appl_14 <- kl_Parse_shen_LBdigitsRB `pseq` hd kl_Parse_shen_LBdigitsRB+                                                                                                                                                  !appl_15 <- kl_Parse_shen_LBdigitsRB `pseq` kl_shen_hdtl kl_Parse_shen_LBdigitsRB+                                                                                                                                                  appl_14 `pseq` (appl_15 `pseq` kl_shen_pair appl_14 appl_15)+                                                                                                                            Atom (B (False)) -> do do kl_fail+                                                                                                                            _ -> throwError "if: expected boolean")))+                                       !appl_16 <- kl_V2334 `pseq` kl_shen_LBdigitsRB kl_V2334+                                       !appl_17 <- appl_16 `pseq` applyWrapper appl_10 [appl_16]+                                       appl_17 `pseq` applyWrapper appl_0 [appl_17]++kl_shen_LBpostdigitsRB :: Core.Types.KLValue ->+                          Core.Types.KLContext Core.Types.Env Core.Types.KLValue+kl_shen_LBpostdigitsRB (!kl_V2336) = do let !appl_0 = ApplC (Func "lambda" (Context (\(!kl_Parse_shen_LBdigitsRB) -> do !appl_1 <- kl_fail+                                                                                                                        !appl_2 <- appl_1 `pseq` (kl_Parse_shen_LBdigitsRB `pseq` eq appl_1 kl_Parse_shen_LBdigitsRB)+                                                                                                                        !kl_if_3 <- appl_2 `pseq` kl_not appl_2+                                                                                                                        case kl_if_3 of+                                                                                                                            Atom (B (True)) -> do !appl_4 <- kl_Parse_shen_LBdigitsRB `pseq` hd kl_Parse_shen_LBdigitsRB+                                                                                                                                                  !appl_5 <- kl_Parse_shen_LBdigitsRB `pseq` kl_shen_hdtl kl_Parse_shen_LBdigitsRB+                                                                                                                                                  appl_4 `pseq` (appl_5 `pseq` kl_shen_pair appl_4 appl_5)+                                                                                                                            Atom (B (False)) -> do do kl_fail+                                                                                                                            _ -> throwError "if: expected boolean")))+                                        !appl_6 <- kl_V2336 `pseq` kl_shen_LBdigitsRB kl_V2336+                                        appl_6 `pseq` applyWrapper appl_0 [appl_6]++kl_shen_LBdigitsRB :: Core.Types.KLValue ->+                      Core.Types.KLContext Core.Types.Env Core.Types.KLValue+kl_shen_LBdigitsRB (!kl_V2338) = do let !appl_0 = ApplC (Func "lambda" (Context (\(!kl_YaccParse) -> do !appl_1 <- kl_fail+                                                                                                        !kl_if_2 <- kl_YaccParse `pseq` (appl_1 `pseq` eq kl_YaccParse appl_1)+                                                                                                        case kl_if_2 of+                                                                                                            Atom (B (True)) -> do let !appl_3 = ApplC (Func "lambda" (Context (\(!kl_Parse_shen_LBdigitRB) -> do !appl_4 <- kl_fail+                                                                                                                                                                                                                 !appl_5 <- appl_4 `pseq` (kl_Parse_shen_LBdigitRB `pseq` eq appl_4 kl_Parse_shen_LBdigitRB)+                                                                                                                                                                                                                 !kl_if_6 <- appl_5 `pseq` kl_not appl_5+                                                                                                                                                                                                                 case kl_if_6 of+                                                                                                                                                                                                                     Atom (B (True)) -> do !appl_7 <- kl_Parse_shen_LBdigitRB `pseq` hd kl_Parse_shen_LBdigitRB+                                                                                                                                                                                                                                           !appl_8 <- kl_Parse_shen_LBdigitRB `pseq` kl_shen_hdtl kl_Parse_shen_LBdigitRB+                                                                                                                                                                                                                                           let !appl_9 = Atom Nil+                                                                                                                                                                                                                                           !appl_10 <- appl_8 `pseq` (appl_9 `pseq` klCons appl_8 appl_9)+                                                                                                                                                                                                                                           appl_7 `pseq` (appl_10 `pseq` kl_shen_pair appl_7 appl_10)+                                                                                                                                                                                                                     Atom (B (False)) -> do do kl_fail+                                                                                                                                                                                                                     _ -> throwError "if: expected boolean")))+                                                                                                                                  !appl_11 <- kl_V2338 `pseq` kl_shen_LBdigitRB kl_V2338+                                                                                                                                  appl_11 `pseq` applyWrapper appl_3 [appl_11]+                                                                                                            Atom (B (False)) -> do do return kl_YaccParse+                                                                                                            _ -> throwError "if: expected boolean")))+                                    let !appl_12 = ApplC (Func "lambda" (Context (\(!kl_Parse_shen_LBdigitRB) -> do !appl_13 <- kl_fail+                                                                                                                    !appl_14 <- appl_13 `pseq` (kl_Parse_shen_LBdigitRB `pseq` eq appl_13 kl_Parse_shen_LBdigitRB)+                                                                                                                    !kl_if_15 <- appl_14 `pseq` kl_not appl_14+                                                                                                                    case kl_if_15 of+                                                                                                                        Atom (B (True)) -> do let !appl_16 = ApplC (Func "lambda" (Context (\(!kl_Parse_shen_LBdigitsRB) -> do !appl_17 <- kl_fail+                                                                                                                                                                                                                               !appl_18 <- appl_17 `pseq` (kl_Parse_shen_LBdigitsRB `pseq` eq appl_17 kl_Parse_shen_LBdigitsRB)+                                                                                                                                                                                                                               !kl_if_19 <- appl_18 `pseq` kl_not appl_18+                                                                                                                                                                                                                               case kl_if_19 of+                                                                                                                                                                                                                                   Atom (B (True)) -> do !appl_20 <- kl_Parse_shen_LBdigitsRB `pseq` hd kl_Parse_shen_LBdigitsRB+                                                                                                                                                                                                                                                         !appl_21 <- kl_Parse_shen_LBdigitRB `pseq` kl_shen_hdtl kl_Parse_shen_LBdigitRB+                                                                                                                                                                                                                                                         !appl_22 <- kl_Parse_shen_LBdigitsRB `pseq` kl_shen_hdtl kl_Parse_shen_LBdigitsRB+                                                                                                                                                                                                                                                         !appl_23 <- appl_21 `pseq` (appl_22 `pseq` klCons appl_21 appl_22)+                                                                                                                                                                                                                                                         appl_20 `pseq` (appl_23 `pseq` kl_shen_pair appl_20 appl_23)+                                                                                                                                                                                                                                   Atom (B (False)) -> do do kl_fail+                                                                                                                                                                                                                                   _ -> throwError "if: expected boolean")))+                                                                                                                                              !appl_24 <- kl_Parse_shen_LBdigitRB `pseq` kl_shen_LBdigitsRB kl_Parse_shen_LBdigitRB+                                                                                                                                              appl_24 `pseq` applyWrapper appl_16 [appl_24]+                                                                                                                        Atom (B (False)) -> do do kl_fail+                                                                                                                        _ -> throwError "if: expected boolean")))+                                    !appl_25 <- kl_V2338 `pseq` kl_shen_LBdigitRB kl_V2338+                                    !appl_26 <- appl_25 `pseq` applyWrapper appl_12 [appl_25]+                                    appl_26 `pseq` applyWrapper appl_0 [appl_26]++kl_shen_LBdigitRB :: Core.Types.KLValue ->+                     Core.Types.KLContext Core.Types.Env Core.Types.KLValue+kl_shen_LBdigitRB (!kl_V2340) = do !appl_0 <- kl_V2340 `pseq` hd kl_V2340+                                   !kl_if_1 <- appl_0 `pseq` consP appl_0+                                   case kl_if_1 of+                                       Atom (B (True)) -> do let !appl_2 = ApplC (Func "lambda" (Context (\(!kl_Parse_X) -> do !kl_if_3 <- kl_Parse_X `pseq` kl_shen_numbyteP kl_Parse_X+                                                                                                                               case kl_if_3 of+                                                                                                                                   Atom (B (True)) -> do !appl_4 <- kl_V2340 `pseq` hd kl_V2340+                                                                                                                                                         !appl_5 <- appl_4 `pseq` tl appl_4+                                                                                                                                                         !appl_6 <- kl_V2340 `pseq` kl_shen_hdtl kl_V2340+                                                                                                                                                         !appl_7 <- appl_5 `pseq` (appl_6 `pseq` kl_shen_pair appl_5 appl_6)+                                                                                                                                                         !appl_8 <- appl_7 `pseq` hd appl_7+                                                                                                                                                         !appl_9 <- kl_Parse_X `pseq` kl_shen_byte_RBdigit kl_Parse_X+                                                                                                                                                         appl_8 `pseq` (appl_9 `pseq` kl_shen_pair appl_8 appl_9)+                                                                                                                                   Atom (B (False)) -> do do kl_fail+                                                                                                                                   _ -> throwError "if: expected boolean")))+                                                             !appl_10 <- kl_V2340 `pseq` hd kl_V2340+                                                             !appl_11 <- appl_10 `pseq` hd appl_10+                                                             appl_11 `pseq` applyWrapper appl_2 [appl_11]+                                       Atom (B (False)) -> do do kl_fail+                                       _ -> throwError "if: expected boolean"++kl_shen_byte_RBdigit :: Core.Types.KLValue ->+                        Core.Types.KLContext Core.Types.Env Core.Types.KLValue+kl_shen_byte_RBdigit (!kl_V2342) = do let pat_cond_0 = do return (Core.Types.Atom (Core.Types.N (Core.Types.KI 0)))+                                          pat_cond_1 = do return (Core.Types.Atom (Core.Types.N (Core.Types.KI 1)))+                                          pat_cond_2 = do return (Core.Types.Atom (Core.Types.N (Core.Types.KI 2)))+                                          pat_cond_3 = do return (Core.Types.Atom (Core.Types.N (Core.Types.KI 3)))+                                          pat_cond_4 = do return (Core.Types.Atom (Core.Types.N (Core.Types.KI 4)))+                                          pat_cond_5 = do return (Core.Types.Atom (Core.Types.N (Core.Types.KI 5)))+                                          pat_cond_6 = do return (Core.Types.Atom (Core.Types.N (Core.Types.KI 6)))+                                          pat_cond_7 = do return (Core.Types.Atom (Core.Types.N (Core.Types.KI 7)))+                                          pat_cond_8 = do return (Core.Types.Atom (Core.Types.N (Core.Types.KI 8)))+                                          pat_cond_9 = do return (Core.Types.Atom (Core.Types.N (Core.Types.KI 9)))+                                          pat_cond_10 = do do let !aw_11 = Core.Types.Atom (Core.Types.UnboundSym "shen.f_error")+                                                              applyWrapper aw_11 [ApplC (wrapNamed "shen.byte->digit" kl_shen_byte_RBdigit)]+                                       in case kl_V2342 of+                                              kl_V2342@(Atom (N (KI 48))) -> pat_cond_0+                                              kl_V2342@(Atom (N (KI 49))) -> pat_cond_1+                                              kl_V2342@(Atom (N (KI 50))) -> pat_cond_2+                                              kl_V2342@(Atom (N (KI 51))) -> pat_cond_3+                                              kl_V2342@(Atom (N (KI 52))) -> pat_cond_4+                                              kl_V2342@(Atom (N (KI 53))) -> pat_cond_5+                                              kl_V2342@(Atom (N (KI 54))) -> pat_cond_6+                                              kl_V2342@(Atom (N (KI 55))) -> pat_cond_7+                                              kl_V2342@(Atom (N (KI 56))) -> pat_cond_8+                                              kl_V2342@(Atom (N (KI 57))) -> pat_cond_9+                                              _ -> pat_cond_10++kl_shen_pre :: Core.Types.KLValue ->+               Core.Types.KLValue ->+               Core.Types.KLContext Core.Types.Env Core.Types.KLValue+kl_shen_pre (!kl_V2347) (!kl_V2348) = do let !appl_0 = Atom Nil+                                         !kl_if_1 <- appl_0 `pseq` (kl_V2347 `pseq` eq appl_0 kl_V2347)+                                         case kl_if_1 of+                                             Atom (B (True)) -> do return (Core.Types.Atom (Core.Types.N (Core.Types.KI 0)))+                                             Atom (B (False)) -> do let pat_cond_2 kl_V2347 kl_V2347h kl_V2347t = do !appl_3 <- kl_V2348 `pseq` kl_shen_expt (Core.Types.Atom (Core.Types.N (Core.Types.KI 10))) kl_V2348+                                                                                                                     !appl_4 <- appl_3 `pseq` (kl_V2347h `pseq` multiply appl_3 kl_V2347h)+                                                                                                                     !appl_5 <- kl_V2348 `pseq` add kl_V2348 (Core.Types.Atom (Core.Types.N (Core.Types.KI 1)))+                                                                                                                     !appl_6 <- kl_V2347t `pseq` (appl_5 `pseq` kl_shen_pre kl_V2347t appl_5)+                                                                                                                     appl_4 `pseq` (appl_6 `pseq` add appl_4 appl_6)+                                                                        pat_cond_7 = do do let !aw_8 = Core.Types.Atom (Core.Types.UnboundSym "shen.f_error")+                                                                                           applyWrapper aw_8 [ApplC (wrapNamed "shen.pre" kl_shen_pre)]+                                                                     in case kl_V2347 of+                                                                            !(kl_V2347@(Cons (!kl_V2347h)+                                                                                             (!kl_V2347t))) -> pat_cond_2 kl_V2347 kl_V2347h kl_V2347t+                                                                            _ -> pat_cond_7+                                             _ -> throwError "if: expected boolean"++kl_shen_post :: Core.Types.KLValue ->+                Core.Types.KLValue ->+                Core.Types.KLContext Core.Types.Env Core.Types.KLValue+kl_shen_post (!kl_V2353) (!kl_V2354) = do let !appl_0 = Atom Nil+                                          !kl_if_1 <- appl_0 `pseq` (kl_V2353 `pseq` eq appl_0 kl_V2353)+                                          case kl_if_1 of+                                              Atom (B (True)) -> do return (Core.Types.Atom (Core.Types.N (Core.Types.KI 0)))+                                              Atom (B (False)) -> do let pat_cond_2 kl_V2353 kl_V2353h kl_V2353t = do !appl_3 <- kl_V2354 `pseq` Primitives.subtract (Core.Types.Atom (Core.Types.N (Core.Types.KI 0))) kl_V2354+                                                                                                                      !appl_4 <- appl_3 `pseq` kl_shen_expt (Core.Types.Atom (Core.Types.N (Core.Types.KI 10))) appl_3+                                                                                                                      !appl_5 <- appl_4 `pseq` (kl_V2353h `pseq` multiply appl_4 kl_V2353h)+                                                                                                                      !appl_6 <- kl_V2354 `pseq` add kl_V2354 (Core.Types.Atom (Core.Types.N (Core.Types.KI 1)))+                                                                                                                      !appl_7 <- kl_V2353t `pseq` (appl_6 `pseq` kl_shen_post kl_V2353t appl_6)+                                                                                                                      appl_5 `pseq` (appl_7 `pseq` add appl_5 appl_7)+                                                                         pat_cond_8 = do do let !aw_9 = Core.Types.Atom (Core.Types.UnboundSym "shen.f_error")+                                                                                            applyWrapper aw_9 [ApplC (wrapNamed "shen.post" kl_shen_post)]+                                                                      in case kl_V2353 of+                                                                             !(kl_V2353@(Cons (!kl_V2353h)+                                                                                              (!kl_V2353t))) -> pat_cond_2 kl_V2353 kl_V2353h kl_V2353t+                                                                             _ -> pat_cond_8+                                              _ -> throwError "if: expected boolean"++kl_shen_expt :: Core.Types.KLValue ->+                Core.Types.KLValue ->+                Core.Types.KLContext Core.Types.Env Core.Types.KLValue+kl_shen_expt (!kl_V2359) (!kl_V2360) = do let pat_cond_0 = do return (Core.Types.Atom (Core.Types.N (Core.Types.KI 1)))+                                              pat_cond_1 = do !kl_if_2 <- kl_V2360 `pseq` greaterThan kl_V2360 (Core.Types.Atom (Core.Types.N (Core.Types.KI 0)))+                                                              case kl_if_2 of+                                                                  Atom (B (True)) -> do !appl_3 <- kl_V2360 `pseq` Primitives.subtract kl_V2360 (Core.Types.Atom (Core.Types.N (Core.Types.KI 1)))+                                                                                        !appl_4 <- kl_V2359 `pseq` (appl_3 `pseq` kl_shen_expt kl_V2359 appl_3)+                                                                                        kl_V2359 `pseq` (appl_4 `pseq` multiply kl_V2359 appl_4)+                                                                  Atom (B (False)) -> do do !appl_5 <- kl_V2360 `pseq` add kl_V2360 (Core.Types.Atom (Core.Types.N (Core.Types.KI 1)))+                                                                                            !appl_6 <- kl_V2359 `pseq` (appl_5 `pseq` kl_shen_expt kl_V2359 appl_5)+                                                                                            !appl_7 <- appl_6 `pseq` (kl_V2359 `pseq` divide appl_6 kl_V2359)+                                                                                            appl_7 `pseq` multiply (Core.Types.Atom (Core.Types.N (Core.Types.KD 1.0))) appl_7+                                                                  _ -> throwError "if: expected boolean"+                                           in case kl_V2360 of+                                                  kl_V2360@(Atom (N (KI 0))) -> pat_cond_0+                                                  _ -> pat_cond_1++kl_shen_LBst_input1RB :: Core.Types.KLValue ->+                         Core.Types.KLContext Core.Types.Env Core.Types.KLValue+kl_shen_LBst_input1RB (!kl_V2362) = do let !appl_0 = ApplC (Func "lambda" (Context (\(!kl_Parse_shen_LBst_inputRB) -> do !appl_1 <- kl_fail+                                                                                                                         !appl_2 <- appl_1 `pseq` (kl_Parse_shen_LBst_inputRB `pseq` eq appl_1 kl_Parse_shen_LBst_inputRB)+                                                                                                                         !kl_if_3 <- appl_2 `pseq` kl_not appl_2+                                                                                                                         case kl_if_3 of+                                                                                                                             Atom (B (True)) -> do !appl_4 <- kl_Parse_shen_LBst_inputRB `pseq` hd kl_Parse_shen_LBst_inputRB+                                                                                                                                                   !appl_5 <- kl_Parse_shen_LBst_inputRB `pseq` kl_shen_hdtl kl_Parse_shen_LBst_inputRB+                                                                                                                                                   appl_4 `pseq` (appl_5 `pseq` kl_shen_pair appl_4 appl_5)+                                                                                                                             Atom (B (False)) -> do do kl_fail+                                                                                                                             _ -> throwError "if: expected boolean")))+                                       !appl_6 <- kl_V2362 `pseq` kl_shen_LBst_inputRB kl_V2362+                                       appl_6 `pseq` applyWrapper appl_0 [appl_6]++kl_shen_LBst_input2RB :: Core.Types.KLValue ->+                         Core.Types.KLContext Core.Types.Env Core.Types.KLValue+kl_shen_LBst_input2RB (!kl_V2364) = do let !appl_0 = ApplC (Func "lambda" (Context (\(!kl_Parse_shen_LBst_inputRB) -> do !appl_1 <- kl_fail+                                                                                                                         !appl_2 <- appl_1 `pseq` (kl_Parse_shen_LBst_inputRB `pseq` eq appl_1 kl_Parse_shen_LBst_inputRB)+                                                                                                                         !kl_if_3 <- appl_2 `pseq` kl_not appl_2+                                                                                                                         case kl_if_3 of+                                                                                                                             Atom (B (True)) -> do !appl_4 <- kl_Parse_shen_LBst_inputRB `pseq` hd kl_Parse_shen_LBst_inputRB+                                                                                                                                                   !appl_5 <- kl_Parse_shen_LBst_inputRB `pseq` kl_shen_hdtl kl_Parse_shen_LBst_inputRB+                                                                                                                                                   appl_4 `pseq` (appl_5 `pseq` kl_shen_pair appl_4 appl_5)+                                                                                                                             Atom (B (False)) -> do do kl_fail+                                                                                                                             _ -> throwError "if: expected boolean")))+                                       !appl_6 <- kl_V2364 `pseq` kl_shen_LBst_inputRB kl_V2364+                                       appl_6 `pseq` applyWrapper appl_0 [appl_6]++kl_shen_LBcommentRB :: Core.Types.KLValue ->+                       Core.Types.KLContext Core.Types.Env Core.Types.KLValue+kl_shen_LBcommentRB (!kl_V2366) = do let !appl_0 = ApplC (Func "lambda" (Context (\(!kl_YaccParse) -> do !appl_1 <- kl_fail+                                                                                                         !kl_if_2 <- kl_YaccParse `pseq` (appl_1 `pseq` eq kl_YaccParse appl_1)+                                                                                                         case kl_if_2 of+                                                                                                             Atom (B (True)) -> do let !appl_3 = ApplC (Func "lambda" (Context (\(!kl_Parse_shen_LBmultilineRB) -> do !appl_4 <- kl_fail+                                                                                                                                                                                                                      !appl_5 <- appl_4 `pseq` (kl_Parse_shen_LBmultilineRB `pseq` eq appl_4 kl_Parse_shen_LBmultilineRB)+                                                                                                                                                                                                                      !kl_if_6 <- appl_5 `pseq` kl_not appl_5+                                                                                                                                                                                                                      case kl_if_6 of+                                                                                                                                                                                                                          Atom (B (True)) -> do !appl_7 <- kl_Parse_shen_LBmultilineRB `pseq` hd kl_Parse_shen_LBmultilineRB+                                                                                                                                                                                                                                                appl_7 `pseq` kl_shen_pair appl_7 (Core.Types.Atom (Core.Types.UnboundSym "shen.skip"))+                                                                                                                                                                                                                          Atom (B (False)) -> do do kl_fail+                                                                                                                                                                                                                          _ -> throwError "if: expected boolean")))+                                                                                                                                   !appl_8 <- kl_V2366 `pseq` kl_shen_LBmultilineRB kl_V2366+                                                                                                                                   appl_8 `pseq` applyWrapper appl_3 [appl_8]+                                                                                                             Atom (B (False)) -> do do return kl_YaccParse+                                                                                                             _ -> throwError "if: expected boolean")))+                                     let !appl_9 = ApplC (Func "lambda" (Context (\(!kl_Parse_shen_LBsinglelineRB) -> do !appl_10 <- kl_fail+                                                                                                                         !appl_11 <- appl_10 `pseq` (kl_Parse_shen_LBsinglelineRB `pseq` eq appl_10 kl_Parse_shen_LBsinglelineRB)+                                                                                                                         !kl_if_12 <- appl_11 `pseq` kl_not appl_11+                                                                                                                         case kl_if_12 of+                                                                                                                             Atom (B (True)) -> do !appl_13 <- kl_Parse_shen_LBsinglelineRB `pseq` hd kl_Parse_shen_LBsinglelineRB+                                                                                                                                                   appl_13 `pseq` kl_shen_pair appl_13 (Core.Types.Atom (Core.Types.UnboundSym "shen.skip"))+                                                                                                                             Atom (B (False)) -> do do kl_fail+                                                                                                                             _ -> throwError "if: expected boolean")))+                                     !appl_14 <- kl_V2366 `pseq` kl_shen_LBsinglelineRB kl_V2366+                                     !appl_15 <- appl_14 `pseq` applyWrapper appl_9 [appl_14]+                                     appl_15 `pseq` applyWrapper appl_0 [appl_15]++kl_shen_LBsinglelineRB :: Core.Types.KLValue ->+                          Core.Types.KLContext Core.Types.Env Core.Types.KLValue+kl_shen_LBsinglelineRB (!kl_V2368) = do let !appl_0 = ApplC (Func "lambda" (Context (\(!kl_Parse_shen_LBbackslashRB) -> do !appl_1 <- kl_fail+                                                                                                                           !appl_2 <- appl_1 `pseq` (kl_Parse_shen_LBbackslashRB `pseq` eq appl_1 kl_Parse_shen_LBbackslashRB)+                                                                                                                           !kl_if_3 <- appl_2 `pseq` kl_not appl_2+                                                                                                                           case kl_if_3 of+                                                                                                                               Atom (B (True)) -> do let !appl_4 = ApplC (Func "lambda" (Context (\(!kl_Parse_shen_LBbackslashRB) -> do !appl_5 <- kl_fail+                                                                                                                                                                                                                                        !appl_6 <- appl_5 `pseq` (kl_Parse_shen_LBbackslashRB `pseq` eq appl_5 kl_Parse_shen_LBbackslashRB)+                                                                                                                                                                                                                                        !kl_if_7 <- appl_6 `pseq` kl_not appl_6+                                                                                                                                                                                                                                        case kl_if_7 of+                                                                                                                                                                                                                                            Atom (B (True)) -> do let !appl_8 = ApplC (Func "lambda" (Context (\(!kl_Parse_shen_LBanysingleRB) -> do !appl_9 <- kl_fail+                                                                                                                                                                                                                                                                                                                                                     !appl_10 <- appl_9 `pseq` (kl_Parse_shen_LBanysingleRB `pseq` eq appl_9 kl_Parse_shen_LBanysingleRB)+                                                                                                                                                                                                                                                                                                                                                     !kl_if_11 <- appl_10 `pseq` kl_not appl_10+                                                                                                                                                                                                                                                                                                                                                     case kl_if_11 of+                                                                                                                                                                                                                                                                                                                                                         Atom (B (True)) -> do let !appl_12 = ApplC (Func "lambda" (Context (\(!kl_Parse_shen_LBreturnRB) -> do !appl_13 <- kl_fail+                                                                                                                                                                                                                                                                                                                                                                                                                                                                !appl_14 <- appl_13 `pseq` (kl_Parse_shen_LBreturnRB `pseq` eq appl_13 kl_Parse_shen_LBreturnRB)+                                                                                                                                                                                                                                                                                                                                                                                                                                                                !kl_if_15 <- appl_14 `pseq` kl_not appl_14+                                                                                                                                                                                                                                                                                                                                                                                                                                                                case kl_if_15 of+                                                                                                                                                                                                                                                                                                                                                                                                                                                                    Atom (B (True)) -> do !appl_16 <- kl_Parse_shen_LBreturnRB `pseq` hd kl_Parse_shen_LBreturnRB+                                                                                                                                                                                                                                                                                                                                                                                                                                                                                          appl_16 `pseq` kl_shen_pair appl_16 (Core.Types.Atom (Core.Types.UnboundSym "shen.skip"))+                                                                                                                                                                                                                                                                                                                                                                                                                                                                    Atom (B (False)) -> do do kl_fail+                                                                                                                                                                                                                                                                                                                                                                                                                                                                    _ -> throwError "if: expected boolean")))+                                                                                                                                                                                                                                                                                                                                                                               !appl_17 <- kl_Parse_shen_LBanysingleRB `pseq` kl_shen_LBreturnRB kl_Parse_shen_LBanysingleRB+                                                                                                                                                                                                                                                                                                                                                                               appl_17 `pseq` applyWrapper appl_12 [appl_17]+                                                                                                                                                                                                                                                                                                                                                         Atom (B (False)) -> do do kl_fail+                                                                                                                                                                                                                                                                                                                                                         _ -> throwError "if: expected boolean")))+                                                                                                                                                                                                                                                                  !appl_18 <- kl_Parse_shen_LBbackslashRB `pseq` kl_shen_LBanysingleRB kl_Parse_shen_LBbackslashRB+                                                                                                                                                                                                                                                                  appl_18 `pseq` applyWrapper appl_8 [appl_18]+                                                                                                                                                                                                                                            Atom (B (False)) -> do do kl_fail+                                                                                                                                                                                                                                            _ -> throwError "if: expected boolean")))+                                                                                                                                                     !appl_19 <- kl_Parse_shen_LBbackslashRB `pseq` kl_shen_LBbackslashRB kl_Parse_shen_LBbackslashRB+                                                                                                                                                     appl_19 `pseq` applyWrapper appl_4 [appl_19]+                                                                                                                               Atom (B (False)) -> do do kl_fail+                                                                                                                               _ -> throwError "if: expected boolean")))+                                        !appl_20 <- kl_V2368 `pseq` kl_shen_LBbackslashRB kl_V2368+                                        appl_20 `pseq` applyWrapper appl_0 [appl_20]++kl_shen_LBbackslashRB :: Core.Types.KLValue ->+                         Core.Types.KLContext Core.Types.Env Core.Types.KLValue+kl_shen_LBbackslashRB (!kl_V2370) = do !appl_0 <- kl_V2370 `pseq` hd kl_V2370+                                       !kl_if_1 <- appl_0 `pseq` consP appl_0+                                       !kl_if_2 <- case kl_if_1 of+                                                       Atom (B (True)) -> do !appl_3 <- kl_V2370 `pseq` hd kl_V2370+                                                                             !appl_4 <- appl_3 `pseq` hd appl_3+                                                                             !kl_if_5 <- appl_4 `pseq` eq (Core.Types.Atom (Core.Types.N (Core.Types.KI 92))) appl_4+                                                                             case kl_if_5 of+                                                                                 Atom (B (True)) -> do return (Atom (B True))+                                                                                 Atom (B (False)) -> do do return (Atom (B False))+                                                                                 _ -> throwError "if: expected boolean"+                                                       Atom (B (False)) -> do do return (Atom (B False))+                                                       _ -> throwError "if: expected boolean"+                                       case kl_if_2 of+                                           Atom (B (True)) -> do !appl_6 <- kl_V2370 `pseq` hd kl_V2370+                                                                 !appl_7 <- appl_6 `pseq` tl appl_6+                                                                 !appl_8 <- kl_V2370 `pseq` kl_shen_hdtl kl_V2370+                                                                 !appl_9 <- appl_7 `pseq` (appl_8 `pseq` kl_shen_pair appl_7 appl_8)+                                                                 !appl_10 <- appl_9 `pseq` hd appl_9+                                                                 appl_10 `pseq` kl_shen_pair appl_10 (Core.Types.Atom (Core.Types.UnboundSym "shen.skip"))+                                           Atom (B (False)) -> do do kl_fail+                                           _ -> throwError "if: expected boolean"++kl_shen_LBanysingleRB :: Core.Types.KLValue ->+                         Core.Types.KLContext Core.Types.Env Core.Types.KLValue+kl_shen_LBanysingleRB (!kl_V2372) = do let !appl_0 = ApplC (Func "lambda" (Context (\(!kl_YaccParse) -> do !appl_1 <- kl_fail+                                                                                                           !kl_if_2 <- kl_YaccParse `pseq` (appl_1 `pseq` eq kl_YaccParse appl_1)+                                                                                                           case kl_if_2 of+                                                                                                               Atom (B (True)) -> do let !appl_3 = ApplC (Func "lambda" (Context (\(!kl_Parse_LBeRB) -> do !appl_4 <- kl_fail+                                                                                                                                                                                                           !appl_5 <- appl_4 `pseq` (kl_Parse_LBeRB `pseq` eq appl_4 kl_Parse_LBeRB)+                                                                                                                                                                                                           !kl_if_6 <- appl_5 `pseq` kl_not appl_5+                                                                                                                                                                                                           case kl_if_6 of+                                                                                                                                                                                                               Atom (B (True)) -> do !appl_7 <- kl_Parse_LBeRB `pseq` hd kl_Parse_LBeRB+                                                                                                                                                                                                                                     appl_7 `pseq` kl_shen_pair appl_7 (Core.Types.Atom (Core.Types.UnboundSym "shen.skip"))+                                                                                                                                                                                                               Atom (B (False)) -> do do kl_fail+                                                                                                                                                                                                               _ -> throwError "if: expected boolean")))+                                                                                                                                     !appl_8 <- kl_V2372 `pseq` kl_LBeRB kl_V2372+                                                                                                                                     appl_8 `pseq` applyWrapper appl_3 [appl_8]+                                                                                                               Atom (B (False)) -> do do return kl_YaccParse+                                                                                                               _ -> throwError "if: expected boolean")))+                                       let !appl_9 = ApplC (Func "lambda" (Context (\(!kl_Parse_shen_LBnon_returnRB) -> do !appl_10 <- kl_fail+                                                                                                                           !appl_11 <- appl_10 `pseq` (kl_Parse_shen_LBnon_returnRB `pseq` eq appl_10 kl_Parse_shen_LBnon_returnRB)+                                                                                                                           !kl_if_12 <- appl_11 `pseq` kl_not appl_11+                                                                                                                           case kl_if_12 of+                                                                                                                               Atom (B (True)) -> do let !appl_13 = ApplC (Func "lambda" (Context (\(!kl_Parse_shen_LBanysingleRB) -> do !appl_14 <- kl_fail+                                                                                                                                                                                                                                         !appl_15 <- appl_14 `pseq` (kl_Parse_shen_LBanysingleRB `pseq` eq appl_14 kl_Parse_shen_LBanysingleRB)+                                                                                                                                                                                                                                         !kl_if_16 <- appl_15 `pseq` kl_not appl_15+                                                                                                                                                                                                                                         case kl_if_16 of+                                                                                                                                                                                                                                             Atom (B (True)) -> do !appl_17 <- kl_Parse_shen_LBanysingleRB `pseq` hd kl_Parse_shen_LBanysingleRB+                                                                                                                                                                                                                                                                   appl_17 `pseq` kl_shen_pair appl_17 (Core.Types.Atom (Core.Types.UnboundSym "shen.skip"))+                                                                                                                                                                                                                                             Atom (B (False)) -> do do kl_fail+                                                                                                                                                                                                                                             _ -> throwError "if: expected boolean")))+                                                                                                                                                     !appl_18 <- kl_Parse_shen_LBnon_returnRB `pseq` kl_shen_LBanysingleRB kl_Parse_shen_LBnon_returnRB+                                                                                                                                                     appl_18 `pseq` applyWrapper appl_13 [appl_18]+                                                                                                                               Atom (B (False)) -> do do kl_fail+                                                                                                                               _ -> throwError "if: expected boolean")))+                                       !appl_19 <- kl_V2372 `pseq` kl_shen_LBnon_returnRB kl_V2372+                                       !appl_20 <- appl_19 `pseq` applyWrapper appl_9 [appl_19]+                                       appl_20 `pseq` applyWrapper appl_0 [appl_20]++kl_shen_LBnon_returnRB :: Core.Types.KLValue ->+                          Core.Types.KLContext Core.Types.Env Core.Types.KLValue+kl_shen_LBnon_returnRB (!kl_V2374) = do !appl_0 <- kl_V2374 `pseq` hd kl_V2374+                                        !kl_if_1 <- appl_0 `pseq` consP appl_0+                                        case kl_if_1 of+                                            Atom (B (True)) -> do let !appl_2 = ApplC (Func "lambda" (Context (\(!kl_Parse_X) -> do let !appl_3 = Atom Nil+                                                                                                                                    !appl_4 <- appl_3 `pseq` klCons (Core.Types.Atom (Core.Types.N (Core.Types.KI 13))) appl_3+                                                                                                                                    !appl_5 <- appl_4 `pseq` klCons (Core.Types.Atom (Core.Types.N (Core.Types.KI 10))) appl_4+                                                                                                                                    !appl_6 <- kl_Parse_X `pseq` (appl_5 `pseq` kl_elementP kl_Parse_X appl_5)+                                                                                                                                    !kl_if_7 <- appl_6 `pseq` kl_not appl_6+                                                                                                                                    case kl_if_7 of+                                                                                                                                        Atom (B (True)) -> do !appl_8 <- kl_V2374 `pseq` hd kl_V2374+                                                                                                                                                              !appl_9 <- appl_8 `pseq` tl appl_8+                                                                                                                                                              !appl_10 <- kl_V2374 `pseq` kl_shen_hdtl kl_V2374+                                                                                                                                                              !appl_11 <- appl_9 `pseq` (appl_10 `pseq` kl_shen_pair appl_9 appl_10)+                                                                                                                                                              !appl_12 <- appl_11 `pseq` hd appl_11+                                                                                                                                                              appl_12 `pseq` kl_shen_pair appl_12 (Core.Types.Atom (Core.Types.UnboundSym "shen.skip"))+                                                                                                                                        Atom (B (False)) -> do do kl_fail+                                                                                                                                        _ -> throwError "if: expected boolean")))+                                                                  !appl_13 <- kl_V2374 `pseq` hd kl_V2374+                                                                  !appl_14 <- appl_13 `pseq` hd appl_13+                                                                  appl_14 `pseq` applyWrapper appl_2 [appl_14]+                                            Atom (B (False)) -> do do kl_fail+                                            _ -> throwError "if: expected boolean"++kl_shen_LBreturnRB :: Core.Types.KLValue ->+                      Core.Types.KLContext Core.Types.Env Core.Types.KLValue+kl_shen_LBreturnRB (!kl_V2376) = do !appl_0 <- kl_V2376 `pseq` hd kl_V2376+                                    !kl_if_1 <- appl_0 `pseq` consP appl_0+                                    case kl_if_1 of+                                        Atom (B (True)) -> do let !appl_2 = ApplC (Func "lambda" (Context (\(!kl_Parse_X) -> do let !appl_3 = Atom Nil+                                                                                                                                !appl_4 <- appl_3 `pseq` klCons (Core.Types.Atom (Core.Types.N (Core.Types.KI 13))) appl_3+                                                                                                                                !appl_5 <- appl_4 `pseq` klCons (Core.Types.Atom (Core.Types.N (Core.Types.KI 10))) appl_4+                                                                                                                                !kl_if_6 <- kl_Parse_X `pseq` (appl_5 `pseq` kl_elementP kl_Parse_X appl_5)+                                                                                                                                case kl_if_6 of+                                                                                                                                    Atom (B (True)) -> do !appl_7 <- kl_V2376 `pseq` hd kl_V2376+                                                                                                                                                          !appl_8 <- appl_7 `pseq` tl appl_7+                                                                                                                                                          !appl_9 <- kl_V2376 `pseq` kl_shen_hdtl kl_V2376+                                                                                                                                                          !appl_10 <- appl_8 `pseq` (appl_9 `pseq` kl_shen_pair appl_8 appl_9)+                                                                                                                                                          !appl_11 <- appl_10 `pseq` hd appl_10+                                                                                                                                                          appl_11 `pseq` kl_shen_pair appl_11 (Core.Types.Atom (Core.Types.UnboundSym "shen.skip"))+                                                                                                                                    Atom (B (False)) -> do do kl_fail+                                                                                                                                    _ -> throwError "if: expected boolean")))+                                                              !appl_12 <- kl_V2376 `pseq` hd kl_V2376+                                                              !appl_13 <- appl_12 `pseq` hd appl_12+                                                              appl_13 `pseq` applyWrapper appl_2 [appl_13]+                                        Atom (B (False)) -> do do kl_fail+                                        _ -> throwError "if: expected boolean"++kl_shen_LBmultilineRB :: Core.Types.KLValue ->+                         Core.Types.KLContext Core.Types.Env Core.Types.KLValue+kl_shen_LBmultilineRB (!kl_V2378) = do let !appl_0 = ApplC (Func "lambda" (Context (\(!kl_Parse_shen_LBbackslashRB) -> do !appl_1 <- kl_fail+                                                                                                                          !appl_2 <- appl_1 `pseq` (kl_Parse_shen_LBbackslashRB `pseq` eq appl_1 kl_Parse_shen_LBbackslashRB)+                                                                                                                          !kl_if_3 <- appl_2 `pseq` kl_not appl_2+                                                                                                                          case kl_if_3 of+                                                                                                                              Atom (B (True)) -> do let !appl_4 = ApplC (Func "lambda" (Context (\(!kl_Parse_shen_LBtimesRB) -> do !appl_5 <- kl_fail+                                                                                                                                                                                                                                   !appl_6 <- appl_5 `pseq` (kl_Parse_shen_LBtimesRB `pseq` eq appl_5 kl_Parse_shen_LBtimesRB)+                                                                                                                                                                                                                                   !kl_if_7 <- appl_6 `pseq` kl_not appl_6+                                                                                                                                                                                                                                   case kl_if_7 of+                                                                                                                                                                                                                                       Atom (B (True)) -> do let !appl_8 = ApplC (Func "lambda" (Context (\(!kl_Parse_shen_LBanymultiRB) -> do !appl_9 <- kl_fail+                                                                                                                                                                                                                                                                                                                                               !appl_10 <- appl_9 `pseq` (kl_Parse_shen_LBanymultiRB `pseq` eq appl_9 kl_Parse_shen_LBanymultiRB)+                                                                                                                                                                                                                                                                                                                                               !kl_if_11 <- appl_10 `pseq` kl_not appl_10+                                                                                                                                                                                                                                                                                                                                               case kl_if_11 of+                                                                                                                                                                                                                                                                                                                                                   Atom (B (True)) -> do !appl_12 <- kl_Parse_shen_LBanymultiRB `pseq` hd kl_Parse_shen_LBanymultiRB+                                                                                                                                                                                                                                                                                                                                                                         appl_12 `pseq` kl_shen_pair appl_12 (Core.Types.Atom (Core.Types.UnboundSym "shen.skip"))+                                                                                                                                                                                                                                                                                                                                                   Atom (B (False)) -> do do kl_fail+                                                                                                                                                                                                                                                                                                                                                   _ -> throwError "if: expected boolean")))+                                                                                                                                                                                                                                                             !appl_13 <- kl_Parse_shen_LBtimesRB `pseq` kl_shen_LBanymultiRB kl_Parse_shen_LBtimesRB+                                                                                                                                                                                                                                                             appl_13 `pseq` applyWrapper appl_8 [appl_13]+                                                                                                                                                                                                                                       Atom (B (False)) -> do do kl_fail+                                                                                                                                                                                                                                       _ -> throwError "if: expected boolean")))+                                                                                                                                                    !appl_14 <- kl_Parse_shen_LBbackslashRB `pseq` kl_shen_LBtimesRB kl_Parse_shen_LBbackslashRB+                                                                                                                                                    appl_14 `pseq` applyWrapper appl_4 [appl_14]+                                                                                                                              Atom (B (False)) -> do do kl_fail+                                                                                                                              _ -> throwError "if: expected boolean")))+                                       !appl_15 <- kl_V2378 `pseq` kl_shen_LBbackslashRB kl_V2378+                                       appl_15 `pseq` applyWrapper appl_0 [appl_15]++kl_shen_LBtimesRB :: Core.Types.KLValue ->+                     Core.Types.KLContext Core.Types.Env Core.Types.KLValue+kl_shen_LBtimesRB (!kl_V2380) = do !appl_0 <- kl_V2380 `pseq` hd kl_V2380+                                   !kl_if_1 <- appl_0 `pseq` consP appl_0+                                   !kl_if_2 <- case kl_if_1 of+                                                   Atom (B (True)) -> do !appl_3 <- kl_V2380 `pseq` hd kl_V2380+                                                                         !appl_4 <- appl_3 `pseq` hd appl_3+                                                                         !kl_if_5 <- appl_4 `pseq` eq (Core.Types.Atom (Core.Types.N (Core.Types.KI 42))) appl_4+                                                                         case kl_if_5 of+                                                                             Atom (B (True)) -> do return (Atom (B True))+                                                                             Atom (B (False)) -> do do return (Atom (B False))+                                                                             _ -> throwError "if: expected boolean"+                                                   Atom (B (False)) -> do do return (Atom (B False))+                                                   _ -> throwError "if: expected boolean"+                                   case kl_if_2 of+                                       Atom (B (True)) -> do !appl_6 <- kl_V2380 `pseq` hd kl_V2380+                                                             !appl_7 <- appl_6 `pseq` tl appl_6+                                                             !appl_8 <- kl_V2380 `pseq` kl_shen_hdtl kl_V2380+                                                             !appl_9 <- appl_7 `pseq` (appl_8 `pseq` kl_shen_pair appl_7 appl_8)+                                                             !appl_10 <- appl_9 `pseq` hd appl_9+                                                             appl_10 `pseq` kl_shen_pair appl_10 (Core.Types.Atom (Core.Types.UnboundSym "shen.skip"))+                                       Atom (B (False)) -> do do kl_fail+                                       _ -> throwError "if: expected boolean"++kl_shen_LBanymultiRB :: Core.Types.KLValue ->+                        Core.Types.KLContext Core.Types.Env Core.Types.KLValue+kl_shen_LBanymultiRB (!kl_V2382) = do let !appl_0 = ApplC (Func "lambda" (Context (\(!kl_YaccParse) -> do !appl_1 <- kl_fail+                                                                                                          !kl_if_2 <- kl_YaccParse `pseq` (appl_1 `pseq` eq kl_YaccParse appl_1)+                                                                                                          case kl_if_2 of+                                                                                                              Atom (B (True)) -> do let !appl_3 = ApplC (Func "lambda" (Context (\(!kl_YaccParse) -> do !appl_4 <- kl_fail+                                                                                                                                                                                                        !kl_if_5 <- kl_YaccParse `pseq` (appl_4 `pseq` eq kl_YaccParse appl_4)+                                                                                                                                                                                                        case kl_if_5 of+                                                                                                                                                                                                            Atom (B (True)) -> do !appl_6 <- kl_V2382 `pseq` hd kl_V2382+                                                                                                                                                                                                                                  !kl_if_7 <- appl_6 `pseq` consP appl_6+                                                                                                                                                                                                                                  case kl_if_7 of+                                                                                                                                                                                                                                      Atom (B (True)) -> do let !appl_8 = ApplC (Func "lambda" (Context (\(!kl_Parse_X) -> do let !appl_9 = ApplC (Func "lambda" (Context (\(!kl_Parse_shen_LBanymultiRB) -> do !appl_10 <- kl_fail+                                                                                                                                                                                                                                                                                                                                                                                                                !appl_11 <- appl_10 `pseq` (kl_Parse_shen_LBanymultiRB `pseq` eq appl_10 kl_Parse_shen_LBanymultiRB)+                                                                                                                                                                                                                                                                                                                                                                                                                !kl_if_12 <- appl_11 `pseq` kl_not appl_11+                                                                                                                                                                                                                                                                                                                                                                                                                case kl_if_12 of+                                                                                                                                                                                                                                                                                                                                                                                                                    Atom (B (True)) -> do !appl_13 <- kl_Parse_shen_LBanymultiRB `pseq` hd kl_Parse_shen_LBanymultiRB+                                                                                                                                                                                                                                                                                                                                                                                                                                          appl_13 `pseq` kl_shen_pair appl_13 (Core.Types.Atom (Core.Types.UnboundSym "shen.skip"))+                                                                                                                                                                                                                                                                                                                                                                                                                    Atom (B (False)) -> do do kl_fail+                                                                                                                                                                                                                                                                                                                                                                                                                    _ -> throwError "if: expected boolean")))+                                                                                                                                                                                                                                                                                                                              !appl_14 <- kl_V2382 `pseq` hd kl_V2382+                                                                                                                                                                                                                                                                                                                              !appl_15 <- appl_14 `pseq` tl appl_14+                                                                                                                                                                                                                                                                                                                              !appl_16 <- kl_V2382 `pseq` kl_shen_hdtl kl_V2382+                                                                                                                                                                                                                                                                                                                              !appl_17 <- appl_15 `pseq` (appl_16 `pseq` kl_shen_pair appl_15 appl_16)+                                                                                                                                                                                                                                                                                                                              !appl_18 <- appl_17 `pseq` kl_shen_LBanymultiRB appl_17+                                                                                                                                                                                                                                                                                                                              appl_18 `pseq` applyWrapper appl_9 [appl_18])))+                                                                                                                                                                                                                                                            !appl_19 <- kl_V2382 `pseq` hd kl_V2382+                                                                                                                                                                                                                                                            !appl_20 <- appl_19 `pseq` hd appl_19+                                                                                                                                                                                                                                                            appl_20 `pseq` applyWrapper appl_8 [appl_20]+                                                                                                                                                                                                                                      Atom (B (False)) -> do do kl_fail+                                                                                                                                                                                                                                      _ -> throwError "if: expected boolean"+                                                                                                                                                                                                            Atom (B (False)) -> do do return kl_YaccParse+                                                                                                                                                                                                            _ -> throwError "if: expected boolean")))+                                                                                                                                    let !appl_21 = ApplC (Func "lambda" (Context (\(!kl_Parse_shen_LBtimesRB) -> do !appl_22 <- kl_fail+                                                                                                                                                                                                                    !appl_23 <- appl_22 `pseq` (kl_Parse_shen_LBtimesRB `pseq` eq appl_22 kl_Parse_shen_LBtimesRB)+                                                                                                                                                                                                                    !kl_if_24 <- appl_23 `pseq` kl_not appl_23+                                                                                                                                                                                                                    case kl_if_24 of+                                                                                                                                                                                                                        Atom (B (True)) -> do let !appl_25 = ApplC (Func "lambda" (Context (\(!kl_Parse_shen_LBbackslashRB) -> do !appl_26 <- kl_fail+                                                                                                                                                                                                                                                                                                                                  !appl_27 <- appl_26 `pseq` (kl_Parse_shen_LBbackslashRB `pseq` eq appl_26 kl_Parse_shen_LBbackslashRB)+                                                                                                                                                                                                                                                                                                                                  !kl_if_28 <- appl_27 `pseq` kl_not appl_27+                                                                                                                                                                                                                                                                                                                                  case kl_if_28 of+                                                                                                                                                                                                                                                                                                                                      Atom (B (True)) -> do !appl_29 <- kl_Parse_shen_LBbackslashRB `pseq` hd kl_Parse_shen_LBbackslashRB+                                                                                                                                                                                                                                                                                                                                                            appl_29 `pseq` kl_shen_pair appl_29 (Core.Types.Atom (Core.Types.UnboundSym "shen.skip"))+                                                                                                                                                                                                                                                                                                                                      Atom (B (False)) -> do do kl_fail+                                                                                                                                                                                                                                                                                                                                      _ -> throwError "if: expected boolean")))+                                                                                                                                                                                                                                              !appl_30 <- kl_Parse_shen_LBtimesRB `pseq` kl_shen_LBbackslashRB kl_Parse_shen_LBtimesRB+                                                                                                                                                                                                                                              appl_30 `pseq` applyWrapper appl_25 [appl_30]+                                                                                                                                                                                                                        Atom (B (False)) -> do do kl_fail+                                                                                                                                                                                                                        _ -> throwError "if: expected boolean")))+                                                                                                                                    !appl_31 <- kl_V2382 `pseq` kl_shen_LBtimesRB kl_V2382+                                                                                                                                    !appl_32 <- appl_31 `pseq` applyWrapper appl_21 [appl_31]+                                                                                                                                    appl_32 `pseq` applyWrapper appl_3 [appl_32]+                                                                                                              Atom (B (False)) -> do do return kl_YaccParse+                                                                                                              _ -> throwError "if: expected boolean")))+                                      let !appl_33 = ApplC (Func "lambda" (Context (\(!kl_Parse_shen_LBcommentRB) -> do !appl_34 <- kl_fail+                                                                                                                        !appl_35 <- appl_34 `pseq` (kl_Parse_shen_LBcommentRB `pseq` eq appl_34 kl_Parse_shen_LBcommentRB)+                                                                                                                        !kl_if_36 <- appl_35 `pseq` kl_not appl_35+                                                                                                                        case kl_if_36 of+                                                                                                                            Atom (B (True)) -> do let !appl_37 = ApplC (Func "lambda" (Context (\(!kl_Parse_shen_LBanymultiRB) -> do !appl_38 <- kl_fail+                                                                                                                                                                                                                                     !appl_39 <- appl_38 `pseq` (kl_Parse_shen_LBanymultiRB `pseq` eq appl_38 kl_Parse_shen_LBanymultiRB)+                                                                                                                                                                                                                                     !kl_if_40 <- appl_39 `pseq` kl_not appl_39+                                                                                                                                                                                                                                     case kl_if_40 of+                                                                                                                                                                                                                                         Atom (B (True)) -> do !appl_41 <- kl_Parse_shen_LBanymultiRB `pseq` hd kl_Parse_shen_LBanymultiRB+                                                                                                                                                                                                                                                               appl_41 `pseq` kl_shen_pair appl_41 (Core.Types.Atom (Core.Types.UnboundSym "shen.skip"))+                                                                                                                                                                                                                                         Atom (B (False)) -> do do kl_fail+                                                                                                                                                                                                                                         _ -> throwError "if: expected boolean")))+                                                                                                                                                  !appl_42 <- kl_Parse_shen_LBcommentRB `pseq` kl_shen_LBanymultiRB kl_Parse_shen_LBcommentRB+                                                                                                                                                  appl_42 `pseq` applyWrapper appl_37 [appl_42]+                                                                                                                            Atom (B (False)) -> do do kl_fail+                                                                                                                            _ -> throwError "if: expected boolean")))+                                      !appl_43 <- kl_V2382 `pseq` kl_shen_LBcommentRB kl_V2382+                                      !appl_44 <- appl_43 `pseq` applyWrapper appl_33 [appl_43]+                                      appl_44 `pseq` applyWrapper appl_0 [appl_44]++kl_shen_LBwhitespacesRB :: Core.Types.KLValue ->+                           Core.Types.KLContext Core.Types.Env Core.Types.KLValue+kl_shen_LBwhitespacesRB (!kl_V2384) = do let !appl_0 = ApplC (Func "lambda" (Context (\(!kl_YaccParse) -> do !appl_1 <- kl_fail+                                                                                                             !kl_if_2 <- kl_YaccParse `pseq` (appl_1 `pseq` eq kl_YaccParse appl_1)+                                                                                                             case kl_if_2 of+                                                                                                                 Atom (B (True)) -> do let !appl_3 = ApplC (Func "lambda" (Context (\(!kl_Parse_shen_LBwhitespaceRB) -> do !appl_4 <- kl_fail+                                                                                                                                                                                                                           !appl_5 <- appl_4 `pseq` (kl_Parse_shen_LBwhitespaceRB `pseq` eq appl_4 kl_Parse_shen_LBwhitespaceRB)+                                                                                                                                                                                                                           !kl_if_6 <- appl_5 `pseq` kl_not appl_5+                                                                                                                                                                                                                           case kl_if_6 of+                                                                                                                                                                                                                               Atom (B (True)) -> do !appl_7 <- kl_Parse_shen_LBwhitespaceRB `pseq` hd kl_Parse_shen_LBwhitespaceRB+                                                                                                                                                                                                                                                     appl_7 `pseq` kl_shen_pair appl_7 (Core.Types.Atom (Core.Types.UnboundSym "shen.skip"))+                                                                                                                                                                                                                               Atom (B (False)) -> do do kl_fail+                                                                                                                                                                                                                               _ -> throwError "if: expected boolean")))+                                                                                                                                       !appl_8 <- kl_V2384 `pseq` kl_shen_LBwhitespaceRB kl_V2384+                                                                                                                                       appl_8 `pseq` applyWrapper appl_3 [appl_8]+                                                                                                                 Atom (B (False)) -> do do return kl_YaccParse+                                                                                                                 _ -> throwError "if: expected boolean")))+                                         let !appl_9 = ApplC (Func "lambda" (Context (\(!kl_Parse_shen_LBwhitespaceRB) -> do !appl_10 <- kl_fail+                                                                                                                             !appl_11 <- appl_10 `pseq` (kl_Parse_shen_LBwhitespaceRB `pseq` eq appl_10 kl_Parse_shen_LBwhitespaceRB)+                                                                                                                             !kl_if_12 <- appl_11 `pseq` kl_not appl_11+                                                                                                                             case kl_if_12 of+                                                                                                                                 Atom (B (True)) -> do let !appl_13 = ApplC (Func "lambda" (Context (\(!kl_Parse_shen_LBwhitespacesRB) -> do !appl_14 <- kl_fail+                                                                                                                                                                                                                                             !appl_15 <- appl_14 `pseq` (kl_Parse_shen_LBwhitespacesRB `pseq` eq appl_14 kl_Parse_shen_LBwhitespacesRB)+                                                                                                                                                                                                                                             !kl_if_16 <- appl_15 `pseq` kl_not appl_15+                                                                                                                                                                                                                                             case kl_if_16 of+                                                                                                                                                                                                                                                 Atom (B (True)) -> do !appl_17 <- kl_Parse_shen_LBwhitespacesRB `pseq` hd kl_Parse_shen_LBwhitespacesRB+                                                                                                                                                                                                                                                                       appl_17 `pseq` kl_shen_pair appl_17 (Core.Types.Atom (Core.Types.UnboundSym "shen.skip"))+                                                                                                                                                                                                                                                 Atom (B (False)) -> do do kl_fail+                                                                                                                                                                                                                                                 _ -> throwError "if: expected boolean")))+                                                                                                                                                       !appl_18 <- kl_Parse_shen_LBwhitespaceRB `pseq` kl_shen_LBwhitespacesRB kl_Parse_shen_LBwhitespaceRB+                                                                                                                                                       appl_18 `pseq` applyWrapper appl_13 [appl_18]+                                                                                                                                 Atom (B (False)) -> do do kl_fail+                                                                                                                                 _ -> throwError "if: expected boolean")))+                                         !appl_19 <- kl_V2384 `pseq` kl_shen_LBwhitespaceRB kl_V2384+                                         !appl_20 <- appl_19 `pseq` applyWrapper appl_9 [appl_19]+                                         appl_20 `pseq` applyWrapper appl_0 [appl_20]++kl_shen_LBwhitespaceRB :: Core.Types.KLValue ->+                          Core.Types.KLContext Core.Types.Env Core.Types.KLValue+kl_shen_LBwhitespaceRB (!kl_V2386) = do !appl_0 <- kl_V2386 `pseq` hd kl_V2386+                                        !kl_if_1 <- appl_0 `pseq` consP appl_0+                                        case kl_if_1 of+                                            Atom (B (True)) -> do let !appl_2 = ApplC (Func "lambda" (Context (\(!kl_Parse_X) -> do let !appl_3 = ApplC (Func "lambda" (Context (\(!kl_Parse_Case) -> do let pat_cond_4 = do return (Atom (B True))+                                                                                                                                                                                                             pat_cond_5 = do do !kl_if_6 <- let pat_cond_7 = do return (Atom (B True))+                                                                                                                                                                                                                                                pat_cond_8 = do do !kl_if_9 <- let pat_cond_10 = do return (Atom (B True))+                                                                                                                                                                                                                                                                                   pat_cond_11 = do do let pat_cond_12 = do return (Atom (B True))+                                                                                                                                                                                                                                                                                                           pat_cond_13 = do do return (Atom (B False))+                                                                                                                                                                                                                                                                                                        in case kl_Parse_Case of+                                                                                                                                                                                                                                                                                                               kl_Parse_Case@(Atom (N (KI 9))) -> pat_cond_12+                                                                                                                                                                                                                                                                                                               _ -> pat_cond_13+                                                                                                                                                                                                                                                                                in case kl_Parse_Case of+                                                                                                                                                                                                                                                                                       kl_Parse_Case@(Atom (N (KI 10))) -> pat_cond_10+                                                                                                                                                                                                                                                                                       _ -> pat_cond_11+                                                                                                                                                                                                                                                                   case kl_if_9 of+                                                                                                                                                                                                                                                                       Atom (B (True)) -> do return (Atom (B True))+                                                                                                                                                                                                                                                                       Atom (B (False)) -> do do return (Atom (B False))+                                                                                                                                                                                                                                                                       _ -> throwError "if: expected boolean"+                                                                                                                                                                                                                                             in case kl_Parse_Case of+                                                                                                                                                                                                                                                    kl_Parse_Case@(Atom (N (KI 13))) -> pat_cond_7+                                                                                                                                                                                                                                                    _ -> pat_cond_8+                                                                                                                                                                                                                                case kl_if_6 of+                                                                                                                                                                                                                                    Atom (B (True)) -> do return (Atom (B True))+                                                                                                                                                                                                                                    Atom (B (False)) -> do do return (Atom (B False))+                                                                                                                                                                                                                                    _ -> throwError "if: expected boolean"+                                                                                                                                                                                                          in case kl_Parse_Case of+                                                                                                                                                                                                                 kl_Parse_Case@(Atom (N (KI 32))) -> pat_cond_4+                                                                                                                                                                                                                 _ -> pat_cond_5)))+                                                                                                                                    !kl_if_14 <- kl_Parse_X `pseq` applyWrapper appl_3 [kl_Parse_X]+                                                                                                                                    case kl_if_14 of+                                                                                                                                        Atom (B (True)) -> do !appl_15 <- kl_V2386 `pseq` hd kl_V2386+                                                                                                                                                              !appl_16 <- appl_15 `pseq` tl appl_15+                                                                                                                                                              !appl_17 <- kl_V2386 `pseq` kl_shen_hdtl kl_V2386+                                                                                                                                                              !appl_18 <- appl_16 `pseq` (appl_17 `pseq` kl_shen_pair appl_16 appl_17)+                                                                                                                                                              !appl_19 <- appl_18 `pseq` hd appl_18+                                                                                                                                                              appl_19 `pseq` kl_shen_pair appl_19 (Core.Types.Atom (Core.Types.UnboundSym "shen.skip"))+                                                                                                                                        Atom (B (False)) -> do do kl_fail+                                                                                                                                        _ -> throwError "if: expected boolean")))+                                                                  !appl_20 <- kl_V2386 `pseq` hd kl_V2386+                                                                  !appl_21 <- appl_20 `pseq` hd appl_20+                                                                  appl_21 `pseq` applyWrapper appl_2 [appl_21]+                                            Atom (B (False)) -> do do kl_fail+                                            _ -> throwError "if: expected boolean"++kl_shen_cons_form :: Core.Types.KLValue ->+                     Core.Types.KLContext Core.Types.Env Core.Types.KLValue+kl_shen_cons_form (!kl_V2388) = do let !appl_0 = Atom Nil+                                   !kl_if_1 <- appl_0 `pseq` (kl_V2388 `pseq` eq appl_0 kl_V2388)+                                   case kl_if_1 of+                                       Atom (B (True)) -> do return (Atom Nil)+                                       Atom (B (False)) -> do !kl_if_2 <- let pat_cond_3 kl_V2388 kl_V2388h kl_V2388t = do !kl_if_4 <- let pat_cond_5 kl_V2388t kl_V2388th kl_V2388tt = do !kl_if_6 <- let pat_cond_7 kl_V2388tt kl_V2388tth kl_V2388ttt = do let !appl_8 = Atom Nil+                                                                                                                                                                                                                                                              !kl_if_9 <- appl_8 `pseq` (kl_V2388ttt `pseq` eq appl_8 kl_V2388ttt)+                                                                                                                                                                                                                                                              !kl_if_10 <- case kl_if_9 of+                                                                                                                                                                                                                                                                               Atom (B (True)) -> do let pat_cond_11 = do return (Atom (B True))+                                                                                                                                                                                                                                                                                                         pat_cond_12 = do do return (Atom (B False))+                                                                                                                                                                                                                                                                                                      in case kl_V2388th of+                                                                                                                                                                                                                                                                                                             kl_V2388th@(Atom (UnboundSym "bar!")) -> pat_cond_11+                                                                                                                                                                                                                                                                                                             kl_V2388th@(ApplC (PL "bar!"+                                                                                                                                                                                                                                                                                                                                   _)) -> pat_cond_11+                                                                                                                                                                                                                                                                                                             kl_V2388th@(ApplC (Func "bar!"+                                                                                                                                                                                                                                                                                                                                     _)) -> pat_cond_11+                                                                                                                                                                                                                                                                                                             _ -> pat_cond_12+                                                                                                                                                                                                                                                                               Atom (B (False)) -> do do return (Atom (B False))+                                                                                                                                                                                                                                                                               _ -> throwError "if: expected boolean"+                                                                                                                                                                                                                                                              case kl_if_10 of+                                                                                                                                                                                                                                                                  Atom (B (True)) -> do return (Atom (B True))+                                                                                                                                                                                                                                                                  Atom (B (False)) -> do do return (Atom (B False))+                                                                                                                                                                                                                                                                  _ -> throwError "if: expected boolean"+                                                                                                                                                                                                           pat_cond_13 = do do return (Atom (B False))+                                                                                                                                                                                                        in case kl_V2388tt of+                                                                                                                                                                                                               !(kl_V2388tt@(Cons (!kl_V2388tth)+                                                                                                                                                                                                                                  (!kl_V2388ttt))) -> pat_cond_7 kl_V2388tt kl_V2388tth kl_V2388ttt+                                                                                                                                                                                                               _ -> pat_cond_13+                                                                                                                                                                                           case kl_if_6 of+                                                                                                                                                                                               Atom (B (True)) -> do return (Atom (B True))+                                                                                                                                                                                               Atom (B (False)) -> do do return (Atom (B False))+                                                                                                                                                                                               _ -> throwError "if: expected boolean"+                                                                                                                                           pat_cond_14 = do do return (Atom (B False))+                                                                                                                                        in case kl_V2388t of+                                                                                                                                               !(kl_V2388t@(Cons (!kl_V2388th)+                                                                                                                                                                 (!kl_V2388tt))) -> pat_cond_5 kl_V2388t kl_V2388th kl_V2388tt+                                                                                                                                               _ -> pat_cond_14+                                                                                                                           case kl_if_4 of+                                                                                                                               Atom (B (True)) -> do return (Atom (B True))+                                                                                                                               Atom (B (False)) -> do do return (Atom (B False))+                                                                                                                               _ -> throwError "if: expected boolean"+                                                                              pat_cond_15 = do do return (Atom (B False))+                                                                           in case kl_V2388 of+                                                                                  !(kl_V2388@(Cons (!kl_V2388h)+                                                                                                   (!kl_V2388t))) -> pat_cond_3 kl_V2388 kl_V2388h kl_V2388t+                                                                                  _ -> pat_cond_15+                                                              case kl_if_2 of+                                                                  Atom (B (True)) -> do !appl_16 <- kl_V2388 `pseq` hd kl_V2388+                                                                                        !appl_17 <- kl_V2388 `pseq` tl kl_V2388+                                                                                        !appl_18 <- appl_17 `pseq` tl appl_17+                                                                                        !appl_19 <- appl_16 `pseq` (appl_18 `pseq` klCons appl_16 appl_18)+                                                                                        appl_19 `pseq` klCons (ApplC (wrapNamed "cons" klCons)) appl_19+                                                                  Atom (B (False)) -> do let pat_cond_20 kl_V2388 kl_V2388h kl_V2388t = do !appl_21 <- kl_V2388t `pseq` kl_shen_cons_form kl_V2388t+                                                                                                                                           let !appl_22 = Atom Nil+                                                                                                                                           !appl_23 <- appl_21 `pseq` (appl_22 `pseq` klCons appl_21 appl_22)+                                                                                                                                           !appl_24 <- kl_V2388h `pseq` (appl_23 `pseq` klCons kl_V2388h appl_23)+                                                                                                                                           appl_24 `pseq` klCons (ApplC (wrapNamed "cons" klCons)) appl_24+                                                                                             pat_cond_25 = do do let !aw_26 = Core.Types.Atom (Core.Types.UnboundSym "shen.f_error")+                                                                                                                 applyWrapper aw_26 [ApplC (wrapNamed "shen.cons_form" kl_shen_cons_form)]+                                                                                          in case kl_V2388 of+                                                                                                 !(kl_V2388@(Cons (!kl_V2388h)+                                                                                                                  (!kl_V2388t))) -> pat_cond_20 kl_V2388 kl_V2388h kl_V2388t+                                                                                                 _ -> pat_cond_25+                                                                  _ -> throwError "if: expected boolean"+                                       _ -> throwError "if: expected boolean"++kl_shen_package_macro :: Core.Types.KLValue ->+                         Core.Types.KLValue ->+                         Core.Types.KLContext Core.Types.Env Core.Types.KLValue+kl_shen_package_macro (!kl_V2393) (!kl_V2394) = do !kl_if_0 <- let pat_cond_1 kl_V2393 kl_V2393h kl_V2393t = do !kl_if_2 <- let pat_cond_3 = do !kl_if_4 <- let pat_cond_5 kl_V2393t kl_V2393th kl_V2393tt = do let !appl_6 = Atom Nil+                                                                                                                                                                                                                !kl_if_7 <- appl_6 `pseq` (kl_V2393tt `pseq` eq appl_6 kl_V2393tt)+                                                                                                                                                                                                                case kl_if_7 of+                                                                                                                                                                                                                    Atom (B (True)) -> do return (Atom (B True))+                                                                                                                                                                                                                    Atom (B (False)) -> do do return (Atom (B False))+                                                                                                                                                                                                                    _ -> throwError "if: expected boolean"+                                                                                                                                                                pat_cond_8 = do do return (Atom (B False))+                                                                                                                                                             in case kl_V2393t of+                                                                                                                                                                    !(kl_V2393t@(Cons (!kl_V2393th)+                                                                                                                                                                                      (!kl_V2393tt))) -> pat_cond_5 kl_V2393t kl_V2393th kl_V2393tt+                                                                                                                                                                    _ -> pat_cond_8+                                                                                                                                                case kl_if_4 of+                                                                                                                                                    Atom (B (True)) -> do return (Atom (B True))+                                                                                                                                                    Atom (B (False)) -> do do return (Atom (B False))+                                                                                                                                                    _ -> throwError "if: expected boolean"+                                                                                                                                pat_cond_9 = do do return (Atom (B False))+                                                                                                                             in case kl_V2393h of+                                                                                                                                    kl_V2393h@(Atom (UnboundSym "$")) -> pat_cond_3+                                                                                                                                    kl_V2393h@(ApplC (PL "$"+                                                                                                                                                         _)) -> pat_cond_3+                                                                                                                                    kl_V2393h@(ApplC (Func "$"+                                                                                                                                                           _)) -> pat_cond_3+                                                                                                                                    _ -> pat_cond_9+                                                                                                                case kl_if_2 of+                                                                                                                    Atom (B (True)) -> do return (Atom (B True))+                                                                                                                    Atom (B (False)) -> do do return (Atom (B False))+                                                                                                                    _ -> throwError "if: expected boolean"+                                                                   pat_cond_10 = do do return (Atom (B False))+                                                                in case kl_V2393 of+                                                                       !(kl_V2393@(Cons (!kl_V2393h)+                                                                                        (!kl_V2393t))) -> pat_cond_1 kl_V2393 kl_V2393h kl_V2393t+                                                                       _ -> pat_cond_10+                                                   case kl_if_0 of+                                                       Atom (B (True)) -> do !appl_11 <- kl_V2393 `pseq` tl kl_V2393+                                                                             !appl_12 <- appl_11 `pseq` hd appl_11+                                                                             !appl_13 <- appl_12 `pseq` kl_explode appl_12+                                                                             appl_13 `pseq` (kl_V2394 `pseq` kl_append appl_13 kl_V2394)+                                                       Atom (B (False)) -> do let pat_cond_14 kl_V2393 kl_V2393t kl_V2393tt kl_V2393tth kl_V2393ttt = do kl_V2393ttt `pseq` (kl_V2394 `pseq` kl_append kl_V2393ttt kl_V2394)+                                                                                  pat_cond_15 kl_V2393 kl_V2393t kl_V2393th kl_V2393tt kl_V2393tth kl_V2393ttt = do let !appl_16 = ApplC (Func "lambda" (Context (\(!kl_ListofExceptions) -> do let !appl_17 = ApplC (Func "lambda" (Context (\(!kl_External) -> do let !appl_18 = ApplC (Func "lambda" (Context (\(!kl_PackageNameDot) -> do let !appl_19 = ApplC (Func "lambda" (Context (\(!kl_ExpPackageNameDot) -> do let !appl_20 = ApplC (Func "lambda" (Context (\(!kl_Packaged) -> do let !appl_21 = ApplC (Func "lambda" (Context (\(!kl_Internal) -> do kl_Packaged `pseq` (kl_V2394 `pseq` kl_append kl_Packaged kl_V2394))))+                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                               !appl_22 <- kl_ExpPackageNameDot `pseq` (kl_Packaged `pseq` kl_shen_internal_symbols kl_ExpPackageNameDot kl_Packaged)+                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                               !appl_23 <- kl_V2393th `pseq` (appl_22 `pseq` kl_shen_record_internal kl_V2393th appl_22)+                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                               appl_23 `pseq` applyWrapper appl_21 [appl_23])))+                                                                                                                                                                                                                                                                                                                                                                                                                                                                           !appl_24 <- kl_PackageNameDot `pseq` (kl_ListofExceptions `pseq` (kl_V2393ttt `pseq` (kl_ExpPackageNameDot `pseq` kl_shen_packageh kl_PackageNameDot kl_ListofExceptions kl_V2393ttt kl_ExpPackageNameDot)))+                                                                                                                                                                                                                                                                                                                                                                                                                                                                           appl_24 `pseq` applyWrapper appl_20 [appl_24])))+                                                                                                                                                                                                                                                                                                                                                                                              !appl_25 <- kl_PackageNameDot `pseq` kl_explode kl_PackageNameDot+                                                                                                                                                                                                                                                                                                                                                                                              appl_25 `pseq` applyWrapper appl_19 [appl_25])))+                                                                                                                                                                                                                                                                                                                    !appl_26 <- kl_V2393th `pseq` str kl_V2393th+                                                                                                                                                                                                                                                                                                                    !appl_27 <- appl_26 `pseq` cn appl_26 (Core.Types.Atom (Core.Types.Str "."))+                                                                                                                                                                                                                                                                                                                    !appl_28 <- appl_27 `pseq` intern appl_27+                                                                                                                                                                                                                                                                                                                    appl_28 `pseq` applyWrapper appl_18 [appl_28])))+                                                                                                                                                                                                                                                !appl_29 <- kl_ListofExceptions `pseq` (kl_V2393th `pseq` kl_shen_record_exceptions kl_ListofExceptions kl_V2393th)+                                                                                                                                                                                                                                                appl_29 `pseq` applyWrapper appl_17 [appl_29])))+                                                                                                                                                                    !appl_30 <- kl_V2393tth `pseq` kl_shen_eval_without_macros kl_V2393tth+                                                                                                                                                                    appl_30 `pseq` applyWrapper appl_16 [appl_30]+                                                                                  pat_cond_31 = do do kl_V2393 `pseq` (kl_V2394 `pseq` klCons kl_V2393 kl_V2394)+                                                                               in case kl_V2393 of+                                                                                      !(kl_V2393@(Cons (Atom (UnboundSym "package"))+                                                                                                       (!(kl_V2393t@(Cons (Atom (UnboundSym "null"))+                                                                                                                          (!(kl_V2393tt@(Cons (!kl_V2393tth)+                                                                                                                                              (!kl_V2393ttt))))))))) -> pat_cond_14 kl_V2393 kl_V2393t kl_V2393tt kl_V2393tth kl_V2393ttt+                                                                                      !(kl_V2393@(Cons (Atom (UnboundSym "package"))+                                                                                                       (!(kl_V2393t@(Cons (ApplC (PL "null"+                                                                                                                                     _))+                                                                                                                          (!(kl_V2393tt@(Cons (!kl_V2393tth)+                                                                                                                                              (!kl_V2393ttt))))))))) -> pat_cond_14 kl_V2393 kl_V2393t kl_V2393tt kl_V2393tth kl_V2393ttt+                                                                                      !(kl_V2393@(Cons (Atom (UnboundSym "package"))+                                                                                                       (!(kl_V2393t@(Cons (ApplC (Func "null"+                                                                                                                                       _))+                                                                                                                          (!(kl_V2393tt@(Cons (!kl_V2393tth)+                                                                                                                                              (!kl_V2393ttt))))))))) -> pat_cond_14 kl_V2393 kl_V2393t kl_V2393tt kl_V2393tth kl_V2393ttt+                                                                                      !(kl_V2393@(Cons (ApplC (PL "package"+                                                                                                                  _))+                                                                                                       (!(kl_V2393t@(Cons (Atom (UnboundSym "null"))+                                                                                                                          (!(kl_V2393tt@(Cons (!kl_V2393tth)+                                                                                                                                              (!kl_V2393ttt))))))))) -> pat_cond_14 kl_V2393 kl_V2393t kl_V2393tt kl_V2393tth kl_V2393ttt+                                                                                      !(kl_V2393@(Cons (ApplC (PL "package"+                                                                                                                  _))+                                                                                                       (!(kl_V2393t@(Cons (ApplC (PL "null"+                                                                                                                                     _))+                                                                                                                          (!(kl_V2393tt@(Cons (!kl_V2393tth)+                                                                                                                                              (!kl_V2393ttt))))))))) -> pat_cond_14 kl_V2393 kl_V2393t kl_V2393tt kl_V2393tth kl_V2393ttt+                                                                                      !(kl_V2393@(Cons (ApplC (PL "package"+                                                                                                                  _))+                                                                                                       (!(kl_V2393t@(Cons (ApplC (Func "null"+                                                                                                                                       _))+                                                                                                                          (!(kl_V2393tt@(Cons (!kl_V2393tth)+                                                                                                                                              (!kl_V2393ttt))))))))) -> pat_cond_14 kl_V2393 kl_V2393t kl_V2393tt kl_V2393tth kl_V2393ttt+                                                                                      !(kl_V2393@(Cons (ApplC (Func "package"+                                                                                                                    _))+                                                                                                       (!(kl_V2393t@(Cons (Atom (UnboundSym "null"))+                                                                                                                          (!(kl_V2393tt@(Cons (!kl_V2393tth)+                                                                                                                                              (!kl_V2393ttt))))))))) -> pat_cond_14 kl_V2393 kl_V2393t kl_V2393tt kl_V2393tth kl_V2393ttt+                                                                                      !(kl_V2393@(Cons (ApplC (Func "package"+                                                                                                                    _))+                                                                                                       (!(kl_V2393t@(Cons (ApplC (PL "null"+                                                                                                                                     _))+                                                                                                                          (!(kl_V2393tt@(Cons (!kl_V2393tth)+                                                                                                                                              (!kl_V2393ttt))))))))) -> pat_cond_14 kl_V2393 kl_V2393t kl_V2393tt kl_V2393tth kl_V2393ttt+                                                                                      !(kl_V2393@(Cons (ApplC (Func "package"+                                                                                                                    _))+                                                                                                       (!(kl_V2393t@(Cons (ApplC (Func "null"+                                                                                                                                       _))+                                                                                                                          (!(kl_V2393tt@(Cons (!kl_V2393tth)+                                                                                                                                              (!kl_V2393ttt))))))))) -> pat_cond_14 kl_V2393 kl_V2393t kl_V2393tt kl_V2393tth kl_V2393ttt+                                                                                      !(kl_V2393@(Cons (Atom (UnboundSym "package"))+                                                                                                       (!(kl_V2393t@(Cons (!kl_V2393th)+                                                                                                                          (!(kl_V2393tt@(Cons (!kl_V2393tth)+                                                                                                                                              (!kl_V2393ttt))))))))) -> pat_cond_15 kl_V2393 kl_V2393t kl_V2393th kl_V2393tt kl_V2393tth kl_V2393ttt+                                                                                      !(kl_V2393@(Cons (ApplC (PL "package"+                                                                                                                  _))+                                                                                                       (!(kl_V2393t@(Cons (!kl_V2393th)+                                                                                                                          (!(kl_V2393tt@(Cons (!kl_V2393tth)+                                                                                                                                              (!kl_V2393ttt))))))))) -> pat_cond_15 kl_V2393 kl_V2393t kl_V2393th kl_V2393tt kl_V2393tth kl_V2393ttt+                                                                                      !(kl_V2393@(Cons (ApplC (Func "package"+                                                                                                                    _))+                                                                                                       (!(kl_V2393t@(Cons (!kl_V2393th)+                                                                                                                          (!(kl_V2393tt@(Cons (!kl_V2393tth)+                                                                                                                                              (!kl_V2393ttt))))))))) -> pat_cond_15 kl_V2393 kl_V2393t kl_V2393th kl_V2393tt kl_V2393tth kl_V2393ttt+                                                                                      _ -> pat_cond_31+                                                       _ -> throwError "if: expected boolean"++kl_shen_record_exceptions :: Core.Types.KLValue ->+                             Core.Types.KLValue ->+                             Core.Types.KLContext Core.Types.Env Core.Types.KLValue+kl_shen_record_exceptions (!kl_V2397) (!kl_V2398) = do let !appl_0 = ApplC (Func "lambda" (Context (\(!kl_CurrExceptions) -> do let !appl_1 = ApplC (Func "lambda" (Context (\(!kl_AllExceptions) -> do !appl_2 <- value (Core.Types.Atom (Core.Types.UnboundSym "*property-vector*"))+                                                                                                                                                                                                        kl_V2398 `pseq` (kl_AllExceptions `pseq` (appl_2 `pseq` kl_put kl_V2398 (Core.Types.Atom (Core.Types.UnboundSym "shen.external-symbols")) kl_AllExceptions appl_2)))))+                                                                                                                                !appl_3 <- kl_V2397 `pseq` (kl_CurrExceptions `pseq` kl_union kl_V2397 kl_CurrExceptions)+                                                                                                                                appl_3 `pseq` applyWrapper appl_1 [appl_3])))+                                                       let !appl_4 = ApplC (PL "thunk" (do return (Atom Nil)))+                                                       !appl_5 <- value (Core.Types.Atom (Core.Types.UnboundSym "*property-vector*"))+                                                       !appl_6 <- kl_V2398 `pseq` (appl_4 `pseq` (appl_5 `pseq` kl_getDivor kl_V2398 (Core.Types.Atom (Core.Types.UnboundSym "shen.external-symbols")) appl_4 appl_5))+                                                       appl_6 `pseq` applyWrapper appl_0 [appl_6]++kl_shen_record_internal :: Core.Types.KLValue ->+                           Core.Types.KLValue ->+                           Core.Types.KLContext Core.Types.Env Core.Types.KLValue+kl_shen_record_internal (!kl_V2401) (!kl_V2402) = do let !appl_0 = ApplC (PL "thunk" (do return (Atom Nil)))+                                                     !appl_1 <- value (Core.Types.Atom (Core.Types.UnboundSym "*property-vector*"))+                                                     !appl_2 <- kl_V2401 `pseq` (appl_0 `pseq` (appl_1 `pseq` kl_getDivor kl_V2401 (ApplC (wrapNamed "shen.internal-symbols" kl_shen_internal_symbols)) appl_0 appl_1))+                                                     !appl_3 <- kl_V2402 `pseq` (appl_2 `pseq` kl_union kl_V2402 appl_2)+                                                     !appl_4 <- value (Core.Types.Atom (Core.Types.UnboundSym "*property-vector*"))+                                                     kl_V2401 `pseq` (appl_3 `pseq` (appl_4 `pseq` kl_put kl_V2401 (ApplC (wrapNamed "shen.internal-symbols" kl_shen_internal_symbols)) appl_3 appl_4))++kl_shen_internal_symbols :: Core.Types.KLValue ->+                            Core.Types.KLValue ->+                            Core.Types.KLContext Core.Types.Env Core.Types.KLValue+kl_shen_internal_symbols (!kl_V2413) (!kl_V2414) = do !kl_if_0 <- kl_V2414 `pseq` kl_symbolP kl_V2414+                                                      !kl_if_1 <- case kl_if_0 of+                                                                      Atom (B (True)) -> do !appl_2 <- kl_V2414 `pseq` kl_explode kl_V2414+                                                                                            !kl_if_3 <- kl_V2413 `pseq` (appl_2 `pseq` kl_shen_prefixP kl_V2413 appl_2)+                                                                                            case kl_if_3 of+                                                                                                Atom (B (True)) -> do return (Atom (B True))+                                                                                                Atom (B (False)) -> do do return (Atom (B False))+                                                                                                _ -> throwError "if: expected boolean"+                                                                      Atom (B (False)) -> do do return (Atom (B False))+                                                                      _ -> throwError "if: expected boolean"+                                                      case kl_if_1 of+                                                          Atom (B (True)) -> do let !appl_4 = Atom Nil+                                                                                kl_V2414 `pseq` (appl_4 `pseq` klCons kl_V2414 appl_4)+                                                          Atom (B (False)) -> do let pat_cond_5 kl_V2414 kl_V2414h kl_V2414t = do !appl_6 <- kl_V2413 `pseq` (kl_V2414h `pseq` kl_shen_internal_symbols kl_V2413 kl_V2414h)+                                                                                                                                  !appl_7 <- kl_V2413 `pseq` (kl_V2414t `pseq` kl_shen_internal_symbols kl_V2413 kl_V2414t)+                                                                                                                                  appl_6 `pseq` (appl_7 `pseq` kl_union appl_6 appl_7)+                                                                                     pat_cond_8 = do do return (Atom Nil)+                                                                                  in case kl_V2414 of+                                                                                         !(kl_V2414@(Cons (!kl_V2414h)+                                                                                                          (!kl_V2414t))) -> pat_cond_5 kl_V2414 kl_V2414h kl_V2414t+                                                                                         _ -> pat_cond_8+                                                          _ -> throwError "if: expected boolean"++kl_shen_packageh :: Core.Types.KLValue ->+                    Core.Types.KLValue ->+                    Core.Types.KLValue ->+                    Core.Types.KLValue ->+                    Core.Types.KLContext Core.Types.Env Core.Types.KLValue+kl_shen_packageh (!kl_V2431) (!kl_V2432) (!kl_V2433) (!kl_V2434) = do let pat_cond_0 kl_V2433 kl_V2433h kl_V2433t = do !appl_1 <- kl_V2431 `pseq` (kl_V2432 `pseq` (kl_V2433h `pseq` (kl_V2434 `pseq` kl_shen_packageh kl_V2431 kl_V2432 kl_V2433h kl_V2434)))+                                                                                                                       !appl_2 <- kl_V2431 `pseq` (kl_V2432 `pseq` (kl_V2433t `pseq` (kl_V2434 `pseq` kl_shen_packageh kl_V2431 kl_V2432 kl_V2433t kl_V2434)))+                                                                                                                       appl_1 `pseq` (appl_2 `pseq` klCons appl_1 appl_2)+                                                                          pat_cond_3 = do !kl_if_4 <- kl_V2433 `pseq` kl_shen_sysfuncP kl_V2433+                                                                                          !kl_if_5 <- case kl_if_4 of+                                                                                                          Atom (B (True)) -> do return (Atom (B True))+                                                                                                          Atom (B (False)) -> do do !kl_if_6 <- kl_V2433 `pseq` kl_variableP kl_V2433+                                                                                                                                    !kl_if_7 <- case kl_if_6 of+                                                                                                                                                    Atom (B (True)) -> do return (Atom (B True))+                                                                                                                                                    Atom (B (False)) -> do do !kl_if_8 <- kl_V2433 `pseq` (kl_V2432 `pseq` kl_elementP kl_V2433 kl_V2432)+                                                                                                                                                                              !kl_if_9 <- case kl_if_8 of+                                                                                                                                                                                              Atom (B (True)) -> do return (Atom (B True))+                                                                                                                                                                                              Atom (B (False)) -> do do !kl_if_10 <- kl_V2433 `pseq` kl_shen_doubleunderlineP kl_V2433+                                                                                                                                                                                                                        !kl_if_11 <- case kl_if_10 of+                                                                                                                                                                                                                                         Atom (B (True)) -> do return (Atom (B True))+                                                                                                                                                                                                                                         Atom (B (False)) -> do do !kl_if_12 <- kl_V2433 `pseq` kl_shen_singleunderlineP kl_V2433+                                                                                                                                                                                                                                                                   case kl_if_12 of+                                                                                                                                                                                                                                                                       Atom (B (True)) -> do return (Atom (B True))+                                                                                                                                                                                                                                                                       Atom (B (False)) -> do do return (Atom (B False))+                                                                                                                                                                                                                                                                       _ -> throwError "if: expected boolean"+                                                                                                                                                                                                                                         _ -> throwError "if: expected boolean"+                                                                                                                                                                                                                        case kl_if_11 of+                                                                                                                                                                                                                            Atom (B (True)) -> do return (Atom (B True))+                                                                                                                                                                                                                            Atom (B (False)) -> do do return (Atom (B False))+                                                                                                                                                                                                                            _ -> throwError "if: expected boolean"+                                                                                                                                                                                              _ -> throwError "if: expected boolean"+                                                                                                                                                                              case kl_if_9 of+                                                                                                                                                                                  Atom (B (True)) -> do return (Atom (B True))+                                                                                                                                                                                  Atom (B (False)) -> do do return (Atom (B False))+                                                                                                                                                                                  _ -> throwError "if: expected boolean"+                                                                                                                                                    _ -> throwError "if: expected boolean"+                                                                                                                                    case kl_if_7 of+                                                                                                                                        Atom (B (True)) -> do return (Atom (B True))+                                                                                                                                        Atom (B (False)) -> do do return (Atom (B False))+                                                                                                                                        _ -> throwError "if: expected boolean"+                                                                                                          _ -> throwError "if: expected boolean"+                                                                                          case kl_if_5 of+                                                                                              Atom (B (True)) -> do return kl_V2433+                                                                                              Atom (B (False)) -> do !kl_if_13 <- kl_V2433 `pseq` kl_symbolP kl_V2433+                                                                                                                     !kl_if_14 <- case kl_if_13 of+                                                                                                                                      Atom (B (True)) -> do let !appl_15 = ApplC (Func "lambda" (Context (\(!kl_ExplodeX) -> do let !appl_16 = Atom Nil+                                                                                                                                                                                                                                !appl_17 <- appl_16 `pseq` klCons (Core.Types.Atom (Core.Types.Str ".")) appl_16+                                                                                                                                                                                                                                !appl_18 <- appl_17 `pseq` klCons (Core.Types.Atom (Core.Types.Str "n")) appl_17+                                                                                                                                                                                                                                !appl_19 <- appl_18 `pseq` klCons (Core.Types.Atom (Core.Types.Str "e")) appl_18+                                                                                                                                                                                                                                !appl_20 <- appl_19 `pseq` klCons (Core.Types.Atom (Core.Types.Str "h")) appl_19+                                                                                                                                                                                                                                !appl_21 <- appl_20 `pseq` klCons (Core.Types.Atom (Core.Types.Str "s")) appl_20+                                                                                                                                                                                                                                !appl_22 <- appl_21 `pseq` (kl_ExplodeX `pseq` kl_shen_prefixP appl_21 kl_ExplodeX)+                                                                                                                                                                                                                                !kl_if_23 <- appl_22 `pseq` kl_not appl_22+                                                                                                                                                                                                                                case kl_if_23 of+                                                                                                                                                                                                                                    Atom (B (True)) -> do !appl_24 <- kl_V2434 `pseq` (kl_ExplodeX `pseq` kl_shen_prefixP kl_V2434 kl_ExplodeX)+                                                                                                                                                                                                                                                          !kl_if_25 <- appl_24 `pseq` kl_not appl_24+                                                                                                                                                                                                                                                          case kl_if_25 of+                                                                                                                                                                                                                                                              Atom (B (True)) -> do return (Atom (B True))+                                                                                                                                                                                                                                                              Atom (B (False)) -> do do return (Atom (B False))+                                                                                                                                                                                                                                                              _ -> throwError "if: expected boolean"+                                                                                                                                                                                                                                    Atom (B (False)) -> do do return (Atom (B False))+                                                                                                                                                                                                                                    _ -> throwError "if: expected boolean")))+                                                                                                                                                            !appl_26 <- kl_V2433 `pseq` kl_explode kl_V2433+                                                                                                                                                            !kl_if_27 <- appl_26 `pseq` applyWrapper appl_15 [appl_26]+                                                                                                                                                            case kl_if_27 of+                                                                                                                                                                Atom (B (True)) -> do return (Atom (B True))+                                                                                                                                                                Atom (B (False)) -> do do return (Atom (B False))+                                                                                                                                                                _ -> throwError "if: expected boolean"+                                                                                                                                      Atom (B (False)) -> do do return (Atom (B False))+                                                                                                                                      _ -> throwError "if: expected boolean"+                                                                                                                     case kl_if_14 of+                                                                                                                         Atom (B (True)) -> do kl_V2431 `pseq` (kl_V2433 `pseq` kl_concat kl_V2431 kl_V2433)+                                                                                                                         Atom (B (False)) -> do do return kl_V2433+                                                                                                                         _ -> throwError "if: expected boolean"+                                                                                              _ -> throwError "if: expected boolean"+                                                                       in case kl_V2433 of+                                                                              !(kl_V2433@(Cons (!kl_V2433h)+                                                                                               (!kl_V2433t))) -> pat_cond_0 kl_V2433 kl_V2433h kl_V2433t+                                                                              _ -> pat_cond_3++expr5 :: Core.Types.KLContext Core.Types.Env Core.Types.KLValue+expr5 = do (do return (Core.Types.Atom (Core.Types.Str "Copyright (c) 2015, Mark Tarver\n\nAll rights reserved.\n\nRedistribution and use in source and binary forms, with or without\nmodification, are permitted provided that the following conditions are met:\n1. Redistributions of source code must retain the above copyright\n   notice, this list of conditions and the following disclaimer.\n2. Redistributions in binary form must reproduce the above copyright\n   notice, this list of conditions and the following disclaimer in the\n   documentation and/or other materials provided with the distribution.\n3. The name of Mark Tarver may not be used to endorse or promote products\n   derived from this software without specific prior written permission.\n\nTHIS SOFTWARE IS PROVIDED BY Mark Tarver ''AS IS'' AND ANY\nEXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED\nWARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE\nDISCLAIMED. IN NO EVENT SHALL Mark Tarver BE LIABLE FOR ANY\nDIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES\n(INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;\nLOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND\nON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT\n(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS\nSOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE."))) `catchError` (\(!kl_E) -> do return (Core.Types.Atom (Core.Types.Str "E")))
Shentong/Backend/Sequent.hs view
@@ -1,1872 +1,2205 @@-{-# LANGUAGE BangPatterns #-}
-{-# LANGUAGE OverloadedStrings #-}
-{-# LANGUAGE Strict #-}
-{-# LANGUAGE StrictData #-}
-{-# LANGUAGE ViewPatterns #-}
-
-module Backend.Sequent where
-
-import Control.Monad.Except
-import Control.Parallel
-import Environment
-import Primitives as Primitives
-import Backend.Utils
-import Types as Types
-import Utils
-import Wrap
-import Backend.Toplevel
-import Backend.Core
-import Backend.Sys
-
-{-
-Copyright (c) 2015, Mark Tarver
-All rights reserved.
-
-Redistribution and use in source and binary forms, with or without
-modification, are permitted provided that the following conditions are met:
-
-1. Redistributions of source code must retain the above copyright
-   notice, this list of conditions and the following disclaimer.
-2. Redistributions in binary form must reproduce the above copyright
-   notice, this list of conditions and the following disclaimer in the
-   documentation and/or other materials provided with the distribution.
-3. The name of Mark Tarver may not be used to endorse or promote products
-   derived from this software without specific prior written permission.
-
-THIS SOFTWARE IS PROVIDED BY Mark Tarver ''AS IS'' AND ANY
-EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
-WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
-DISCLAIMED. IN NO EVENT SHALL Mark Tarver BE LIABLE FOR ANY
-DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
-(INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
-LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND
-ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
-(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
-SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
--}
-
-kl_shen_datatype_error :: Types.KLValue ->
-                          Types.KLContext Types.Env Types.KLValue
-kl_shen_datatype_error (!kl_V2428) = do let pat_cond_0 kl_V2428 kl_V2428h kl_V2428t kl_V2428th = do let !aw_1 = Types.Atom (Types.UnboundSym "shen.next-50")
-                                                                                                    !appl_2 <- kl_V2428h `pseq` applyWrapper aw_1 [Types.Atom (Types.N (Types.KI 50)),
-                                                                                                                                                   kl_V2428h]
-                                                                                                    let !aw_3 = Types.Atom (Types.UnboundSym "shen.app")
-                                                                                                    !appl_4 <- appl_2 `pseq` applyWrapper aw_3 [appl_2,
-                                                                                                                                                Types.Atom (Types.Str "\n"),
-                                                                                                                                                Types.Atom (Types.UnboundSym "shen.a")]
-                                                                                                    !appl_5 <- appl_4 `pseq` cn (Types.Atom (Types.Str "datatype syntax error here:\n\n ")) appl_4
-                                                                                                    appl_5 `pseq` simpleError appl_5
-                                            pat_cond_6 = do do let !aw_7 = Types.Atom (Types.UnboundSym "shen.f_error")
-                                                               applyWrapper aw_7 [ApplC (wrapNamed "shen.datatype-error" kl_shen_datatype_error)]
-                                         in case kl_V2428 of
-                                                !(kl_V2428@(Cons (!kl_V2428h)
-                                                                 (!(kl_V2428t@(Cons (!kl_V2428th)
-                                                                                    (Atom (Nil))))))) -> pat_cond_0 kl_V2428 kl_V2428h kl_V2428t kl_V2428th
-                                                _ -> pat_cond_6
-
-kl_shen_LBdatatype_rulesRB :: Types.KLValue ->
-                              Types.KLContext Types.Env Types.KLValue
-kl_shen_LBdatatype_rulesRB (!kl_V2430) = do let !appl_0 = ApplC (Func "lambda" (Context (\(!kl_YaccParse) -> do let !aw_1 = Types.Atom (Types.UnboundSym "fail")
-                                                                                                                !appl_2 <- applyWrapper aw_1 []
-                                                                                                                !kl_if_3 <- kl_YaccParse `pseq` (appl_2 `pseq` eq kl_YaccParse appl_2)
-                                                                                                                case kl_if_3 of
-                                                                                                                    Atom (B (True)) -> do let !appl_4 = ApplC (Func "lambda" (Context (\(!kl_Parse_LBeRB) -> do let !aw_5 = Types.Atom (Types.UnboundSym "fail")
-                                                                                                                                                                                                                !appl_6 <- applyWrapper aw_5 []
-                                                                                                                                                                                                                !appl_7 <- appl_6 `pseq` (kl_Parse_LBeRB `pseq` eq appl_6 kl_Parse_LBeRB)
-                                                                                                                                                                                                                !kl_if_8 <- appl_7 `pseq` kl_not appl_7
-                                                                                                                                                                                                                case kl_if_8 of
-                                                                                                                                                                                                                    Atom (B (True)) -> do !appl_9 <- kl_Parse_LBeRB `pseq` hd kl_Parse_LBeRB
-                                                                                                                                                                                                                                          let !aw_10 = Types.Atom (Types.UnboundSym "shen.pair")
-                                                                                                                                                                                                                                          appl_9 `pseq` applyWrapper aw_10 [appl_9,
-                                                                                                                                                                                                                                                                            Types.Atom Types.Nil]
-                                                                                                                                                                                                                    Atom (B (False)) -> do do let !aw_11 = Types.Atom (Types.UnboundSym "fail")
-                                                                                                                                                                                                                                              applyWrapper aw_11 []
-                                                                                                                                                                                                                    _ -> throwError "if: expected boolean")))
-                                                                                                                                          let !aw_12 = Types.Atom (Types.UnboundSym "<e>")
-                                                                                                                                          !appl_13 <- kl_V2430 `pseq` applyWrapper aw_12 [kl_V2430]
-                                                                                                                                          appl_13 `pseq` applyWrapper appl_4 [appl_13]
-                                                                                                                    Atom (B (False)) -> do do return kl_YaccParse
-                                                                                                                    _ -> throwError "if: expected boolean")))
-                                            let !appl_14 = ApplC (Func "lambda" (Context (\(!kl_Parse_shen_LBdatatype_ruleRB) -> do let !aw_15 = Types.Atom (Types.UnboundSym "fail")
-                                                                                                                                    !appl_16 <- applyWrapper aw_15 []
-                                                                                                                                    !appl_17 <- appl_16 `pseq` (kl_Parse_shen_LBdatatype_ruleRB `pseq` eq appl_16 kl_Parse_shen_LBdatatype_ruleRB)
-                                                                                                                                    !kl_if_18 <- appl_17 `pseq` kl_not appl_17
-                                                                                                                                    case kl_if_18 of
-                                                                                                                                        Atom (B (True)) -> do let !appl_19 = ApplC (Func "lambda" (Context (\(!kl_Parse_shen_LBdatatype_rulesRB) -> do let !aw_20 = Types.Atom (Types.UnboundSym "fail")
-                                                                                                                                                                                                                                                       !appl_21 <- applyWrapper aw_20 []
-                                                                                                                                                                                                                                                       !appl_22 <- appl_21 `pseq` (kl_Parse_shen_LBdatatype_rulesRB `pseq` eq appl_21 kl_Parse_shen_LBdatatype_rulesRB)
-                                                                                                                                                                                                                                                       !kl_if_23 <- appl_22 `pseq` kl_not appl_22
-                                                                                                                                                                                                                                                       case kl_if_23 of
-                                                                                                                                                                                                                                                           Atom (B (True)) -> do !appl_24 <- kl_Parse_shen_LBdatatype_rulesRB `pseq` hd kl_Parse_shen_LBdatatype_rulesRB
-                                                                                                                                                                                                                                                                                 let !aw_25 = Types.Atom (Types.UnboundSym "shen.hdtl")
-                                                                                                                                                                                                                                                                                 !appl_26 <- kl_Parse_shen_LBdatatype_ruleRB `pseq` applyWrapper aw_25 [kl_Parse_shen_LBdatatype_ruleRB]
-                                                                                                                                                                                                                                                                                 let !aw_27 = Types.Atom (Types.UnboundSym "shen.hdtl")
-                                                                                                                                                                                                                                                                                 !appl_28 <- kl_Parse_shen_LBdatatype_rulesRB `pseq` applyWrapper aw_27 [kl_Parse_shen_LBdatatype_rulesRB]
-                                                                                                                                                                                                                                                                                 !appl_29 <- appl_26 `pseq` (appl_28 `pseq` klCons appl_26 appl_28)
-                                                                                                                                                                                                                                                                                 let !aw_30 = Types.Atom (Types.UnboundSym "shen.pair")
-                                                                                                                                                                                                                                                                                 appl_24 `pseq` (appl_29 `pseq` applyWrapper aw_30 [appl_24,
-                                                                                                                                                                                                                                                                                                                                    appl_29])
-                                                                                                                                                                                                                                                           Atom (B (False)) -> do do let !aw_31 = Types.Atom (Types.UnboundSym "fail")
-                                                                                                                                                                                                                                                                                     applyWrapper aw_31 []
-                                                                                                                                                                                                                                                           _ -> throwError "if: expected boolean")))
-                                                                                                                                                              !appl_32 <- kl_Parse_shen_LBdatatype_ruleRB `pseq` kl_shen_LBdatatype_rulesRB kl_Parse_shen_LBdatatype_ruleRB
-                                                                                                                                                              appl_32 `pseq` applyWrapper appl_19 [appl_32]
-                                                                                                                                        Atom (B (False)) -> do do let !aw_33 = Types.Atom (Types.UnboundSym "fail")
-                                                                                                                                                                  applyWrapper aw_33 []
-                                                                                                                                        _ -> throwError "if: expected boolean")))
-                                            !appl_34 <- kl_V2430 `pseq` kl_shen_LBdatatype_ruleRB kl_V2430
-                                            !appl_35 <- appl_34 `pseq` applyWrapper appl_14 [appl_34]
-                                            appl_35 `pseq` applyWrapper appl_0 [appl_35]
-
-kl_shen_LBdatatype_ruleRB :: Types.KLValue ->
-                             Types.KLContext Types.Env Types.KLValue
-kl_shen_LBdatatype_ruleRB (!kl_V2432) = do let !appl_0 = ApplC (Func "lambda" (Context (\(!kl_YaccParse) -> do let !aw_1 = Types.Atom (Types.UnboundSym "fail")
-                                                                                                               !appl_2 <- applyWrapper aw_1 []
-                                                                                                               !kl_if_3 <- kl_YaccParse `pseq` (appl_2 `pseq` eq kl_YaccParse appl_2)
-                                                                                                               case kl_if_3 of
-                                                                                                                   Atom (B (True)) -> do let !appl_4 = ApplC (Func "lambda" (Context (\(!kl_Parse_shen_LBside_conditionsRB) -> do let !aw_5 = Types.Atom (Types.UnboundSym "fail")
-                                                                                                                                                                                                                                  !appl_6 <- applyWrapper aw_5 []
-                                                                                                                                                                                                                                  !appl_7 <- appl_6 `pseq` (kl_Parse_shen_LBside_conditionsRB `pseq` eq appl_6 kl_Parse_shen_LBside_conditionsRB)
-                                                                                                                                                                                                                                  !kl_if_8 <- appl_7 `pseq` kl_not appl_7
-                                                                                                                                                                                                                                  case kl_if_8 of
-                                                                                                                                                                                                                                      Atom (B (True)) -> do let !appl_9 = ApplC (Func "lambda" (Context (\(!kl_Parse_shen_LBpremisesRB) -> do let !aw_10 = Types.Atom (Types.UnboundSym "fail")
-                                                                                                                                                                                                                                                                                                                                              !appl_11 <- applyWrapper aw_10 []
-                                                                                                                                                                                                                                                                                                                                              !appl_12 <- appl_11 `pseq` (kl_Parse_shen_LBpremisesRB `pseq` eq appl_11 kl_Parse_shen_LBpremisesRB)
-                                                                                                                                                                                                                                                                                                                                              !kl_if_13 <- appl_12 `pseq` kl_not appl_12
-                                                                                                                                                                                                                                                                                                                                              case kl_if_13 of
-                                                                                                                                                                                                                                                                                                                                                  Atom (B (True)) -> do let !appl_14 = ApplC (Func "lambda" (Context (\(!kl_Parse_shen_LBdoubleunderlineRB) -> do let !aw_15 = Types.Atom (Types.UnboundSym "fail")
-                                                                                                                                                                                                                                                                                                                                                                                                                                                                  !appl_16 <- applyWrapper aw_15 []
-                                                                                                                                                                                                                                                                                                                                                                                                                                                                  !appl_17 <- appl_16 `pseq` (kl_Parse_shen_LBdoubleunderlineRB `pseq` eq appl_16 kl_Parse_shen_LBdoubleunderlineRB)
-                                                                                                                                                                                                                                                                                                                                                                                                                                                                  !kl_if_18 <- appl_17 `pseq` kl_not appl_17
-                                                                                                                                                                                                                                                                                                                                                                                                                                                                  case kl_if_18 of
-                                                                                                                                                                                                                                                                                                                                                                                                                                                                      Atom (B (True)) -> do let !appl_19 = ApplC (Func "lambda" (Context (\(!kl_Parse_shen_LBconclusionRB) -> do let !aw_20 = Types.Atom (Types.UnboundSym "fail")
-                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                 !appl_21 <- applyWrapper aw_20 []
-                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                 !appl_22 <- appl_21 `pseq` (kl_Parse_shen_LBconclusionRB `pseq` eq appl_21 kl_Parse_shen_LBconclusionRB)
-                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                 !kl_if_23 <- appl_22 `pseq` kl_not appl_22
-                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                 case kl_if_23 of
-                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                     Atom (B (True)) -> do !appl_24 <- kl_Parse_shen_LBconclusionRB `pseq` hd kl_Parse_shen_LBconclusionRB
-                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                           let !aw_25 = Types.Atom (Types.UnboundSym "shen.hdtl")
-                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                           !appl_26 <- kl_Parse_shen_LBside_conditionsRB `pseq` applyWrapper aw_25 [kl_Parse_shen_LBside_conditionsRB]
-                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                           let !aw_27 = Types.Atom (Types.UnboundSym "shen.hdtl")
-                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                           !appl_28 <- kl_Parse_shen_LBpremisesRB `pseq` applyWrapper aw_27 [kl_Parse_shen_LBpremisesRB]
-                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                           let !aw_29 = Types.Atom (Types.UnboundSym "shen.hdtl")
-                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                           !appl_30 <- kl_Parse_shen_LBconclusionRB `pseq` applyWrapper aw_29 [kl_Parse_shen_LBconclusionRB]
-                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                           !appl_31 <- appl_30 `pseq` klCons appl_30 (Types.Atom Types.Nil)
-                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                           !appl_32 <- appl_28 `pseq` (appl_31 `pseq` klCons appl_28 appl_31)
-                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                           !appl_33 <- appl_26 `pseq` (appl_32 `pseq` klCons appl_26 appl_32)
-                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                           !appl_34 <- appl_33 `pseq` kl_shen_sequent (Types.Atom (Types.UnboundSym "shen.double")) appl_33
-                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                           let !aw_35 = Types.Atom (Types.UnboundSym "shen.pair")
-                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                           appl_24 `pseq` (appl_34 `pseq` applyWrapper aw_35 [appl_24,
-                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                              appl_34])
-                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                     Atom (B (False)) -> do do let !aw_36 = Types.Atom (Types.UnboundSym "fail")
-                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                               applyWrapper aw_36 []
-                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                     _ -> throwError "if: expected boolean")))
-                                                                                                                                                                                                                                                                                                                                                                                                                                                                                            !appl_37 <- kl_Parse_shen_LBdoubleunderlineRB `pseq` kl_shen_LBconclusionRB kl_Parse_shen_LBdoubleunderlineRB
-                                                                                                                                                                                                                                                                                                                                                                                                                                                                                            appl_37 `pseq` applyWrapper appl_19 [appl_37]
-                                                                                                                                                                                                                                                                                                                                                                                                                                                                      Atom (B (False)) -> do do let !aw_38 = Types.Atom (Types.UnboundSym "fail")
-                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                applyWrapper aw_38 []
-                                                                                                                                                                                                                                                                                                                                                                                                                                                                      _ -> throwError "if: expected boolean")))
-                                                                                                                                                                                                                                                                                                                                                                        !appl_39 <- kl_Parse_shen_LBpremisesRB `pseq` kl_shen_LBdoubleunderlineRB kl_Parse_shen_LBpremisesRB
-                                                                                                                                                                                                                                                                                                                                                                        appl_39 `pseq` applyWrapper appl_14 [appl_39]
-                                                                                                                                                                                                                                                                                                                                                  Atom (B (False)) -> do do let !aw_40 = Types.Atom (Types.UnboundSym "fail")
-                                                                                                                                                                                                                                                                                                                                                                            applyWrapper aw_40 []
-                                                                                                                                                                                                                                                                                                                                                  _ -> throwError "if: expected boolean")))
-                                                                                                                                                                                                                                                            !appl_41 <- kl_Parse_shen_LBside_conditionsRB `pseq` kl_shen_LBpremisesRB kl_Parse_shen_LBside_conditionsRB
-                                                                                                                                                                                                                                                            appl_41 `pseq` applyWrapper appl_9 [appl_41]
-                                                                                                                                                                                                                                      Atom (B (False)) -> do do let !aw_42 = Types.Atom (Types.UnboundSym "fail")
-                                                                                                                                                                                                                                                                applyWrapper aw_42 []
-                                                                                                                                                                                                                                      _ -> throwError "if: expected boolean")))
-                                                                                                                                         !appl_43 <- kl_V2432 `pseq` kl_shen_LBside_conditionsRB kl_V2432
-                                                                                                                                         appl_43 `pseq` applyWrapper appl_4 [appl_43]
-                                                                                                                   Atom (B (False)) -> do do return kl_YaccParse
-                                                                                                                   _ -> throwError "if: expected boolean")))
-                                           let !appl_44 = ApplC (Func "lambda" (Context (\(!kl_Parse_shen_LBside_conditionsRB) -> do let !aw_45 = Types.Atom (Types.UnboundSym "fail")
-                                                                                                                                     !appl_46 <- applyWrapper aw_45 []
-                                                                                                                                     !appl_47 <- appl_46 `pseq` (kl_Parse_shen_LBside_conditionsRB `pseq` eq appl_46 kl_Parse_shen_LBside_conditionsRB)
-                                                                                                                                     !kl_if_48 <- appl_47 `pseq` kl_not appl_47
-                                                                                                                                     case kl_if_48 of
-                                                                                                                                         Atom (B (True)) -> do let !appl_49 = ApplC (Func "lambda" (Context (\(!kl_Parse_shen_LBpremisesRB) -> do let !aw_50 = Types.Atom (Types.UnboundSym "fail")
-                                                                                                                                                                                                                                                  !appl_51 <- applyWrapper aw_50 []
-                                                                                                                                                                                                                                                  !appl_52 <- appl_51 `pseq` (kl_Parse_shen_LBpremisesRB `pseq` eq appl_51 kl_Parse_shen_LBpremisesRB)
-                                                                                                                                                                                                                                                  !kl_if_53 <- appl_52 `pseq` kl_not appl_52
-                                                                                                                                                                                                                                                  case kl_if_53 of
-                                                                                                                                                                                                                                                      Atom (B (True)) -> do let !appl_54 = ApplC (Func "lambda" (Context (\(!kl_Parse_shen_LBsingleunderlineRB) -> do let !aw_55 = Types.Atom (Types.UnboundSym "fail")
-                                                                                                                                                                                                                                                                                                                                                                      !appl_56 <- applyWrapper aw_55 []
-                                                                                                                                                                                                                                                                                                                                                                      !appl_57 <- appl_56 `pseq` (kl_Parse_shen_LBsingleunderlineRB `pseq` eq appl_56 kl_Parse_shen_LBsingleunderlineRB)
-                                                                                                                                                                                                                                                                                                                                                                      !kl_if_58 <- appl_57 `pseq` kl_not appl_57
-                                                                                                                                                                                                                                                                                                                                                                      case kl_if_58 of
-                                                                                                                                                                                                                                                                                                                                                                          Atom (B (True)) -> do let !appl_59 = ApplC (Func "lambda" (Context (\(!kl_Parse_shen_LBconclusionRB) -> do let !aw_60 = Types.Atom (Types.UnboundSym "fail")
-                                                                                                                                                                                                                                                                                                                                                                                                                                                                                     !appl_61 <- applyWrapper aw_60 []
-                                                                                                                                                                                                                                                                                                                                                                                                                                                                                     !appl_62 <- appl_61 `pseq` (kl_Parse_shen_LBconclusionRB `pseq` eq appl_61 kl_Parse_shen_LBconclusionRB)
-                                                                                                                                                                                                                                                                                                                                                                                                                                                                                     !kl_if_63 <- appl_62 `pseq` kl_not appl_62
-                                                                                                                                                                                                                                                                                                                                                                                                                                                                                     case kl_if_63 of
-                                                                                                                                                                                                                                                                                                                                                                                                                                                                                         Atom (B (True)) -> do !appl_64 <- kl_Parse_shen_LBconclusionRB `pseq` hd kl_Parse_shen_LBconclusionRB
-                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                               let !aw_65 = Types.Atom (Types.UnboundSym "shen.hdtl")
-                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                               !appl_66 <- kl_Parse_shen_LBside_conditionsRB `pseq` applyWrapper aw_65 [kl_Parse_shen_LBside_conditionsRB]
-                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                               let !aw_67 = Types.Atom (Types.UnboundSym "shen.hdtl")
-                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                               !appl_68 <- kl_Parse_shen_LBpremisesRB `pseq` applyWrapper aw_67 [kl_Parse_shen_LBpremisesRB]
-                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                               let !aw_69 = Types.Atom (Types.UnboundSym "shen.hdtl")
-                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                               !appl_70 <- kl_Parse_shen_LBconclusionRB `pseq` applyWrapper aw_69 [kl_Parse_shen_LBconclusionRB]
-                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                               !appl_71 <- appl_70 `pseq` klCons appl_70 (Types.Atom Types.Nil)
-                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                               !appl_72 <- appl_68 `pseq` (appl_71 `pseq` klCons appl_68 appl_71)
-                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                               !appl_73 <- appl_66 `pseq` (appl_72 `pseq` klCons appl_66 appl_72)
-                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                               !appl_74 <- appl_73 `pseq` kl_shen_sequent (Types.Atom (Types.UnboundSym "shen.single")) appl_73
-                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                               let !aw_75 = Types.Atom (Types.UnboundSym "shen.pair")
-                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                               appl_64 `pseq` (appl_74 `pseq` applyWrapper aw_75 [appl_64,
-                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                  appl_74])
-                                                                                                                                                                                                                                                                                                                                                                                                                                                                                         Atom (B (False)) -> do do let !aw_76 = Types.Atom (Types.UnboundSym "fail")
-                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                   applyWrapper aw_76 []
-                                                                                                                                                                                                                                                                                                                                                                                                                                                                                         _ -> throwError "if: expected boolean")))
-                                                                                                                                                                                                                                                                                                                                                                                                !appl_77 <- kl_Parse_shen_LBsingleunderlineRB `pseq` kl_shen_LBconclusionRB kl_Parse_shen_LBsingleunderlineRB
-                                                                                                                                                                                                                                                                                                                                                                                                appl_77 `pseq` applyWrapper appl_59 [appl_77]
-                                                                                                                                                                                                                                                                                                                                                                          Atom (B (False)) -> do do let !aw_78 = Types.Atom (Types.UnboundSym "fail")
-                                                                                                                                                                                                                                                                                                                                                                                                    applyWrapper aw_78 []
-                                                                                                                                                                                                                                                                                                                                                                          _ -> throwError "if: expected boolean")))
-                                                                                                                                                                                                                                                                            !appl_79 <- kl_Parse_shen_LBpremisesRB `pseq` kl_shen_LBsingleunderlineRB kl_Parse_shen_LBpremisesRB
-                                                                                                                                                                                                                                                                            appl_79 `pseq` applyWrapper appl_54 [appl_79]
-                                                                                                                                                                                                                                                      Atom (B (False)) -> do do let !aw_80 = Types.Atom (Types.UnboundSym "fail")
-                                                                                                                                                                                                                                                                                applyWrapper aw_80 []
-                                                                                                                                                                                                                                                      _ -> throwError "if: expected boolean")))
-                                                                                                                                                               !appl_81 <- kl_Parse_shen_LBside_conditionsRB `pseq` kl_shen_LBpremisesRB kl_Parse_shen_LBside_conditionsRB
-                                                                                                                                                               appl_81 `pseq` applyWrapper appl_49 [appl_81]
-                                                                                                                                         Atom (B (False)) -> do do let !aw_82 = Types.Atom (Types.UnboundSym "fail")
-                                                                                                                                                                   applyWrapper aw_82 []
-                                                                                                                                         _ -> throwError "if: expected boolean")))
-                                           !appl_83 <- kl_V2432 `pseq` kl_shen_LBside_conditionsRB kl_V2432
-                                           !appl_84 <- appl_83 `pseq` applyWrapper appl_44 [appl_83]
-                                           appl_84 `pseq` applyWrapper appl_0 [appl_84]
-
-kl_shen_LBside_conditionsRB :: Types.KLValue ->
-                               Types.KLContext Types.Env Types.KLValue
-kl_shen_LBside_conditionsRB (!kl_V2434) = do let !appl_0 = ApplC (Func "lambda" (Context (\(!kl_YaccParse) -> do let !aw_1 = Types.Atom (Types.UnboundSym "fail")
-                                                                                                                 !appl_2 <- applyWrapper aw_1 []
-                                                                                                                 !kl_if_3 <- kl_YaccParse `pseq` (appl_2 `pseq` eq kl_YaccParse appl_2)
-                                                                                                                 case kl_if_3 of
-                                                                                                                     Atom (B (True)) -> do let !appl_4 = ApplC (Func "lambda" (Context (\(!kl_Parse_LBeRB) -> do let !aw_5 = Types.Atom (Types.UnboundSym "fail")
-                                                                                                                                                                                                                 !appl_6 <- applyWrapper aw_5 []
-                                                                                                                                                                                                                 !appl_7 <- appl_6 `pseq` (kl_Parse_LBeRB `pseq` eq appl_6 kl_Parse_LBeRB)
-                                                                                                                                                                                                                 !kl_if_8 <- appl_7 `pseq` kl_not appl_7
-                                                                                                                                                                                                                 case kl_if_8 of
-                                                                                                                                                                                                                     Atom (B (True)) -> do !appl_9 <- kl_Parse_LBeRB `pseq` hd kl_Parse_LBeRB
-                                                                                                                                                                                                                                           let !aw_10 = Types.Atom (Types.UnboundSym "shen.pair")
-                                                                                                                                                                                                                                           appl_9 `pseq` applyWrapper aw_10 [appl_9,
-                                                                                                                                                                                                                                                                             Types.Atom Types.Nil]
-                                                                                                                                                                                                                     Atom (B (False)) -> do do let !aw_11 = Types.Atom (Types.UnboundSym "fail")
-                                                                                                                                                                                                                                               applyWrapper aw_11 []
-                                                                                                                                                                                                                     _ -> throwError "if: expected boolean")))
-                                                                                                                                           let !aw_12 = Types.Atom (Types.UnboundSym "<e>")
-                                                                                                                                           !appl_13 <- kl_V2434 `pseq` applyWrapper aw_12 [kl_V2434]
-                                                                                                                                           appl_13 `pseq` applyWrapper appl_4 [appl_13]
-                                                                                                                     Atom (B (False)) -> do do return kl_YaccParse
-                                                                                                                     _ -> throwError "if: expected boolean")))
-                                             let !appl_14 = ApplC (Func "lambda" (Context (\(!kl_Parse_shen_LBside_conditionRB) -> do let !aw_15 = Types.Atom (Types.UnboundSym "fail")
-                                                                                                                                      !appl_16 <- applyWrapper aw_15 []
-                                                                                                                                      !appl_17 <- appl_16 `pseq` (kl_Parse_shen_LBside_conditionRB `pseq` eq appl_16 kl_Parse_shen_LBside_conditionRB)
-                                                                                                                                      !kl_if_18 <- appl_17 `pseq` kl_not appl_17
-                                                                                                                                      case kl_if_18 of
-                                                                                                                                          Atom (B (True)) -> do let !appl_19 = ApplC (Func "lambda" (Context (\(!kl_Parse_shen_LBside_conditionsRB) -> do let !aw_20 = Types.Atom (Types.UnboundSym "fail")
-                                                                                                                                                                                                                                                          !appl_21 <- applyWrapper aw_20 []
-                                                                                                                                                                                                                                                          !appl_22 <- appl_21 `pseq` (kl_Parse_shen_LBside_conditionsRB `pseq` eq appl_21 kl_Parse_shen_LBside_conditionsRB)
-                                                                                                                                                                                                                                                          !kl_if_23 <- appl_22 `pseq` kl_not appl_22
-                                                                                                                                                                                                                                                          case kl_if_23 of
-                                                                                                                                                                                                                                                              Atom (B (True)) -> do !appl_24 <- kl_Parse_shen_LBside_conditionsRB `pseq` hd kl_Parse_shen_LBside_conditionsRB
-                                                                                                                                                                                                                                                                                    let !aw_25 = Types.Atom (Types.UnboundSym "shen.hdtl")
-                                                                                                                                                                                                                                                                                    !appl_26 <- kl_Parse_shen_LBside_conditionRB `pseq` applyWrapper aw_25 [kl_Parse_shen_LBside_conditionRB]
-                                                                                                                                                                                                                                                                                    let !aw_27 = Types.Atom (Types.UnboundSym "shen.hdtl")
-                                                                                                                                                                                                                                                                                    !appl_28 <- kl_Parse_shen_LBside_conditionsRB `pseq` applyWrapper aw_27 [kl_Parse_shen_LBside_conditionsRB]
-                                                                                                                                                                                                                                                                                    !appl_29 <- appl_26 `pseq` (appl_28 `pseq` klCons appl_26 appl_28)
-                                                                                                                                                                                                                                                                                    let !aw_30 = Types.Atom (Types.UnboundSym "shen.pair")
-                                                                                                                                                                                                                                                                                    appl_24 `pseq` (appl_29 `pseq` applyWrapper aw_30 [appl_24,
-                                                                                                                                                                                                                                                                                                                                       appl_29])
-                                                                                                                                                                                                                                                              Atom (B (False)) -> do do let !aw_31 = Types.Atom (Types.UnboundSym "fail")
-                                                                                                                                                                                                                                                                                        applyWrapper aw_31 []
-                                                                                                                                                                                                                                                              _ -> throwError "if: expected boolean")))
-                                                                                                                                                                !appl_32 <- kl_Parse_shen_LBside_conditionRB `pseq` kl_shen_LBside_conditionsRB kl_Parse_shen_LBside_conditionRB
-                                                                                                                                                                appl_32 `pseq` applyWrapper appl_19 [appl_32]
-                                                                                                                                          Atom (B (False)) -> do do let !aw_33 = Types.Atom (Types.UnboundSym "fail")
-                                                                                                                                                                    applyWrapper aw_33 []
-                                                                                                                                          _ -> throwError "if: expected boolean")))
-                                             !appl_34 <- kl_V2434 `pseq` kl_shen_LBside_conditionRB kl_V2434
-                                             !appl_35 <- appl_34 `pseq` applyWrapper appl_14 [appl_34]
-                                             appl_35 `pseq` applyWrapper appl_0 [appl_35]
-
-kl_shen_LBside_conditionRB :: Types.KLValue ->
-                              Types.KLContext Types.Env Types.KLValue
-kl_shen_LBside_conditionRB (!kl_V2436) = do let !appl_0 = ApplC (Func "lambda" (Context (\(!kl_YaccParse) -> do let !aw_1 = Types.Atom (Types.UnboundSym "fail")
-                                                                                                                !appl_2 <- applyWrapper aw_1 []
-                                                                                                                !kl_if_3 <- kl_YaccParse `pseq` (appl_2 `pseq` eq kl_YaccParse appl_2)
-                                                                                                                case kl_if_3 of
-                                                                                                                    Atom (B (True)) -> do !appl_4 <- kl_V2436 `pseq` hd kl_V2436
-                                                                                                                                          !kl_if_5 <- appl_4 `pseq` consP appl_4
-                                                                                                                                          !kl_if_6 <- case kl_if_5 of
-                                                                                                                                                          Atom (B (True)) -> do !appl_7 <- kl_V2436 `pseq` hd kl_V2436
-                                                                                                                                                                                !appl_8 <- appl_7 `pseq` hd appl_7
-                                                                                                                                                                                !kl_if_9 <- appl_8 `pseq` eq (Types.Atom (Types.UnboundSym "let")) appl_8
-                                                                                                                                                                                case kl_if_9 of
-                                                                                                                                                                                    Atom (B (True)) -> do return (Atom (B True))
-                                                                                                                                                                                    Atom (B (False)) -> do do return (Atom (B False))
-                                                                                                                                                                                    _ -> throwError "if: expected boolean"
-                                                                                                                                                          Atom (B (False)) -> do do return (Atom (B False))
-                                                                                                                                                          _ -> throwError "if: expected boolean"
-                                                                                                                                          case kl_if_6 of
-                                                                                                                                              Atom (B (True)) -> do let !appl_10 = ApplC (Func "lambda" (Context (\(!kl_Parse_shen_LBvariablePRB) -> do let !aw_11 = Types.Atom (Types.UnboundSym "fail")
-                                                                                                                                                                                                                                                        !appl_12 <- applyWrapper aw_11 []
-                                                                                                                                                                                                                                                        !appl_13 <- appl_12 `pseq` (kl_Parse_shen_LBvariablePRB `pseq` eq appl_12 kl_Parse_shen_LBvariablePRB)
-                                                                                                                                                                                                                                                        !kl_if_14 <- appl_13 `pseq` kl_not appl_13
-                                                                                                                                                                                                                                                        case kl_if_14 of
-                                                                                                                                                                                                                                                            Atom (B (True)) -> do let !appl_15 = ApplC (Func "lambda" (Context (\(!kl_Parse_shen_LBexprRB) -> do let !aw_16 = Types.Atom (Types.UnboundSym "fail")
-                                                                                                                                                                                                                                                                                                                                                                 !appl_17 <- applyWrapper aw_16 []
-                                                                                                                                                                                                                                                                                                                                                                 !appl_18 <- appl_17 `pseq` (kl_Parse_shen_LBexprRB `pseq` eq appl_17 kl_Parse_shen_LBexprRB)
-                                                                                                                                                                                                                                                                                                                                                                 !kl_if_19 <- appl_18 `pseq` kl_not appl_18
-                                                                                                                                                                                                                                                                                                                                                                 case kl_if_19 of
-                                                                                                                                                                                                                                                                                                                                                                     Atom (B (True)) -> do !appl_20 <- kl_Parse_shen_LBexprRB `pseq` hd kl_Parse_shen_LBexprRB
-                                                                                                                                                                                                                                                                                                                                                                                           let !aw_21 = Types.Atom (Types.UnboundSym "shen.hdtl")
-                                                                                                                                                                                                                                                                                                                                                                                           !appl_22 <- kl_Parse_shen_LBvariablePRB `pseq` applyWrapper aw_21 [kl_Parse_shen_LBvariablePRB]
-                                                                                                                                                                                                                                                                                                                                                                                           let !aw_23 = Types.Atom (Types.UnboundSym "shen.hdtl")
-                                                                                                                                                                                                                                                                                                                                                                                           !appl_24 <- kl_Parse_shen_LBexprRB `pseq` applyWrapper aw_23 [kl_Parse_shen_LBexprRB]
-                                                                                                                                                                                                                                                                                                                                                                                           !appl_25 <- appl_24 `pseq` klCons appl_24 (Types.Atom Types.Nil)
-                                                                                                                                                                                                                                                                                                                                                                                           !appl_26 <- appl_22 `pseq` (appl_25 `pseq` klCons appl_22 appl_25)
-                                                                                                                                                                                                                                                                                                                                                                                           !appl_27 <- appl_26 `pseq` klCons (Types.Atom (Types.UnboundSym "let")) appl_26
-                                                                                                                                                                                                                                                                                                                                                                                           let !aw_28 = Types.Atom (Types.UnboundSym "shen.pair")
-                                                                                                                                                                                                                                                                                                                                                                                           appl_20 `pseq` (appl_27 `pseq` applyWrapper aw_28 [appl_20,
-                                                                                                                                                                                                                                                                                                                                                                                                                                              appl_27])
-                                                                                                                                                                                                                                                                                                                                                                     Atom (B (False)) -> do do let !aw_29 = Types.Atom (Types.UnboundSym "fail")
-                                                                                                                                                                                                                                                                                                                                                                                               applyWrapper aw_29 []
-                                                                                                                                                                                                                                                                                                                                                                     _ -> throwError "if: expected boolean")))
-                                                                                                                                                                                                                                                                                  !appl_30 <- kl_Parse_shen_LBvariablePRB `pseq` kl_shen_LBexprRB kl_Parse_shen_LBvariablePRB
-                                                                                                                                                                                                                                                                                  appl_30 `pseq` applyWrapper appl_15 [appl_30]
-                                                                                                                                                                                                                                                            Atom (B (False)) -> do do let !aw_31 = Types.Atom (Types.UnboundSym "fail")
-                                                                                                                                                                                                                                                                                      applyWrapper aw_31 []
-                                                                                                                                                                                                                                                            _ -> throwError "if: expected boolean")))
-                                                                                                                                                                    !appl_32 <- kl_V2436 `pseq` hd kl_V2436
-                                                                                                                                                                    !appl_33 <- appl_32 `pseq` tl appl_32
-                                                                                                                                                                    let !aw_34 = Types.Atom (Types.UnboundSym "shen.hdtl")
-                                                                                                                                                                    !appl_35 <- kl_V2436 `pseq` applyWrapper aw_34 [kl_V2436]
-                                                                                                                                                                    let !aw_36 = Types.Atom (Types.UnboundSym "shen.pair")
-                                                                                                                                                                    !appl_37 <- appl_33 `pseq` (appl_35 `pseq` applyWrapper aw_36 [appl_33,
-                                                                                                                                                                                                                                   appl_35])
-                                                                                                                                                                    !appl_38 <- appl_37 `pseq` kl_shen_LBvariablePRB appl_37
-                                                                                                                                                                    appl_38 `pseq` applyWrapper appl_10 [appl_38]
-                                                                                                                                              Atom (B (False)) -> do do let !aw_39 = Types.Atom (Types.UnboundSym "fail")
-                                                                                                                                                                        applyWrapper aw_39 []
-                                                                                                                                              _ -> throwError "if: expected boolean"
-                                                                                                                    Atom (B (False)) -> do do return kl_YaccParse
-                                                                                                                    _ -> throwError "if: expected boolean")))
-                                            !appl_40 <- kl_V2436 `pseq` hd kl_V2436
-                                            !kl_if_41 <- appl_40 `pseq` consP appl_40
-                                            !kl_if_42 <- case kl_if_41 of
-                                                             Atom (B (True)) -> do !appl_43 <- kl_V2436 `pseq` hd kl_V2436
-                                                                                   !appl_44 <- appl_43 `pseq` hd appl_43
-                                                                                   !kl_if_45 <- appl_44 `pseq` eq (Types.Atom (Types.UnboundSym "if")) appl_44
-                                                                                   case kl_if_45 of
-                                                                                       Atom (B (True)) -> do return (Atom (B True))
-                                                                                       Atom (B (False)) -> do do return (Atom (B False))
-                                                                                       _ -> throwError "if: expected boolean"
-                                                             Atom (B (False)) -> do do return (Atom (B False))
-                                                             _ -> throwError "if: expected boolean"
-                                            !appl_46 <- case kl_if_42 of
-                                                            Atom (B (True)) -> do let !appl_47 = ApplC (Func "lambda" (Context (\(!kl_Parse_shen_LBexprRB) -> do let !aw_48 = Types.Atom (Types.UnboundSym "fail")
-                                                                                                                                                                 !appl_49 <- applyWrapper aw_48 []
-                                                                                                                                                                 !appl_50 <- appl_49 `pseq` (kl_Parse_shen_LBexprRB `pseq` eq appl_49 kl_Parse_shen_LBexprRB)
-                                                                                                                                                                 !kl_if_51 <- appl_50 `pseq` kl_not appl_50
-                                                                                                                                                                 case kl_if_51 of
-                                                                                                                                                                     Atom (B (True)) -> do !appl_52 <- kl_Parse_shen_LBexprRB `pseq` hd kl_Parse_shen_LBexprRB
-                                                                                                                                                                                           let !aw_53 = Types.Atom (Types.UnboundSym "shen.hdtl")
-                                                                                                                                                                                           !appl_54 <- kl_Parse_shen_LBexprRB `pseq` applyWrapper aw_53 [kl_Parse_shen_LBexprRB]
-                                                                                                                                                                                           !appl_55 <- appl_54 `pseq` klCons appl_54 (Types.Atom Types.Nil)
-                                                                                                                                                                                           !appl_56 <- appl_55 `pseq` klCons (Types.Atom (Types.UnboundSym "if")) appl_55
-                                                                                                                                                                                           let !aw_57 = Types.Atom (Types.UnboundSym "shen.pair")
-                                                                                                                                                                                           appl_52 `pseq` (appl_56 `pseq` applyWrapper aw_57 [appl_52,
-                                                                                                                                                                                                                                              appl_56])
-                                                                                                                                                                     Atom (B (False)) -> do do let !aw_58 = Types.Atom (Types.UnboundSym "fail")
-                                                                                                                                                                                               applyWrapper aw_58 []
-                                                                                                                                                                     _ -> throwError "if: expected boolean")))
-                                                                                  !appl_59 <- kl_V2436 `pseq` hd kl_V2436
-                                                                                  !appl_60 <- appl_59 `pseq` tl appl_59
-                                                                                  let !aw_61 = Types.Atom (Types.UnboundSym "shen.hdtl")
-                                                                                  !appl_62 <- kl_V2436 `pseq` applyWrapper aw_61 [kl_V2436]
-                                                                                  let !aw_63 = Types.Atom (Types.UnboundSym "shen.pair")
-                                                                                  !appl_64 <- appl_60 `pseq` (appl_62 `pseq` applyWrapper aw_63 [appl_60,
-                                                                                                                                                 appl_62])
-                                                                                  !appl_65 <- appl_64 `pseq` kl_shen_LBexprRB appl_64
-                                                                                  appl_65 `pseq` applyWrapper appl_47 [appl_65]
-                                                            Atom (B (False)) -> do do let !aw_66 = Types.Atom (Types.UnboundSym "fail")
-                                                                                      applyWrapper aw_66 []
-                                                            _ -> throwError "if: expected boolean"
-                                            appl_46 `pseq` applyWrapper appl_0 [appl_46]
-
-kl_shen_LBvariablePRB :: Types.KLValue ->
-                         Types.KLContext Types.Env Types.KLValue
-kl_shen_LBvariablePRB (!kl_V2438) = do !appl_0 <- kl_V2438 `pseq` hd kl_V2438
-                                       !kl_if_1 <- appl_0 `pseq` consP appl_0
-                                       case kl_if_1 of
-                                           Atom (B (True)) -> do let !appl_2 = ApplC (Func "lambda" (Context (\(!kl_Parse_X) -> do !kl_if_3 <- kl_Parse_X `pseq` kl_variableP kl_Parse_X
-                                                                                                                                   case kl_if_3 of
-                                                                                                                                       Atom (B (True)) -> do !appl_4 <- kl_V2438 `pseq` hd kl_V2438
-                                                                                                                                                             !appl_5 <- appl_4 `pseq` tl appl_4
-                                                                                                                                                             let !aw_6 = Types.Atom (Types.UnboundSym "shen.hdtl")
-                                                                                                                                                             !appl_7 <- kl_V2438 `pseq` applyWrapper aw_6 [kl_V2438]
-                                                                                                                                                             let !aw_8 = Types.Atom (Types.UnboundSym "shen.pair")
-                                                                                                                                                             !appl_9 <- appl_5 `pseq` (appl_7 `pseq` applyWrapper aw_8 [appl_5,
-                                                                                                                                                                                                                        appl_7])
-                                                                                                                                                             !appl_10 <- appl_9 `pseq` hd appl_9
-                                                                                                                                                             let !aw_11 = Types.Atom (Types.UnboundSym "shen.pair")
-                                                                                                                                                             appl_10 `pseq` (kl_Parse_X `pseq` applyWrapper aw_11 [appl_10,
-                                                                                                                                                                                                                   kl_Parse_X])
-                                                                                                                                       Atom (B (False)) -> do do let !aw_12 = Types.Atom (Types.UnboundSym "fail")
-                                                                                                                                                                 applyWrapper aw_12 []
-                                                                                                                                       _ -> throwError "if: expected boolean")))
-                                                                 !appl_13 <- kl_V2438 `pseq` hd kl_V2438
-                                                                 !appl_14 <- appl_13 `pseq` hd appl_13
-                                                                 appl_14 `pseq` applyWrapper appl_2 [appl_14]
-                                           Atom (B (False)) -> do do let !aw_15 = Types.Atom (Types.UnboundSym "fail")
-                                                                     applyWrapper aw_15 []
-                                           _ -> throwError "if: expected boolean"
-
-kl_shen_LBexprRB :: Types.KLValue ->
-                    Types.KLContext Types.Env Types.KLValue
-kl_shen_LBexprRB (!kl_V2440) = do !appl_0 <- kl_V2440 `pseq` hd kl_V2440
-                                  !kl_if_1 <- appl_0 `pseq` consP appl_0
-                                  case kl_if_1 of
-                                      Atom (B (True)) -> do let !appl_2 = ApplC (Func "lambda" (Context (\(!kl_Parse_X) -> do !appl_3 <- klCons (Types.Atom (Types.UnboundSym ";")) (Types.Atom Types.Nil)
-                                                                                                                              !appl_4 <- appl_3 `pseq` klCons (Types.Atom (Types.UnboundSym ">>")) appl_3
-                                                                                                                              !kl_if_5 <- kl_Parse_X `pseq` (appl_4 `pseq` kl_elementP kl_Parse_X appl_4)
-                                                                                                                              !appl_6 <- case kl_if_5 of
-                                                                                                                                             Atom (B (True)) -> do return (Atom (B True))
-                                                                                                                                             Atom (B (False)) -> do do !kl_if_7 <- kl_Parse_X `pseq` kl_shen_singleunderlineP kl_Parse_X
-                                                                                                                                                                       !kl_if_8 <- case kl_if_7 of
-                                                                                                                                                                                       Atom (B (True)) -> do return (Atom (B True))
-                                                                                                                                                                                       Atom (B (False)) -> do do !kl_if_9 <- kl_Parse_X `pseq` kl_shen_doubleunderlineP kl_Parse_X
-                                                                                                                                                                                                                 case kl_if_9 of
-                                                                                                                                                                                                                     Atom (B (True)) -> do return (Atom (B True))
-                                                                                                                                                                                                                     Atom (B (False)) -> do do return (Atom (B False))
-                                                                                                                                                                                                                     _ -> throwError "if: expected boolean"
-                                                                                                                                                                                       _ -> throwError "if: expected boolean"
-                                                                                                                                                                       case kl_if_8 of
-                                                                                                                                                                           Atom (B (True)) -> do return (Atom (B True))
-                                                                                                                                                                           Atom (B (False)) -> do do return (Atom (B False))
-                                                                                                                                                                           _ -> throwError "if: expected boolean"
-                                                                                                                                             _ -> throwError "if: expected boolean"
-                                                                                                                              !kl_if_10 <- appl_6 `pseq` kl_not appl_6
-                                                                                                                              case kl_if_10 of
-                                                                                                                                  Atom (B (True)) -> do !appl_11 <- kl_V2440 `pseq` hd kl_V2440
-                                                                                                                                                        !appl_12 <- appl_11 `pseq` tl appl_11
-                                                                                                                                                        let !aw_13 = Types.Atom (Types.UnboundSym "shen.hdtl")
-                                                                                                                                                        !appl_14 <- kl_V2440 `pseq` applyWrapper aw_13 [kl_V2440]
-                                                                                                                                                        let !aw_15 = Types.Atom (Types.UnboundSym "shen.pair")
-                                                                                                                                                        !appl_16 <- appl_12 `pseq` (appl_14 `pseq` applyWrapper aw_15 [appl_12,
-                                                                                                                                                                                                                       appl_14])
-                                                                                                                                                        !appl_17 <- appl_16 `pseq` hd appl_16
-                                                                                                                                                        !appl_18 <- kl_Parse_X `pseq` kl_shen_remove_bar kl_Parse_X
-                                                                                                                                                        let !aw_19 = Types.Atom (Types.UnboundSym "shen.pair")
-                                                                                                                                                        appl_17 `pseq` (appl_18 `pseq` applyWrapper aw_19 [appl_17,
-                                                                                                                                                                                                           appl_18])
-                                                                                                                                  Atom (B (False)) -> do do let !aw_20 = Types.Atom (Types.UnboundSym "fail")
-                                                                                                                                                            applyWrapper aw_20 []
-                                                                                                                                  _ -> throwError "if: expected boolean")))
-                                                            !appl_21 <- kl_V2440 `pseq` hd kl_V2440
-                                                            !appl_22 <- appl_21 `pseq` hd appl_21
-                                                            appl_22 `pseq` applyWrapper appl_2 [appl_22]
-                                      Atom (B (False)) -> do do let !aw_23 = Types.Atom (Types.UnboundSym "fail")
-                                                                applyWrapper aw_23 []
-                                      _ -> throwError "if: expected boolean"
-
-kl_shen_remove_bar :: Types.KLValue ->
-                      Types.KLContext Types.Env Types.KLValue
-kl_shen_remove_bar (!kl_V2442) = do let pat_cond_0 kl_V2442 kl_V2442h kl_V2442t kl_V2442tt kl_V2442tth = do kl_V2442h `pseq` (kl_V2442tth `pseq` klCons kl_V2442h kl_V2442tth)
-                                        pat_cond_1 kl_V2442 kl_V2442h kl_V2442t = do !appl_2 <- kl_V2442h `pseq` kl_shen_remove_bar kl_V2442h
-                                                                                     !appl_3 <- kl_V2442t `pseq` kl_shen_remove_bar kl_V2442t
-                                                                                     appl_2 `pseq` (appl_3 `pseq` klCons appl_2 appl_3)
-                                        pat_cond_4 = do do return kl_V2442
-                                     in case kl_V2442 of
-                                            !(kl_V2442@(Cons (!kl_V2442h)
-                                                             (!(kl_V2442t@(Cons (Atom (UnboundSym "bar!"))
-                                                                                (!(kl_V2442tt@(Cons (!kl_V2442tth)
-                                                                                                    (Atom (Nil)))))))))) -> pat_cond_0 kl_V2442 kl_V2442h kl_V2442t kl_V2442tt kl_V2442tth
-                                            !(kl_V2442@(Cons (!kl_V2442h)
-                                                             (!(kl_V2442t@(Cons (ApplC (PL "bar!"
-                                                                                           _))
-                                                                                (!(kl_V2442tt@(Cons (!kl_V2442tth)
-                                                                                                    (Atom (Nil)))))))))) -> pat_cond_0 kl_V2442 kl_V2442h kl_V2442t kl_V2442tt kl_V2442tth
-                                            !(kl_V2442@(Cons (!kl_V2442h)
-                                                             (!(kl_V2442t@(Cons (ApplC (Func "bar!"
-                                                                                             _))
-                                                                                (!(kl_V2442tt@(Cons (!kl_V2442tth)
-                                                                                                    (Atom (Nil)))))))))) -> pat_cond_0 kl_V2442 kl_V2442h kl_V2442t kl_V2442tt kl_V2442tth
-                                            !(kl_V2442@(Cons (!kl_V2442h)
-                                                             (!kl_V2442t))) -> pat_cond_1 kl_V2442 kl_V2442h kl_V2442t
-                                            _ -> pat_cond_4
-
-kl_shen_LBpremisesRB :: Types.KLValue ->
-                        Types.KLContext Types.Env Types.KLValue
-kl_shen_LBpremisesRB (!kl_V2444) = do let !appl_0 = ApplC (Func "lambda" (Context (\(!kl_YaccParse) -> do let !aw_1 = Types.Atom (Types.UnboundSym "fail")
-                                                                                                          !appl_2 <- applyWrapper aw_1 []
-                                                                                                          !kl_if_3 <- kl_YaccParse `pseq` (appl_2 `pseq` eq kl_YaccParse appl_2)
-                                                                                                          case kl_if_3 of
-                                                                                                              Atom (B (True)) -> do let !appl_4 = ApplC (Func "lambda" (Context (\(!kl_Parse_LBeRB) -> do let !aw_5 = Types.Atom (Types.UnboundSym "fail")
-                                                                                                                                                                                                          !appl_6 <- applyWrapper aw_5 []
-                                                                                                                                                                                                          !appl_7 <- appl_6 `pseq` (kl_Parse_LBeRB `pseq` eq appl_6 kl_Parse_LBeRB)
-                                                                                                                                                                                                          !kl_if_8 <- appl_7 `pseq` kl_not appl_7
-                                                                                                                                                                                                          case kl_if_8 of
-                                                                                                                                                                                                              Atom (B (True)) -> do !appl_9 <- kl_Parse_LBeRB `pseq` hd kl_Parse_LBeRB
-                                                                                                                                                                                                                                    let !aw_10 = Types.Atom (Types.UnboundSym "shen.pair")
-                                                                                                                                                                                                                                    appl_9 `pseq` applyWrapper aw_10 [appl_9,
-                                                                                                                                                                                                                                                                      Types.Atom Types.Nil]
-                                                                                                                                                                                                              Atom (B (False)) -> do do let !aw_11 = Types.Atom (Types.UnboundSym "fail")
-                                                                                                                                                                                                                                        applyWrapper aw_11 []
-                                                                                                                                                                                                              _ -> throwError "if: expected boolean")))
-                                                                                                                                    let !aw_12 = Types.Atom (Types.UnboundSym "<e>")
-                                                                                                                                    !appl_13 <- kl_V2444 `pseq` applyWrapper aw_12 [kl_V2444]
-                                                                                                                                    appl_13 `pseq` applyWrapper appl_4 [appl_13]
-                                                                                                              Atom (B (False)) -> do do return kl_YaccParse
-                                                                                                              _ -> throwError "if: expected boolean")))
-                                      let !appl_14 = ApplC (Func "lambda" (Context (\(!kl_Parse_shen_LBpremiseRB) -> do let !aw_15 = Types.Atom (Types.UnboundSym "fail")
-                                                                                                                        !appl_16 <- applyWrapper aw_15 []
-                                                                                                                        !appl_17 <- appl_16 `pseq` (kl_Parse_shen_LBpremiseRB `pseq` eq appl_16 kl_Parse_shen_LBpremiseRB)
-                                                                                                                        !kl_if_18 <- appl_17 `pseq` kl_not appl_17
-                                                                                                                        case kl_if_18 of
-                                                                                                                            Atom (B (True)) -> do let !appl_19 = ApplC (Func "lambda" (Context (\(!kl_Parse_shen_LBsemicolon_symbolRB) -> do let !aw_20 = Types.Atom (Types.UnboundSym "fail")
-                                                                                                                                                                                                                                             !appl_21 <- applyWrapper aw_20 []
-                                                                                                                                                                                                                                             !appl_22 <- appl_21 `pseq` (kl_Parse_shen_LBsemicolon_symbolRB `pseq` eq appl_21 kl_Parse_shen_LBsemicolon_symbolRB)
-                                                                                                                                                                                                                                             !kl_if_23 <- appl_22 `pseq` kl_not appl_22
-                                                                                                                                                                                                                                             case kl_if_23 of
-                                                                                                                                                                                                                                                 Atom (B (True)) -> do let !appl_24 = ApplC (Func "lambda" (Context (\(!kl_Parse_shen_LBpremisesRB) -> do let !aw_25 = Types.Atom (Types.UnboundSym "fail")
-                                                                                                                                                                                                                                                                                                                                                          !appl_26 <- applyWrapper aw_25 []
-                                                                                                                                                                                                                                                                                                                                                          !appl_27 <- appl_26 `pseq` (kl_Parse_shen_LBpremisesRB `pseq` eq appl_26 kl_Parse_shen_LBpremisesRB)
-                                                                                                                                                                                                                                                                                                                                                          !kl_if_28 <- appl_27 `pseq` kl_not appl_27
-                                                                                                                                                                                                                                                                                                                                                          case kl_if_28 of
-                                                                                                                                                                                                                                                                                                                                                              Atom (B (True)) -> do !appl_29 <- kl_Parse_shen_LBpremisesRB `pseq` hd kl_Parse_shen_LBpremisesRB
-                                                                                                                                                                                                                                                                                                                                                                                    let !aw_30 = Types.Atom (Types.UnboundSym "shen.hdtl")
-                                                                                                                                                                                                                                                                                                                                                                                    !appl_31 <- kl_Parse_shen_LBpremiseRB `pseq` applyWrapper aw_30 [kl_Parse_shen_LBpremiseRB]
-                                                                                                                                                                                                                                                                                                                                                                                    let !aw_32 = Types.Atom (Types.UnboundSym "shen.hdtl")
-                                                                                                                                                                                                                                                                                                                                                                                    !appl_33 <- kl_Parse_shen_LBpremisesRB `pseq` applyWrapper aw_32 [kl_Parse_shen_LBpremisesRB]
-                                                                                                                                                                                                                                                                                                                                                                                    !appl_34 <- appl_31 `pseq` (appl_33 `pseq` klCons appl_31 appl_33)
-                                                                                                                                                                                                                                                                                                                                                                                    let !aw_35 = Types.Atom (Types.UnboundSym "shen.pair")
-                                                                                                                                                                                                                                                                                                                                                                                    appl_29 `pseq` (appl_34 `pseq` applyWrapper aw_35 [appl_29,
-                                                                                                                                                                                                                                                                                                                                                                                                                                       appl_34])
-                                                                                                                                                                                                                                                                                                                                                              Atom (B (False)) -> do do let !aw_36 = Types.Atom (Types.UnboundSym "fail")
-                                                                                                                                                                                                                                                                                                                                                                                        applyWrapper aw_36 []
-                                                                                                                                                                                                                                                                                                                                                              _ -> throwError "if: expected boolean")))
-                                                                                                                                                                                                                                                                       !appl_37 <- kl_Parse_shen_LBsemicolon_symbolRB `pseq` kl_shen_LBpremisesRB kl_Parse_shen_LBsemicolon_symbolRB
-                                                                                                                                                                                                                                                                       appl_37 `pseq` applyWrapper appl_24 [appl_37]
-                                                                                                                                                                                                                                                 Atom (B (False)) -> do do let !aw_38 = Types.Atom (Types.UnboundSym "fail")
-                                                                                                                                                                                                                                                                           applyWrapper aw_38 []
-                                                                                                                                                                                                                                                 _ -> throwError "if: expected boolean")))
-                                                                                                                                                  !appl_39 <- kl_Parse_shen_LBpremiseRB `pseq` kl_shen_LBsemicolon_symbolRB kl_Parse_shen_LBpremiseRB
-                                                                                                                                                  appl_39 `pseq` applyWrapper appl_19 [appl_39]
-                                                                                                                            Atom (B (False)) -> do do let !aw_40 = Types.Atom (Types.UnboundSym "fail")
-                                                                                                                                                      applyWrapper aw_40 []
-                                                                                                                            _ -> throwError "if: expected boolean")))
-                                      !appl_41 <- kl_V2444 `pseq` kl_shen_LBpremiseRB kl_V2444
-                                      !appl_42 <- appl_41 `pseq` applyWrapper appl_14 [appl_41]
-                                      appl_42 `pseq` applyWrapper appl_0 [appl_42]
-
-kl_shen_LBsemicolon_symbolRB :: Types.KLValue ->
-                                Types.KLContext Types.Env Types.KLValue
-kl_shen_LBsemicolon_symbolRB (!kl_V2446) = do !appl_0 <- kl_V2446 `pseq` hd kl_V2446
-                                              !kl_if_1 <- appl_0 `pseq` consP appl_0
-                                              case kl_if_1 of
-                                                  Atom (B (True)) -> do let !appl_2 = ApplC (Func "lambda" (Context (\(!kl_Parse_X) -> do let pat_cond_3 = do !appl_4 <- kl_V2446 `pseq` hd kl_V2446
-                                                                                                                                                              !appl_5 <- appl_4 `pseq` tl appl_4
-                                                                                                                                                              let !aw_6 = Types.Atom (Types.UnboundSym "shen.hdtl")
-                                                                                                                                                              !appl_7 <- kl_V2446 `pseq` applyWrapper aw_6 [kl_V2446]
-                                                                                                                                                              let !aw_8 = Types.Atom (Types.UnboundSym "shen.pair")
-                                                                                                                                                              !appl_9 <- appl_5 `pseq` (appl_7 `pseq` applyWrapper aw_8 [appl_5,
-                                                                                                                                                                                                                         appl_7])
-                                                                                                                                                              !appl_10 <- appl_9 `pseq` hd appl_9
-                                                                                                                                                              let !aw_11 = Types.Atom (Types.UnboundSym "shen.pair")
-                                                                                                                                                              appl_10 `pseq` applyWrapper aw_11 [appl_10,
-                                                                                                                                                                                                 Types.Atom (Types.UnboundSym "shen.skip")]
-                                                                                                                                              pat_cond_12 = do do let !aw_13 = Types.Atom (Types.UnboundSym "fail")
-                                                                                                                                                                  applyWrapper aw_13 []
-                                                                                                                                           in case kl_Parse_X of
-                                                                                                                                                  kl_Parse_X@(Atom (UnboundSym ";")) -> pat_cond_3
-                                                                                                                                                  kl_Parse_X@(ApplC (PL ";"
-                                                                                                                                                                        _)) -> pat_cond_3
-                                                                                                                                                  kl_Parse_X@(ApplC (Func ";"
-                                                                                                                                                                          _)) -> pat_cond_3
-                                                                                                                                                  _ -> pat_cond_12)))
-                                                                        !appl_14 <- kl_V2446 `pseq` hd kl_V2446
-                                                                        !appl_15 <- appl_14 `pseq` hd appl_14
-                                                                        appl_15 `pseq` applyWrapper appl_2 [appl_15]
-                                                  Atom (B (False)) -> do do let !aw_16 = Types.Atom (Types.UnboundSym "fail")
-                                                                            applyWrapper aw_16 []
-                                                  _ -> throwError "if: expected boolean"
-
-kl_shen_LBpremiseRB :: Types.KLValue ->
-                       Types.KLContext Types.Env Types.KLValue
-kl_shen_LBpremiseRB (!kl_V2448) = do let !appl_0 = ApplC (Func "lambda" (Context (\(!kl_YaccParse) -> do let !aw_1 = Types.Atom (Types.UnboundSym "fail")
-                                                                                                         !appl_2 <- applyWrapper aw_1 []
-                                                                                                         !kl_if_3 <- kl_YaccParse `pseq` (appl_2 `pseq` eq kl_YaccParse appl_2)
-                                                                                                         case kl_if_3 of
-                                                                                                             Atom (B (True)) -> do let !appl_4 = ApplC (Func "lambda" (Context (\(!kl_YaccParse) -> do let !aw_5 = Types.Atom (Types.UnboundSym "fail")
-                                                                                                                                                                                                       !appl_6 <- applyWrapper aw_5 []
-                                                                                                                                                                                                       !kl_if_7 <- kl_YaccParse `pseq` (appl_6 `pseq` eq kl_YaccParse appl_6)
-                                                                                                                                                                                                       case kl_if_7 of
-                                                                                                                                                                                                           Atom (B (True)) -> do let !appl_8 = ApplC (Func "lambda" (Context (\(!kl_Parse_shen_LBformulaRB) -> do let !aw_9 = Types.Atom (Types.UnboundSym "fail")
-                                                                                                                                                                                                                                                                                                                  !appl_10 <- applyWrapper aw_9 []
-                                                                                                                                                                                                                                                                                                                  !appl_11 <- appl_10 `pseq` (kl_Parse_shen_LBformulaRB `pseq` eq appl_10 kl_Parse_shen_LBformulaRB)
-                                                                                                                                                                                                                                                                                                                  !kl_if_12 <- appl_11 `pseq` kl_not appl_11
-                                                                                                                                                                                                                                                                                                                  case kl_if_12 of
-                                                                                                                                                                                                                                                                                                                      Atom (B (True)) -> do !appl_13 <- kl_Parse_shen_LBformulaRB `pseq` hd kl_Parse_shen_LBformulaRB
-                                                                                                                                                                                                                                                                                                                                            let !aw_14 = Types.Atom (Types.UnboundSym "shen.hdtl")
-                                                                                                                                                                                                                                                                                                                                            !appl_15 <- kl_Parse_shen_LBformulaRB `pseq` applyWrapper aw_14 [kl_Parse_shen_LBformulaRB]
-                                                                                                                                                                                                                                                                                                                                            !appl_16 <- appl_15 `pseq` kl_shen_sequent (Types.Atom Types.Nil) appl_15
-                                                                                                                                                                                                                                                                                                                                            let !aw_17 = Types.Atom (Types.UnboundSym "shen.pair")
-                                                                                                                                                                                                                                                                                                                                            appl_13 `pseq` (appl_16 `pseq` applyWrapper aw_17 [appl_13,
-                                                                                                                                                                                                                                                                                                                                                                                               appl_16])
-                                                                                                                                                                                                                                                                                                                      Atom (B (False)) -> do do let !aw_18 = Types.Atom (Types.UnboundSym "fail")
-                                                                                                                                                                                                                                                                                                                                                applyWrapper aw_18 []
-                                                                                                                                                                                                                                                                                                                      _ -> throwError "if: expected boolean")))
-                                                                                                                                                                                                                                 !appl_19 <- kl_V2448 `pseq` kl_shen_LBformulaRB kl_V2448
-                                                                                                                                                                                                                                 appl_19 `pseq` applyWrapper appl_8 [appl_19]
-                                                                                                                                                                                                           Atom (B (False)) -> do do return kl_YaccParse
-                                                                                                                                                                                                           _ -> throwError "if: expected boolean")))
-                                                                                                                                   let !appl_20 = ApplC (Func "lambda" (Context (\(!kl_Parse_shen_LBformulaeRB) -> do let !aw_21 = Types.Atom (Types.UnboundSym "fail")
-                                                                                                                                                                                                                      !appl_22 <- applyWrapper aw_21 []
-                                                                                                                                                                                                                      !appl_23 <- appl_22 `pseq` (kl_Parse_shen_LBformulaeRB `pseq` eq appl_22 kl_Parse_shen_LBformulaeRB)
-                                                                                                                                                                                                                      !kl_if_24 <- appl_23 `pseq` kl_not appl_23
-                                                                                                                                                                                                                      case kl_if_24 of
-                                                                                                                                                                                                                          Atom (B (True)) -> do !appl_25 <- kl_Parse_shen_LBformulaeRB `pseq` hd kl_Parse_shen_LBformulaeRB
-                                                                                                                                                                                                                                                !kl_if_26 <- appl_25 `pseq` consP appl_25
-                                                                                                                                                                                                                                                !kl_if_27 <- case kl_if_26 of
-                                                                                                                                                                                                                                                                 Atom (B (True)) -> do !appl_28 <- kl_Parse_shen_LBformulaeRB `pseq` hd kl_Parse_shen_LBformulaeRB
-                                                                                                                                                                                                                                                                                       !appl_29 <- appl_28 `pseq` hd appl_28
-                                                                                                                                                                                                                                                                                       !kl_if_30 <- appl_29 `pseq` eq (Types.Atom (Types.UnboundSym ">>")) appl_29
-                                                                                                                                                                                                                                                                                       case kl_if_30 of
-                                                                                                                                                                                                                                                                                           Atom (B (True)) -> do return (Atom (B True))
-                                                                                                                                                                                                                                                                                           Atom (B (False)) -> do do return (Atom (B False))
-                                                                                                                                                                                                                                                                                           _ -> throwError "if: expected boolean"
-                                                                                                                                                                                                                                                                 Atom (B (False)) -> do do return (Atom (B False))
-                                                                                                                                                                                                                                                                 _ -> throwError "if: expected boolean"
-                                                                                                                                                                                                                                                case kl_if_27 of
-                                                                                                                                                                                                                                                    Atom (B (True)) -> do let !appl_31 = ApplC (Func "lambda" (Context (\(!kl_Parse_shen_LBformulaRB) -> do let !aw_32 = Types.Atom (Types.UnboundSym "fail")
-                                                                                                                                                                                                                                                                                                                                                            !appl_33 <- applyWrapper aw_32 []
-                                                                                                                                                                                                                                                                                                                                                            !appl_34 <- appl_33 `pseq` (kl_Parse_shen_LBformulaRB `pseq` eq appl_33 kl_Parse_shen_LBformulaRB)
-                                                                                                                                                                                                                                                                                                                                                            !kl_if_35 <- appl_34 `pseq` kl_not appl_34
-                                                                                                                                                                                                                                                                                                                                                            case kl_if_35 of
-                                                                                                                                                                                                                                                                                                                                                                Atom (B (True)) -> do !appl_36 <- kl_Parse_shen_LBformulaRB `pseq` hd kl_Parse_shen_LBformulaRB
-                                                                                                                                                                                                                                                                                                                                                                                      let !aw_37 = Types.Atom (Types.UnboundSym "shen.hdtl")
-                                                                                                                                                                                                                                                                                                                                                                                      !appl_38 <- kl_Parse_shen_LBformulaeRB `pseq` applyWrapper aw_37 [kl_Parse_shen_LBformulaeRB]
-                                                                                                                                                                                                                                                                                                                                                                                      let !aw_39 = Types.Atom (Types.UnboundSym "shen.hdtl")
-                                                                                                                                                                                                                                                                                                                                                                                      !appl_40 <- kl_Parse_shen_LBformulaRB `pseq` applyWrapper aw_39 [kl_Parse_shen_LBformulaRB]
-                                                                                                                                                                                                                                                                                                                                                                                      !appl_41 <- appl_38 `pseq` (appl_40 `pseq` kl_shen_sequent appl_38 appl_40)
-                                                                                                                                                                                                                                                                                                                                                                                      let !aw_42 = Types.Atom (Types.UnboundSym "shen.pair")
-                                                                                                                                                                                                                                                                                                                                                                                      appl_36 `pseq` (appl_41 `pseq` applyWrapper aw_42 [appl_36,
-                                                                                                                                                                                                                                                                                                                                                                                                                                         appl_41])
-                                                                                                                                                                                                                                                                                                                                                                Atom (B (False)) -> do do let !aw_43 = Types.Atom (Types.UnboundSym "fail")
-                                                                                                                                                                                                                                                                                                                                                                                          applyWrapper aw_43 []
-                                                                                                                                                                                                                                                                                                                                                                _ -> throwError "if: expected boolean")))
-                                                                                                                                                                                                                                                                          !appl_44 <- kl_Parse_shen_LBformulaeRB `pseq` hd kl_Parse_shen_LBformulaeRB
-                                                                                                                                                                                                                                                                          !appl_45 <- appl_44 `pseq` tl appl_44
-                                                                                                                                                                                                                                                                          let !aw_46 = Types.Atom (Types.UnboundSym "shen.hdtl")
-                                                                                                                                                                                                                                                                          !appl_47 <- kl_Parse_shen_LBformulaeRB `pseq` applyWrapper aw_46 [kl_Parse_shen_LBformulaeRB]
-                                                                                                                                                                                                                                                                          let !aw_48 = Types.Atom (Types.UnboundSym "shen.pair")
-                                                                                                                                                                                                                                                                          !appl_49 <- appl_45 `pseq` (appl_47 `pseq` applyWrapper aw_48 [appl_45,
-                                                                                                                                                                                                                                                                                                                                         appl_47])
-                                                                                                                                                                                                                                                                          !appl_50 <- appl_49 `pseq` kl_shen_LBformulaRB appl_49
-                                                                                                                                                                                                                                                                          appl_50 `pseq` applyWrapper appl_31 [appl_50]
-                                                                                                                                                                                                                                                    Atom (B (False)) -> do do let !aw_51 = Types.Atom (Types.UnboundSym "fail")
-                                                                                                                                                                                                                                                                              applyWrapper aw_51 []
-                                                                                                                                                                                                                                                    _ -> throwError "if: expected boolean"
-                                                                                                                                                                                                                          Atom (B (False)) -> do do let !aw_52 = Types.Atom (Types.UnboundSym "fail")
-                                                                                                                                                                                                                                                    applyWrapper aw_52 []
-                                                                                                                                                                                                                          _ -> throwError "if: expected boolean")))
-                                                                                                                                   !appl_53 <- kl_V2448 `pseq` kl_shen_LBformulaeRB kl_V2448
-                                                                                                                                   !appl_54 <- appl_53 `pseq` applyWrapper appl_20 [appl_53]
-                                                                                                                                   appl_54 `pseq` applyWrapper appl_4 [appl_54]
-                                                                                                             Atom (B (False)) -> do do return kl_YaccParse
-                                                                                                             _ -> throwError "if: expected boolean")))
-                                     !appl_55 <- kl_V2448 `pseq` hd kl_V2448
-                                     !kl_if_56 <- appl_55 `pseq` consP appl_55
-                                     !kl_if_57 <- case kl_if_56 of
-                                                      Atom (B (True)) -> do !appl_58 <- kl_V2448 `pseq` hd kl_V2448
-                                                                            !appl_59 <- appl_58 `pseq` hd appl_58
-                                                                            !kl_if_60 <- appl_59 `pseq` eq (Types.Atom (Types.UnboundSym "!")) appl_59
-                                                                            case kl_if_60 of
-                                                                                Atom (B (True)) -> do return (Atom (B True))
-                                                                                Atom (B (False)) -> do do return (Atom (B False))
-                                                                                _ -> throwError "if: expected boolean"
-                                                      Atom (B (False)) -> do do return (Atom (B False))
-                                                      _ -> throwError "if: expected boolean"
-                                     !appl_61 <- case kl_if_57 of
-                                                     Atom (B (True)) -> do !appl_62 <- kl_V2448 `pseq` hd kl_V2448
-                                                                           !appl_63 <- appl_62 `pseq` tl appl_62
-                                                                           let !aw_64 = Types.Atom (Types.UnboundSym "shen.hdtl")
-                                                                           !appl_65 <- kl_V2448 `pseq` applyWrapper aw_64 [kl_V2448]
-                                                                           let !aw_66 = Types.Atom (Types.UnboundSym "shen.pair")
-                                                                           !appl_67 <- appl_63 `pseq` (appl_65 `pseq` applyWrapper aw_66 [appl_63,
-                                                                                                                                          appl_65])
-                                                                           !appl_68 <- appl_67 `pseq` hd appl_67
-                                                                           let !aw_69 = Types.Atom (Types.UnboundSym "shen.pair")
-                                                                           appl_68 `pseq` applyWrapper aw_69 [appl_68,
-                                                                                                              Types.Atom (Types.UnboundSym "!")]
-                                                     Atom (B (False)) -> do do let !aw_70 = Types.Atom (Types.UnboundSym "fail")
-                                                                               applyWrapper aw_70 []
-                                                     _ -> throwError "if: expected boolean"
-                                     appl_61 `pseq` applyWrapper appl_0 [appl_61]
-
-kl_shen_LBconclusionRB :: Types.KLValue ->
-                          Types.KLContext Types.Env Types.KLValue
-kl_shen_LBconclusionRB (!kl_V2450) = do let !appl_0 = ApplC (Func "lambda" (Context (\(!kl_YaccParse) -> do let !aw_1 = Types.Atom (Types.UnboundSym "fail")
-                                                                                                            !appl_2 <- applyWrapper aw_1 []
-                                                                                                            !kl_if_3 <- kl_YaccParse `pseq` (appl_2 `pseq` eq kl_YaccParse appl_2)
-                                                                                                            case kl_if_3 of
-                                                                                                                Atom (B (True)) -> do let !appl_4 = ApplC (Func "lambda" (Context (\(!kl_Parse_shen_LBformulaRB) -> do let !aw_5 = Types.Atom (Types.UnboundSym "fail")
-                                                                                                                                                                                                                       !appl_6 <- applyWrapper aw_5 []
-                                                                                                                                                                                                                       !appl_7 <- appl_6 `pseq` (kl_Parse_shen_LBformulaRB `pseq` eq appl_6 kl_Parse_shen_LBformulaRB)
-                                                                                                                                                                                                                       !kl_if_8 <- appl_7 `pseq` kl_not appl_7
-                                                                                                                                                                                                                       case kl_if_8 of
-                                                                                                                                                                                                                           Atom (B (True)) -> do let !appl_9 = ApplC (Func "lambda" (Context (\(!kl_Parse_shen_LBsemicolon_symbolRB) -> do let !aw_10 = Types.Atom (Types.UnboundSym "fail")
-                                                                                                                                                                                                                                                                                                                                           !appl_11 <- applyWrapper aw_10 []
-                                                                                                                                                                                                                                                                                                                                           !appl_12 <- appl_11 `pseq` (kl_Parse_shen_LBsemicolon_symbolRB `pseq` eq appl_11 kl_Parse_shen_LBsemicolon_symbolRB)
-                                                                                                                                                                                                                                                                                                                                           !kl_if_13 <- appl_12 `pseq` kl_not appl_12
-                                                                                                                                                                                                                                                                                                                                           case kl_if_13 of
-                                                                                                                                                                                                                                                                                                                                               Atom (B (True)) -> do !appl_14 <- kl_Parse_shen_LBsemicolon_symbolRB `pseq` hd kl_Parse_shen_LBsemicolon_symbolRB
-                                                                                                                                                                                                                                                                                                                                                                     let !aw_15 = Types.Atom (Types.UnboundSym "shen.hdtl")
-                                                                                                                                                                                                                                                                                                                                                                     !appl_16 <- kl_Parse_shen_LBformulaRB `pseq` applyWrapper aw_15 [kl_Parse_shen_LBformulaRB]
-                                                                                                                                                                                                                                                                                                                                                                     !appl_17 <- appl_16 `pseq` kl_shen_sequent (Types.Atom Types.Nil) appl_16
-                                                                                                                                                                                                                                                                                                                                                                     let !aw_18 = Types.Atom (Types.UnboundSym "shen.pair")
-                                                                                                                                                                                                                                                                                                                                                                     appl_14 `pseq` (appl_17 `pseq` applyWrapper aw_18 [appl_14,
-                                                                                                                                                                                                                                                                                                                                                                                                                        appl_17])
-                                                                                                                                                                                                                                                                                                                                               Atom (B (False)) -> do do let !aw_19 = Types.Atom (Types.UnboundSym "fail")
-                                                                                                                                                                                                                                                                                                                                                                         applyWrapper aw_19 []
-                                                                                                                                                                                                                                                                                                                                               _ -> throwError "if: expected boolean")))
-                                                                                                                                                                                                                                                 !appl_20 <- kl_Parse_shen_LBformulaRB `pseq` kl_shen_LBsemicolon_symbolRB kl_Parse_shen_LBformulaRB
-                                                                                                                                                                                                                                                 appl_20 `pseq` applyWrapper appl_9 [appl_20]
-                                                                                                                                                                                                                           Atom (B (False)) -> do do let !aw_21 = Types.Atom (Types.UnboundSym "fail")
-                                                                                                                                                                                                                                                     applyWrapper aw_21 []
-                                                                                                                                                                                                                           _ -> throwError "if: expected boolean")))
-                                                                                                                                      !appl_22 <- kl_V2450 `pseq` kl_shen_LBformulaRB kl_V2450
-                                                                                                                                      appl_22 `pseq` applyWrapper appl_4 [appl_22]
-                                                                                                                Atom (B (False)) -> do do return kl_YaccParse
-                                                                                                                _ -> throwError "if: expected boolean")))
-                                        let !appl_23 = ApplC (Func "lambda" (Context (\(!kl_Parse_shen_LBformulaeRB) -> do let !aw_24 = Types.Atom (Types.UnboundSym "fail")
-                                                                                                                           !appl_25 <- applyWrapper aw_24 []
-                                                                                                                           !appl_26 <- appl_25 `pseq` (kl_Parse_shen_LBformulaeRB `pseq` eq appl_25 kl_Parse_shen_LBformulaeRB)
-                                                                                                                           !kl_if_27 <- appl_26 `pseq` kl_not appl_26
-                                                                                                                           case kl_if_27 of
-                                                                                                                               Atom (B (True)) -> do !appl_28 <- kl_Parse_shen_LBformulaeRB `pseq` hd kl_Parse_shen_LBformulaeRB
-                                                                                                                                                     !kl_if_29 <- appl_28 `pseq` consP appl_28
-                                                                                                                                                     !kl_if_30 <- case kl_if_29 of
-                                                                                                                                                                      Atom (B (True)) -> do !appl_31 <- kl_Parse_shen_LBformulaeRB `pseq` hd kl_Parse_shen_LBformulaeRB
-                                                                                                                                                                                            !appl_32 <- appl_31 `pseq` hd appl_31
-                                                                                                                                                                                            !kl_if_33 <- appl_32 `pseq` eq (Types.Atom (Types.UnboundSym ">>")) appl_32
-                                                                                                                                                                                            case kl_if_33 of
-                                                                                                                                                                                                Atom (B (True)) -> do return (Atom (B True))
-                                                                                                                                                                                                Atom (B (False)) -> do do return (Atom (B False))
-                                                                                                                                                                                                _ -> throwError "if: expected boolean"
-                                                                                                                                                                      Atom (B (False)) -> do do return (Atom (B False))
-                                                                                                                                                                      _ -> throwError "if: expected boolean"
-                                                                                                                                                     case kl_if_30 of
-                                                                                                                                                         Atom (B (True)) -> do let !appl_34 = ApplC (Func "lambda" (Context (\(!kl_Parse_shen_LBformulaRB) -> do let !aw_35 = Types.Atom (Types.UnboundSym "fail")
-                                                                                                                                                                                                                                                                 !appl_36 <- applyWrapper aw_35 []
-                                                                                                                                                                                                                                                                 !appl_37 <- appl_36 `pseq` (kl_Parse_shen_LBformulaRB `pseq` eq appl_36 kl_Parse_shen_LBformulaRB)
-                                                                                                                                                                                                                                                                 !kl_if_38 <- appl_37 `pseq` kl_not appl_37
-                                                                                                                                                                                                                                                                 case kl_if_38 of
-                                                                                                                                                                                                                                                                     Atom (B (True)) -> do let !appl_39 = ApplC (Func "lambda" (Context (\(!kl_Parse_shen_LBsemicolon_symbolRB) -> do let !aw_40 = Types.Atom (Types.UnboundSym "fail")
-                                                                                                                                                                                                                                                                                                                                                                                      !appl_41 <- applyWrapper aw_40 []
-                                                                                                                                                                                                                                                                                                                                                                                      !appl_42 <- appl_41 `pseq` (kl_Parse_shen_LBsemicolon_symbolRB `pseq` eq appl_41 kl_Parse_shen_LBsemicolon_symbolRB)
-                                                                                                                                                                                                                                                                                                                                                                                      !kl_if_43 <- appl_42 `pseq` kl_not appl_42
-                                                                                                                                                                                                                                                                                                                                                                                      case kl_if_43 of
-                                                                                                                                                                                                                                                                                                                                                                                          Atom (B (True)) -> do !appl_44 <- kl_Parse_shen_LBsemicolon_symbolRB `pseq` hd kl_Parse_shen_LBsemicolon_symbolRB
-                                                                                                                                                                                                                                                                                                                                                                                                                let !aw_45 = Types.Atom (Types.UnboundSym "shen.hdtl")
-                                                                                                                                                                                                                                                                                                                                                                                                                !appl_46 <- kl_Parse_shen_LBformulaeRB `pseq` applyWrapper aw_45 [kl_Parse_shen_LBformulaeRB]
-                                                                                                                                                                                                                                                                                                                                                                                                                let !aw_47 = Types.Atom (Types.UnboundSym "shen.hdtl")
-                                                                                                                                                                                                                                                                                                                                                                                                                !appl_48 <- kl_Parse_shen_LBformulaRB `pseq` applyWrapper aw_47 [kl_Parse_shen_LBformulaRB]
-                                                                                                                                                                                                                                                                                                                                                                                                                !appl_49 <- appl_46 `pseq` (appl_48 `pseq` kl_shen_sequent appl_46 appl_48)
-                                                                                                                                                                                                                                                                                                                                                                                                                let !aw_50 = Types.Atom (Types.UnboundSym "shen.pair")
-                                                                                                                                                                                                                                                                                                                                                                                                                appl_44 `pseq` (appl_49 `pseq` applyWrapper aw_50 [appl_44,
-                                                                                                                                                                                                                                                                                                                                                                                                                                                                   appl_49])
-                                                                                                                                                                                                                                                                                                                                                                                          Atom (B (False)) -> do do let !aw_51 = Types.Atom (Types.UnboundSym "fail")
-                                                                                                                                                                                                                                                                                                                                                                                                                    applyWrapper aw_51 []
-                                                                                                                                                                                                                                                                                                                                                                                          _ -> throwError "if: expected boolean")))
-                                                                                                                                                                                                                                                                                           !appl_52 <- kl_Parse_shen_LBformulaRB `pseq` kl_shen_LBsemicolon_symbolRB kl_Parse_shen_LBformulaRB
-                                                                                                                                                                                                                                                                                           appl_52 `pseq` applyWrapper appl_39 [appl_52]
-                                                                                                                                                                                                                                                                     Atom (B (False)) -> do do let !aw_53 = Types.Atom (Types.UnboundSym "fail")
-                                                                                                                                                                                                                                                                                               applyWrapper aw_53 []
-                                                                                                                                                                                                                                                                     _ -> throwError "if: expected boolean")))
-                                                                                                                                                                               !appl_54 <- kl_Parse_shen_LBformulaeRB `pseq` hd kl_Parse_shen_LBformulaeRB
-                                                                                                                                                                               !appl_55 <- appl_54 `pseq` tl appl_54
-                                                                                                                                                                               let !aw_56 = Types.Atom (Types.UnboundSym "shen.hdtl")
-                                                                                                                                                                               !appl_57 <- kl_Parse_shen_LBformulaeRB `pseq` applyWrapper aw_56 [kl_Parse_shen_LBformulaeRB]
-                                                                                                                                                                               let !aw_58 = Types.Atom (Types.UnboundSym "shen.pair")
-                                                                                                                                                                               !appl_59 <- appl_55 `pseq` (appl_57 `pseq` applyWrapper aw_58 [appl_55,
-                                                                                                                                                                                                                                              appl_57])
-                                                                                                                                                                               !appl_60 <- appl_59 `pseq` kl_shen_LBformulaRB appl_59
-                                                                                                                                                                               appl_60 `pseq` applyWrapper appl_34 [appl_60]
-                                                                                                                                                         Atom (B (False)) -> do do let !aw_61 = Types.Atom (Types.UnboundSym "fail")
-                                                                                                                                                                                   applyWrapper aw_61 []
-                                                                                                                                                         _ -> throwError "if: expected boolean"
-                                                                                                                               Atom (B (False)) -> do do let !aw_62 = Types.Atom (Types.UnboundSym "fail")
-                                                                                                                                                         applyWrapper aw_62 []
-                                                                                                                               _ -> throwError "if: expected boolean")))
-                                        !appl_63 <- kl_V2450 `pseq` kl_shen_LBformulaeRB kl_V2450
-                                        !appl_64 <- appl_63 `pseq` applyWrapper appl_23 [appl_63]
-                                        appl_64 `pseq` applyWrapper appl_0 [appl_64]
-
-kl_shen_sequent :: Types.KLValue ->
-                   Types.KLValue -> Types.KLContext Types.Env Types.KLValue
-kl_shen_sequent (!kl_V2453) (!kl_V2454) = do kl_V2453 `pseq` (kl_V2454 `pseq` kl_Atp kl_V2453 kl_V2454)
-
-kl_shen_LBformulaeRB :: Types.KLValue ->
-                        Types.KLContext Types.Env Types.KLValue
-kl_shen_LBformulaeRB (!kl_V2456) = do let !appl_0 = ApplC (Func "lambda" (Context (\(!kl_YaccParse) -> do let !aw_1 = Types.Atom (Types.UnboundSym "fail")
-                                                                                                          !appl_2 <- applyWrapper aw_1 []
-                                                                                                          !kl_if_3 <- kl_YaccParse `pseq` (appl_2 `pseq` eq kl_YaccParse appl_2)
-                                                                                                          case kl_if_3 of
-                                                                                                              Atom (B (True)) -> do let !appl_4 = ApplC (Func "lambda" (Context (\(!kl_YaccParse) -> do let !aw_5 = Types.Atom (Types.UnboundSym "fail")
-                                                                                                                                                                                                        !appl_6 <- applyWrapper aw_5 []
-                                                                                                                                                                                                        !kl_if_7 <- kl_YaccParse `pseq` (appl_6 `pseq` eq kl_YaccParse appl_6)
-                                                                                                                                                                                                        case kl_if_7 of
-                                                                                                                                                                                                            Atom (B (True)) -> do let !appl_8 = ApplC (Func "lambda" (Context (\(!kl_Parse_LBeRB) -> do let !aw_9 = Types.Atom (Types.UnboundSym "fail")
-                                                                                                                                                                                                                                                                                                        !appl_10 <- applyWrapper aw_9 []
-                                                                                                                                                                                                                                                                                                        !appl_11 <- appl_10 `pseq` (kl_Parse_LBeRB `pseq` eq appl_10 kl_Parse_LBeRB)
-                                                                                                                                                                                                                                                                                                        !kl_if_12 <- appl_11 `pseq` kl_not appl_11
-                                                                                                                                                                                                                                                                                                        case kl_if_12 of
-                                                                                                                                                                                                                                                                                                            Atom (B (True)) -> do !appl_13 <- kl_Parse_LBeRB `pseq` hd kl_Parse_LBeRB
-                                                                                                                                                                                                                                                                                                                                  let !aw_14 = Types.Atom (Types.UnboundSym "shen.pair")
-                                                                                                                                                                                                                                                                                                                                  appl_13 `pseq` applyWrapper aw_14 [appl_13,
-                                                                                                                                                                                                                                                                                                                                                                     Types.Atom Types.Nil]
-                                                                                                                                                                                                                                                                                                            Atom (B (False)) -> do do let !aw_15 = Types.Atom (Types.UnboundSym "fail")
-                                                                                                                                                                                                                                                                                                                                      applyWrapper aw_15 []
-                                                                                                                                                                                                                                                                                                            _ -> throwError "if: expected boolean")))
-                                                                                                                                                                                                                                  let !aw_16 = Types.Atom (Types.UnboundSym "<e>")
-                                                                                                                                                                                                                                  !appl_17 <- kl_V2456 `pseq` applyWrapper aw_16 [kl_V2456]
-                                                                                                                                                                                                                                  appl_17 `pseq` applyWrapper appl_8 [appl_17]
-                                                                                                                                                                                                            Atom (B (False)) -> do do return kl_YaccParse
-                                                                                                                                                                                                            _ -> throwError "if: expected boolean")))
-                                                                                                                                    let !appl_18 = ApplC (Func "lambda" (Context (\(!kl_Parse_shen_LBformulaRB) -> do let !aw_19 = Types.Atom (Types.UnboundSym "fail")
-                                                                                                                                                                                                                      !appl_20 <- applyWrapper aw_19 []
-                                                                                                                                                                                                                      !appl_21 <- appl_20 `pseq` (kl_Parse_shen_LBformulaRB `pseq` eq appl_20 kl_Parse_shen_LBformulaRB)
-                                                                                                                                                                                                                      !kl_if_22 <- appl_21 `pseq` kl_not appl_21
-                                                                                                                                                                                                                      case kl_if_22 of
-                                                                                                                                                                                                                          Atom (B (True)) -> do !appl_23 <- kl_Parse_shen_LBformulaRB `pseq` hd kl_Parse_shen_LBformulaRB
-                                                                                                                                                                                                                                                let !aw_24 = Types.Atom (Types.UnboundSym "shen.hdtl")
-                                                                                                                                                                                                                                                !appl_25 <- kl_Parse_shen_LBformulaRB `pseq` applyWrapper aw_24 [kl_Parse_shen_LBformulaRB]
-                                                                                                                                                                                                                                                !appl_26 <- appl_25 `pseq` klCons appl_25 (Types.Atom Types.Nil)
-                                                                                                                                                                                                                                                let !aw_27 = Types.Atom (Types.UnboundSym "shen.pair")
-                                                                                                                                                                                                                                                appl_23 `pseq` (appl_26 `pseq` applyWrapper aw_27 [appl_23,
-                                                                                                                                                                                                                                                                                                   appl_26])
-                                                                                                                                                                                                                          Atom (B (False)) -> do do let !aw_28 = Types.Atom (Types.UnboundSym "fail")
-                                                                                                                                                                                                                                                    applyWrapper aw_28 []
-                                                                                                                                                                                                                          _ -> throwError "if: expected boolean")))
-                                                                                                                                    !appl_29 <- kl_V2456 `pseq` kl_shen_LBformulaRB kl_V2456
-                                                                                                                                    !appl_30 <- appl_29 `pseq` applyWrapper appl_18 [appl_29]
-                                                                                                                                    appl_30 `pseq` applyWrapper appl_4 [appl_30]
-                                                                                                              Atom (B (False)) -> do do return kl_YaccParse
-                                                                                                              _ -> throwError "if: expected boolean")))
-                                      let !appl_31 = ApplC (Func "lambda" (Context (\(!kl_Parse_shen_LBformulaRB) -> do let !aw_32 = Types.Atom (Types.UnboundSym "fail")
-                                                                                                                        !appl_33 <- applyWrapper aw_32 []
-                                                                                                                        !appl_34 <- appl_33 `pseq` (kl_Parse_shen_LBformulaRB `pseq` eq appl_33 kl_Parse_shen_LBformulaRB)
-                                                                                                                        !kl_if_35 <- appl_34 `pseq` kl_not appl_34
-                                                                                                                        case kl_if_35 of
-                                                                                                                            Atom (B (True)) -> do let !appl_36 = ApplC (Func "lambda" (Context (\(!kl_Parse_shen_LBcomma_symbolRB) -> do let !aw_37 = Types.Atom (Types.UnboundSym "fail")
-                                                                                                                                                                                                                                         !appl_38 <- applyWrapper aw_37 []
-                                                                                                                                                                                                                                         !appl_39 <- appl_38 `pseq` (kl_Parse_shen_LBcomma_symbolRB `pseq` eq appl_38 kl_Parse_shen_LBcomma_symbolRB)
-                                                                                                                                                                                                                                         !kl_if_40 <- appl_39 `pseq` kl_not appl_39
-                                                                                                                                                                                                                                         case kl_if_40 of
-                                                                                                                                                                                                                                             Atom (B (True)) -> do let !appl_41 = ApplC (Func "lambda" (Context (\(!kl_Parse_shen_LBformulaeRB) -> do let !aw_42 = Types.Atom (Types.UnboundSym "fail")
-                                                                                                                                                                                                                                                                                                                                                      !appl_43 <- applyWrapper aw_42 []
-                                                                                                                                                                                                                                                                                                                                                      !appl_44 <- appl_43 `pseq` (kl_Parse_shen_LBformulaeRB `pseq` eq appl_43 kl_Parse_shen_LBformulaeRB)
-                                                                                                                                                                                                                                                                                                                                                      !kl_if_45 <- appl_44 `pseq` kl_not appl_44
-                                                                                                                                                                                                                                                                                                                                                      case kl_if_45 of
-                                                                                                                                                                                                                                                                                                                                                          Atom (B (True)) -> do !appl_46 <- kl_Parse_shen_LBformulaeRB `pseq` hd kl_Parse_shen_LBformulaeRB
-                                                                                                                                                                                                                                                                                                                                                                                let !aw_47 = Types.Atom (Types.UnboundSym "shen.hdtl")
-                                                                                                                                                                                                                                                                                                                                                                                !appl_48 <- kl_Parse_shen_LBformulaRB `pseq` applyWrapper aw_47 [kl_Parse_shen_LBformulaRB]
-                                                                                                                                                                                                                                                                                                                                                                                let !aw_49 = Types.Atom (Types.UnboundSym "shen.hdtl")
-                                                                                                                                                                                                                                                                                                                                                                                !appl_50 <- kl_Parse_shen_LBformulaeRB `pseq` applyWrapper aw_49 [kl_Parse_shen_LBformulaeRB]
-                                                                                                                                                                                                                                                                                                                                                                                !appl_51 <- appl_48 `pseq` (appl_50 `pseq` klCons appl_48 appl_50)
-                                                                                                                                                                                                                                                                                                                                                                                let !aw_52 = Types.Atom (Types.UnboundSym "shen.pair")
-                                                                                                                                                                                                                                                                                                                                                                                appl_46 `pseq` (appl_51 `pseq` applyWrapper aw_52 [appl_46,
-                                                                                                                                                                                                                                                                                                                                                                                                                                   appl_51])
-                                                                                                                                                                                                                                                                                                                                                          Atom (B (False)) -> do do let !aw_53 = Types.Atom (Types.UnboundSym "fail")
-                                                                                                                                                                                                                                                                                                                                                                                    applyWrapper aw_53 []
-                                                                                                                                                                                                                                                                                                                                                          _ -> throwError "if: expected boolean")))
-                                                                                                                                                                                                                                                                   !appl_54 <- kl_Parse_shen_LBcomma_symbolRB `pseq` kl_shen_LBformulaeRB kl_Parse_shen_LBcomma_symbolRB
-                                                                                                                                                                                                                                                                   appl_54 `pseq` applyWrapper appl_41 [appl_54]
-                                                                                                                                                                                                                                             Atom (B (False)) -> do do let !aw_55 = Types.Atom (Types.UnboundSym "fail")
-                                                                                                                                                                                                                                                                       applyWrapper aw_55 []
-                                                                                                                                                                                                                                             _ -> throwError "if: expected boolean")))
-                                                                                                                                                  !appl_56 <- kl_Parse_shen_LBformulaRB `pseq` kl_shen_LBcomma_symbolRB kl_Parse_shen_LBformulaRB
-                                                                                                                                                  appl_56 `pseq` applyWrapper appl_36 [appl_56]
-                                                                                                                            Atom (B (False)) -> do do let !aw_57 = Types.Atom (Types.UnboundSym "fail")
-                                                                                                                                                      applyWrapper aw_57 []
-                                                                                                                            _ -> throwError "if: expected boolean")))
-                                      !appl_58 <- kl_V2456 `pseq` kl_shen_LBformulaRB kl_V2456
-                                      !appl_59 <- appl_58 `pseq` applyWrapper appl_31 [appl_58]
-                                      appl_59 `pseq` applyWrapper appl_0 [appl_59]
-
-kl_shen_LBcomma_symbolRB :: Types.KLValue ->
-                            Types.KLContext Types.Env Types.KLValue
-kl_shen_LBcomma_symbolRB (!kl_V2458) = do !appl_0 <- kl_V2458 `pseq` hd kl_V2458
-                                          !kl_if_1 <- appl_0 `pseq` consP appl_0
-                                          case kl_if_1 of
-                                              Atom (B (True)) -> do let !appl_2 = ApplC (Func "lambda" (Context (\(!kl_Parse_X) -> do !appl_3 <- intern (Types.Atom (Types.Str ","))
-                                                                                                                                      !kl_if_4 <- kl_Parse_X `pseq` (appl_3 `pseq` eq kl_Parse_X appl_3)
-                                                                                                                                      case kl_if_4 of
-                                                                                                                                          Atom (B (True)) -> do !appl_5 <- kl_V2458 `pseq` hd kl_V2458
-                                                                                                                                                                !appl_6 <- appl_5 `pseq` tl appl_5
-                                                                                                                                                                let !aw_7 = Types.Atom (Types.UnboundSym "shen.hdtl")
-                                                                                                                                                                !appl_8 <- kl_V2458 `pseq` applyWrapper aw_7 [kl_V2458]
-                                                                                                                                                                let !aw_9 = Types.Atom (Types.UnboundSym "shen.pair")
-                                                                                                                                                                !appl_10 <- appl_6 `pseq` (appl_8 `pseq` applyWrapper aw_9 [appl_6,
-                                                                                                                                                                                                                            appl_8])
-                                                                                                                                                                !appl_11 <- appl_10 `pseq` hd appl_10
-                                                                                                                                                                let !aw_12 = Types.Atom (Types.UnboundSym "shen.pair")
-                                                                                                                                                                appl_11 `pseq` applyWrapper aw_12 [appl_11,
-                                                                                                                                                                                                   Types.Atom (Types.UnboundSym "shen.skip")]
-                                                                                                                                          Atom (B (False)) -> do do let !aw_13 = Types.Atom (Types.UnboundSym "fail")
-                                                                                                                                                                    applyWrapper aw_13 []
-                                                                                                                                          _ -> throwError "if: expected boolean")))
-                                                                    !appl_14 <- kl_V2458 `pseq` hd kl_V2458
-                                                                    !appl_15 <- appl_14 `pseq` hd appl_14
-                                                                    appl_15 `pseq` applyWrapper appl_2 [appl_15]
-                                              Atom (B (False)) -> do do let !aw_16 = Types.Atom (Types.UnboundSym "fail")
-                                                                        applyWrapper aw_16 []
-                                              _ -> throwError "if: expected boolean"
-
-kl_shen_LBformulaRB :: Types.KLValue ->
-                       Types.KLContext Types.Env Types.KLValue
-kl_shen_LBformulaRB (!kl_V2460) = do let !appl_0 = ApplC (Func "lambda" (Context (\(!kl_YaccParse) -> do let !aw_1 = Types.Atom (Types.UnboundSym "fail")
-                                                                                                         !appl_2 <- applyWrapper aw_1 []
-                                                                                                         !kl_if_3 <- kl_YaccParse `pseq` (appl_2 `pseq` eq kl_YaccParse appl_2)
-                                                                                                         case kl_if_3 of
-                                                                                                             Atom (B (True)) -> do let !appl_4 = ApplC (Func "lambda" (Context (\(!kl_Parse_shen_LBexprRB) -> do let !aw_5 = Types.Atom (Types.UnboundSym "fail")
-                                                                                                                                                                                                                 !appl_6 <- applyWrapper aw_5 []
-                                                                                                                                                                                                                 !appl_7 <- appl_6 `pseq` (kl_Parse_shen_LBexprRB `pseq` eq appl_6 kl_Parse_shen_LBexprRB)
-                                                                                                                                                                                                                 !kl_if_8 <- appl_7 `pseq` kl_not appl_7
-                                                                                                                                                                                                                 case kl_if_8 of
-                                                                                                                                                                                                                     Atom (B (True)) -> do !appl_9 <- kl_Parse_shen_LBexprRB `pseq` hd kl_Parse_shen_LBexprRB
-                                                                                                                                                                                                                                           let !aw_10 = Types.Atom (Types.UnboundSym "shen.hdtl")
-                                                                                                                                                                                                                                           !appl_11 <- kl_Parse_shen_LBexprRB `pseq` applyWrapper aw_10 [kl_Parse_shen_LBexprRB]
-                                                                                                                                                                                                                                           let !aw_12 = Types.Atom (Types.UnboundSym "shen.pair")
-                                                                                                                                                                                                                                           appl_9 `pseq` (appl_11 `pseq` applyWrapper aw_12 [appl_9,
-                                                                                                                                                                                                                                                                                             appl_11])
-                                                                                                                                                                                                                     Atom (B (False)) -> do do let !aw_13 = Types.Atom (Types.UnboundSym "fail")
-                                                                                                                                                                                                                                               applyWrapper aw_13 []
-                                                                                                                                                                                                                     _ -> throwError "if: expected boolean")))
-                                                                                                                                   !appl_14 <- kl_V2460 `pseq` kl_shen_LBexprRB kl_V2460
-                                                                                                                                   appl_14 `pseq` applyWrapper appl_4 [appl_14]
-                                                                                                             Atom (B (False)) -> do do return kl_YaccParse
-                                                                                                             _ -> throwError "if: expected boolean")))
-                                     let !appl_15 = ApplC (Func "lambda" (Context (\(!kl_Parse_shen_LBexprRB) -> do let !aw_16 = Types.Atom (Types.UnboundSym "fail")
-                                                                                                                    !appl_17 <- applyWrapper aw_16 []
-                                                                                                                    !appl_18 <- appl_17 `pseq` (kl_Parse_shen_LBexprRB `pseq` eq appl_17 kl_Parse_shen_LBexprRB)
-                                                                                                                    !kl_if_19 <- appl_18 `pseq` kl_not appl_18
-                                                                                                                    case kl_if_19 of
-                                                                                                                        Atom (B (True)) -> do !appl_20 <- kl_Parse_shen_LBexprRB `pseq` hd kl_Parse_shen_LBexprRB
-                                                                                                                                              !kl_if_21 <- appl_20 `pseq` consP appl_20
-                                                                                                                                              !kl_if_22 <- case kl_if_21 of
-                                                                                                                                                               Atom (B (True)) -> do !appl_23 <- kl_Parse_shen_LBexprRB `pseq` hd kl_Parse_shen_LBexprRB
-                                                                                                                                                                                     !appl_24 <- appl_23 `pseq` hd appl_23
-                                                                                                                                                                                     !kl_if_25 <- appl_24 `pseq` eq (Types.Atom (Types.UnboundSym ":")) appl_24
-                                                                                                                                                                                     case kl_if_25 of
-                                                                                                                                                                                         Atom (B (True)) -> do return (Atom (B True))
-                                                                                                                                                                                         Atom (B (False)) -> do do return (Atom (B False))
-                                                                                                                                                                                         _ -> throwError "if: expected boolean"
-                                                                                                                                                               Atom (B (False)) -> do do return (Atom (B False))
-                                                                                                                                                               _ -> throwError "if: expected boolean"
-                                                                                                                                              case kl_if_22 of
-                                                                                                                                                  Atom (B (True)) -> do let !appl_26 = ApplC (Func "lambda" (Context (\(!kl_Parse_shen_LBtypeRB) -> do let !aw_27 = Types.Atom (Types.UnboundSym "fail")
-                                                                                                                                                                                                                                                       !appl_28 <- applyWrapper aw_27 []
-                                                                                                                                                                                                                                                       !appl_29 <- appl_28 `pseq` (kl_Parse_shen_LBtypeRB `pseq` eq appl_28 kl_Parse_shen_LBtypeRB)
-                                                                                                                                                                                                                                                       !kl_if_30 <- appl_29 `pseq` kl_not appl_29
-                                                                                                                                                                                                                                                       case kl_if_30 of
-                                                                                                                                                                                                                                                           Atom (B (True)) -> do !appl_31 <- kl_Parse_shen_LBtypeRB `pseq` hd kl_Parse_shen_LBtypeRB
-                                                                                                                                                                                                                                                                                 let !aw_32 = Types.Atom (Types.UnboundSym "shen.hdtl")
-                                                                                                                                                                                                                                                                                 !appl_33 <- kl_Parse_shen_LBexprRB `pseq` applyWrapper aw_32 [kl_Parse_shen_LBexprRB]
-                                                                                                                                                                                                                                                                                 let !aw_34 = Types.Atom (Types.UnboundSym "shen.curry")
-                                                                                                                                                                                                                                                                                 !appl_35 <- appl_33 `pseq` applyWrapper aw_34 [appl_33]
-                                                                                                                                                                                                                                                                                 let !aw_36 = Types.Atom (Types.UnboundSym "shen.hdtl")
-                                                                                                                                                                                                                                                                                 !appl_37 <- kl_Parse_shen_LBtypeRB `pseq` applyWrapper aw_36 [kl_Parse_shen_LBtypeRB]
-                                                                                                                                                                                                                                                                                 let !aw_38 = Types.Atom (Types.UnboundSym "shen.demodulate")
-                                                                                                                                                                                                                                                                                 !appl_39 <- appl_37 `pseq` applyWrapper aw_38 [appl_37]
-                                                                                                                                                                                                                                                                                 !appl_40 <- appl_39 `pseq` klCons appl_39 (Types.Atom Types.Nil)
-                                                                                                                                                                                                                                                                                 !appl_41 <- appl_40 `pseq` klCons (Types.Atom (Types.UnboundSym ":")) appl_40
-                                                                                                                                                                                                                                                                                 !appl_42 <- appl_35 `pseq` (appl_41 `pseq` klCons appl_35 appl_41)
-                                                                                                                                                                                                                                                                                 let !aw_43 = Types.Atom (Types.UnboundSym "shen.pair")
-                                                                                                                                                                                                                                                                                 appl_31 `pseq` (appl_42 `pseq` applyWrapper aw_43 [appl_31,
-                                                                                                                                                                                                                                                                                                                                    appl_42])
-                                                                                                                                                                                                                                                           Atom (B (False)) -> do do let !aw_44 = Types.Atom (Types.UnboundSym "fail")
-                                                                                                                                                                                                                                                                                     applyWrapper aw_44 []
-                                                                                                                                                                                                                                                           _ -> throwError "if: expected boolean")))
-                                                                                                                                                                        !appl_45 <- kl_Parse_shen_LBexprRB `pseq` hd kl_Parse_shen_LBexprRB
-                                                                                                                                                                        !appl_46 <- appl_45 `pseq` tl appl_45
-                                                                                                                                                                        let !aw_47 = Types.Atom (Types.UnboundSym "shen.hdtl")
-                                                                                                                                                                        !appl_48 <- kl_Parse_shen_LBexprRB `pseq` applyWrapper aw_47 [kl_Parse_shen_LBexprRB]
-                                                                                                                                                                        let !aw_49 = Types.Atom (Types.UnboundSym "shen.pair")
-                                                                                                                                                                        !appl_50 <- appl_46 `pseq` (appl_48 `pseq` applyWrapper aw_49 [appl_46,
-                                                                                                                                                                                                                                       appl_48])
-                                                                                                                                                                        !appl_51 <- appl_50 `pseq` kl_shen_LBtypeRB appl_50
-                                                                                                                                                                        appl_51 `pseq` applyWrapper appl_26 [appl_51]
-                                                                                                                                                  Atom (B (False)) -> do do let !aw_52 = Types.Atom (Types.UnboundSym "fail")
-                                                                                                                                                                            applyWrapper aw_52 []
-                                                                                                                                                  _ -> throwError "if: expected boolean"
-                                                                                                                        Atom (B (False)) -> do do let !aw_53 = Types.Atom (Types.UnboundSym "fail")
-                                                                                                                                                  applyWrapper aw_53 []
-                                                                                                                        _ -> throwError "if: expected boolean")))
-                                     !appl_54 <- kl_V2460 `pseq` kl_shen_LBexprRB kl_V2460
-                                     !appl_55 <- appl_54 `pseq` applyWrapper appl_15 [appl_54]
-                                     appl_55 `pseq` applyWrapper appl_0 [appl_55]
-
-kl_shen_LBtypeRB :: Types.KLValue ->
-                    Types.KLContext Types.Env Types.KLValue
-kl_shen_LBtypeRB (!kl_V2462) = do let !appl_0 = ApplC (Func "lambda" (Context (\(!kl_Parse_shen_LBexprRB) -> do let !aw_1 = Types.Atom (Types.UnboundSym "fail")
-                                                                                                                !appl_2 <- applyWrapper aw_1 []
-                                                                                                                !appl_3 <- appl_2 `pseq` (kl_Parse_shen_LBexprRB `pseq` eq appl_2 kl_Parse_shen_LBexprRB)
-                                                                                                                !kl_if_4 <- appl_3 `pseq` kl_not appl_3
-                                                                                                                case kl_if_4 of
-                                                                                                                    Atom (B (True)) -> do !appl_5 <- kl_Parse_shen_LBexprRB `pseq` hd kl_Parse_shen_LBexprRB
-                                                                                                                                          let !aw_6 = Types.Atom (Types.UnboundSym "shen.hdtl")
-                                                                                                                                          !appl_7 <- kl_Parse_shen_LBexprRB `pseq` applyWrapper aw_6 [kl_Parse_shen_LBexprRB]
-                                                                                                                                          !appl_8 <- appl_7 `pseq` kl_shen_curry_type appl_7
-                                                                                                                                          let !aw_9 = Types.Atom (Types.UnboundSym "shen.pair")
-                                                                                                                                          appl_5 `pseq` (appl_8 `pseq` applyWrapper aw_9 [appl_5,
-                                                                                                                                                                                          appl_8])
-                                                                                                                    Atom (B (False)) -> do do let !aw_10 = Types.Atom (Types.UnboundSym "fail")
-                                                                                                                                              applyWrapper aw_10 []
-                                                                                                                    _ -> throwError "if: expected boolean")))
-                                  !appl_11 <- kl_V2462 `pseq` kl_shen_LBexprRB kl_V2462
-                                  appl_11 `pseq` applyWrapper appl_0 [appl_11]
-
-kl_shen_LBdoubleunderlineRB :: Types.KLValue ->
-                               Types.KLContext Types.Env Types.KLValue
-kl_shen_LBdoubleunderlineRB (!kl_V2464) = do !appl_0 <- kl_V2464 `pseq` hd kl_V2464
-                                             !kl_if_1 <- appl_0 `pseq` consP appl_0
-                                             case kl_if_1 of
-                                                 Atom (B (True)) -> do let !appl_2 = ApplC (Func "lambda" (Context (\(!kl_Parse_X) -> do !kl_if_3 <- kl_Parse_X `pseq` kl_shen_doubleunderlineP kl_Parse_X
-                                                                                                                                         case kl_if_3 of
-                                                                                                                                             Atom (B (True)) -> do !appl_4 <- kl_V2464 `pseq` hd kl_V2464
-                                                                                                                                                                   !appl_5 <- appl_4 `pseq` tl appl_4
-                                                                                                                                                                   let !aw_6 = Types.Atom (Types.UnboundSym "shen.hdtl")
-                                                                                                                                                                   !appl_7 <- kl_V2464 `pseq` applyWrapper aw_6 [kl_V2464]
-                                                                                                                                                                   let !aw_8 = Types.Atom (Types.UnboundSym "shen.pair")
-                                                                                                                                                                   !appl_9 <- appl_5 `pseq` (appl_7 `pseq` applyWrapper aw_8 [appl_5,
-                                                                                                                                                                                                                              appl_7])
-                                                                                                                                                                   !appl_10 <- appl_9 `pseq` hd appl_9
-                                                                                                                                                                   let !aw_11 = Types.Atom (Types.UnboundSym "shen.pair")
-                                                                                                                                                                   appl_10 `pseq` (kl_Parse_X `pseq` applyWrapper aw_11 [appl_10,
-                                                                                                                                                                                                                         kl_Parse_X])
-                                                                                                                                             Atom (B (False)) -> do do let !aw_12 = Types.Atom (Types.UnboundSym "fail")
-                                                                                                                                                                       applyWrapper aw_12 []
-                                                                                                                                             _ -> throwError "if: expected boolean")))
-                                                                       !appl_13 <- kl_V2464 `pseq` hd kl_V2464
-                                                                       !appl_14 <- appl_13 `pseq` hd appl_13
-                                                                       appl_14 `pseq` applyWrapper appl_2 [appl_14]
-                                                 Atom (B (False)) -> do do let !aw_15 = Types.Atom (Types.UnboundSym "fail")
-                                                                           applyWrapper aw_15 []
-                                                 _ -> throwError "if: expected boolean"
-
-kl_shen_LBsingleunderlineRB :: Types.KLValue ->
-                               Types.KLContext Types.Env Types.KLValue
-kl_shen_LBsingleunderlineRB (!kl_V2466) = do !appl_0 <- kl_V2466 `pseq` hd kl_V2466
-                                             !kl_if_1 <- appl_0 `pseq` consP appl_0
-                                             case kl_if_1 of
-                                                 Atom (B (True)) -> do let !appl_2 = ApplC (Func "lambda" (Context (\(!kl_Parse_X) -> do !kl_if_3 <- kl_Parse_X `pseq` kl_shen_singleunderlineP kl_Parse_X
-                                                                                                                                         case kl_if_3 of
-                                                                                                                                             Atom (B (True)) -> do !appl_4 <- kl_V2466 `pseq` hd kl_V2466
-                                                                                                                                                                   !appl_5 <- appl_4 `pseq` tl appl_4
-                                                                                                                                                                   let !aw_6 = Types.Atom (Types.UnboundSym "shen.hdtl")
-                                                                                                                                                                   !appl_7 <- kl_V2466 `pseq` applyWrapper aw_6 [kl_V2466]
-                                                                                                                                                                   let !aw_8 = Types.Atom (Types.UnboundSym "shen.pair")
-                                                                                                                                                                   !appl_9 <- appl_5 `pseq` (appl_7 `pseq` applyWrapper aw_8 [appl_5,
-                                                                                                                                                                                                                              appl_7])
-                                                                                                                                                                   !appl_10 <- appl_9 `pseq` hd appl_9
-                                                                                                                                                                   let !aw_11 = Types.Atom (Types.UnboundSym "shen.pair")
-                                                                                                                                                                   appl_10 `pseq` (kl_Parse_X `pseq` applyWrapper aw_11 [appl_10,
-                                                                                                                                                                                                                         kl_Parse_X])
-                                                                                                                                             Atom (B (False)) -> do do let !aw_12 = Types.Atom (Types.UnboundSym "fail")
-                                                                                                                                                                       applyWrapper aw_12 []
-                                                                                                                                             _ -> throwError "if: expected boolean")))
-                                                                       !appl_13 <- kl_V2466 `pseq` hd kl_V2466
-                                                                       !appl_14 <- appl_13 `pseq` hd appl_13
-                                                                       appl_14 `pseq` applyWrapper appl_2 [appl_14]
-                                                 Atom (B (False)) -> do do let !aw_15 = Types.Atom (Types.UnboundSym "fail")
-                                                                           applyWrapper aw_15 []
-                                                 _ -> throwError "if: expected boolean"
-
-kl_shen_singleunderlineP :: Types.KLValue ->
-                            Types.KLContext Types.Env Types.KLValue
-kl_shen_singleunderlineP (!kl_V2468) = do !kl_if_0 <- kl_V2468 `pseq` kl_symbolP kl_V2468
-                                          case kl_if_0 of
-                                              Atom (B (True)) -> do !appl_1 <- kl_V2468 `pseq` str kl_V2468
-                                                                    !kl_if_2 <- appl_1 `pseq` kl_shen_shP appl_1
-                                                                    case kl_if_2 of
-                                                                        Atom (B (True)) -> do return (Atom (B True))
-                                                                        Atom (B (False)) -> do do return (Atom (B False))
-                                                                        _ -> throwError "if: expected boolean"
-                                              Atom (B (False)) -> do do return (Atom (B False))
-                                              _ -> throwError "if: expected boolean"
-
-kl_shen_shP :: Types.KLValue ->
-               Types.KLContext Types.Env Types.KLValue
-kl_shen_shP (!kl_V2470) = do let pat_cond_0 = do return (Atom (B True))
-                                 pat_cond_1 = do do !appl_2 <- kl_V2470 `pseq` pos kl_V2470 (Types.Atom (Types.N (Types.KI 0)))
-                                                    !kl_if_3 <- appl_2 `pseq` eq appl_2 (Types.Atom (Types.Str "_"))
-                                                    case kl_if_3 of
-                                                        Atom (B (True)) -> do !appl_4 <- kl_V2470 `pseq` tlstr kl_V2470
-                                                                              !kl_if_5 <- appl_4 `pseq` kl_shen_shP appl_4
-                                                                              case kl_if_5 of
-                                                                                  Atom (B (True)) -> do return (Atom (B True))
-                                                                                  Atom (B (False)) -> do do return (Atom (B False))
-                                                                                  _ -> throwError "if: expected boolean"
-                                                        Atom (B (False)) -> do do return (Atom (B False))
-                                                        _ -> throwError "if: expected boolean"
-                              in case kl_V2470 of
-                                     kl_V2470@(Atom (Str "_")) -> pat_cond_0
-                                     _ -> pat_cond_1
-
-kl_shen_doubleunderlineP :: Types.KLValue ->
-                            Types.KLContext Types.Env Types.KLValue
-kl_shen_doubleunderlineP (!kl_V2472) = do !kl_if_0 <- kl_V2472 `pseq` kl_symbolP kl_V2472
-                                          case kl_if_0 of
-                                              Atom (B (True)) -> do !appl_1 <- kl_V2472 `pseq` str kl_V2472
-                                                                    !kl_if_2 <- appl_1 `pseq` kl_shen_dhP appl_1
-                                                                    case kl_if_2 of
-                                                                        Atom (B (True)) -> do return (Atom (B True))
-                                                                        Atom (B (False)) -> do do return (Atom (B False))
-                                                                        _ -> throwError "if: expected boolean"
-                                              Atom (B (False)) -> do do return (Atom (B False))
-                                              _ -> throwError "if: expected boolean"
-
-kl_shen_dhP :: Types.KLValue ->
-               Types.KLContext Types.Env Types.KLValue
-kl_shen_dhP (!kl_V2474) = do let pat_cond_0 = do return (Atom (B True))
-                                 pat_cond_1 = do do !appl_2 <- kl_V2474 `pseq` pos kl_V2474 (Types.Atom (Types.N (Types.KI 0)))
-                                                    !kl_if_3 <- appl_2 `pseq` eq appl_2 (Types.Atom (Types.Str "="))
-                                                    case kl_if_3 of
-                                                        Atom (B (True)) -> do !appl_4 <- kl_V2474 `pseq` tlstr kl_V2474
-                                                                              !kl_if_5 <- appl_4 `pseq` kl_shen_dhP appl_4
-                                                                              case kl_if_5 of
-                                                                                  Atom (B (True)) -> do return (Atom (B True))
-                                                                                  Atom (B (False)) -> do do return (Atom (B False))
-                                                                                  _ -> throwError "if: expected boolean"
-                                                        Atom (B (False)) -> do do return (Atom (B False))
-                                                        _ -> throwError "if: expected boolean"
-                              in case kl_V2474 of
-                                     kl_V2474@(Atom (Str "=")) -> pat_cond_0
-                                     _ -> pat_cond_1
-
-kl_shen_process_datatype :: Types.KLValue ->
-                            Types.KLValue -> Types.KLContext Types.Env Types.KLValue
-kl_shen_process_datatype (!kl_V2477) (!kl_V2478) = do !appl_0 <- kl_V2477 `pseq` (kl_V2478 `pseq` kl_shen_rules_RBhorn_clauses kl_V2477 kl_V2478)
-                                                      let !aw_1 = Types.Atom (Types.UnboundSym "shen.s-prolog")
-                                                      !appl_2 <- appl_0 `pseq` applyWrapper aw_1 [appl_0]
-                                                      appl_2 `pseq` kl_shen_remember_datatype appl_2
-
-kl_shen_remember_datatype :: Types.KLValue ->
-                             Types.KLContext Types.Env Types.KLValue
-kl_shen_remember_datatype (!kl_V2484) = do let pat_cond_0 kl_V2484 kl_V2484h kl_V2484t = do !appl_1 <- value (Types.Atom (Types.UnboundSym "shen.*datatypes*"))
-                                                                                            let !aw_2 = Types.Atom (Types.UnboundSym "adjoin")
-                                                                                            !appl_3 <- kl_V2484h `pseq` (appl_1 `pseq` applyWrapper aw_2 [kl_V2484h,
-                                                                                                                                                          appl_1])
-                                                                                            !appl_4 <- appl_3 `pseq` klSet (Types.Atom (Types.UnboundSym "shen.*datatypes*")) appl_3
-                                                                                            !appl_5 <- value (Types.Atom (Types.UnboundSym "shen.*alldatatypes*"))
-                                                                                            let !aw_6 = Types.Atom (Types.UnboundSym "adjoin")
-                                                                                            !appl_7 <- kl_V2484h `pseq` (appl_5 `pseq` applyWrapper aw_6 [kl_V2484h,
-                                                                                                                                                          appl_5])
-                                                                                            !appl_8 <- appl_7 `pseq` klSet (Types.Atom (Types.UnboundSym "shen.*alldatatypes*")) appl_7
-                                                                                            !appl_9 <- appl_8 `pseq` (kl_V2484h `pseq` kl_do appl_8 kl_V2484h)
-                                                                                            appl_4 `pseq` (appl_9 `pseq` kl_do appl_4 appl_9)
-                                               pat_cond_10 = do do let !aw_11 = Types.Atom (Types.UnboundSym "shen.f_error")
-                                                                   applyWrapper aw_11 [ApplC (wrapNamed "shen.remember-datatype" kl_shen_remember_datatype)]
-                                            in case kl_V2484 of
-                                                   !(kl_V2484@(Cons (!kl_V2484h)
-                                                                    (!kl_V2484t))) -> pat_cond_0 kl_V2484 kl_V2484h kl_V2484t
-                                                   _ -> pat_cond_10
-
-kl_shen_rules_RBhorn_clauses :: Types.KLValue ->
-                                Types.KLValue -> Types.KLContext Types.Env Types.KLValue
-kl_shen_rules_RBhorn_clauses (!kl_V2489) (!kl_V2490) = do let pat_cond_0 = do return (Types.Atom Types.Nil)
-                                                              pat_cond_1 = do !kl_if_2 <- let pat_cond_3 kl_V2490 kl_V2490h kl_V2490t = do !kl_if_4 <- kl_V2490h `pseq` kl_tupleP kl_V2490h
-                                                                                                                                           !kl_if_5 <- case kl_if_4 of
-                                                                                                                                                           Atom (B (True)) -> do !appl_6 <- kl_V2490h `pseq` kl_fst kl_V2490h
-                                                                                                                                                                                 !kl_if_7 <- appl_6 `pseq` eq (Types.Atom (Types.UnboundSym "shen.single")) appl_6
-                                                                                                                                                                                 case kl_if_7 of
-                                                                                                                                                                                     Atom (B (True)) -> do return (Atom (B True))
-                                                                                                                                                                                     Atom (B (False)) -> do do return (Atom (B False))
-                                                                                                                                                                                     _ -> throwError "if: expected boolean"
-                                                                                                                                                           Atom (B (False)) -> do do return (Atom (B False))
-                                                                                                                                                           _ -> throwError "if: expected boolean"
-                                                                                                                                           case kl_if_5 of
-                                                                                                                                               Atom (B (True)) -> do return (Atom (B True))
-                                                                                                                                               Atom (B (False)) -> do do return (Atom (B False))
-                                                                                                                                               _ -> throwError "if: expected boolean"
-                                                                                              pat_cond_8 = do do return (Atom (B False))
-                                                                                           in case kl_V2490 of
-                                                                                                  !(kl_V2490@(Cons (!kl_V2490h)
-                                                                                                                   (!kl_V2490t))) -> pat_cond_3 kl_V2490 kl_V2490h kl_V2490t
-                                                                                                  _ -> pat_cond_8
-                                                                              case kl_if_2 of
-                                                                                  Atom (B (True)) -> do !appl_9 <- kl_V2490 `pseq` hd kl_V2490
-                                                                                                        !appl_10 <- appl_9 `pseq` kl_snd appl_9
-                                                                                                        !appl_11 <- kl_V2489 `pseq` (appl_10 `pseq` kl_shen_rule_RBhorn_clause kl_V2489 appl_10)
-                                                                                                        !appl_12 <- kl_V2490 `pseq` tl kl_V2490
-                                                                                                        !appl_13 <- kl_V2489 `pseq` (appl_12 `pseq` kl_shen_rules_RBhorn_clauses kl_V2489 appl_12)
-                                                                                                        appl_11 `pseq` (appl_13 `pseq` klCons appl_11 appl_13)
-                                                                                  Atom (B (False)) -> do !kl_if_14 <- let pat_cond_15 kl_V2490 kl_V2490h kl_V2490t = do !kl_if_16 <- kl_V2490h `pseq` kl_tupleP kl_V2490h
-                                                                                                                                                                        !kl_if_17 <- case kl_if_16 of
-                                                                                                                                                                                         Atom (B (True)) -> do !appl_18 <- kl_V2490h `pseq` kl_fst kl_V2490h
-                                                                                                                                                                                                               !kl_if_19 <- appl_18 `pseq` eq (Types.Atom (Types.UnboundSym "shen.double")) appl_18
-                                                                                                                                                                                                               case kl_if_19 of
-                                                                                                                                                                                                                   Atom (B (True)) -> do return (Atom (B True))
-                                                                                                                                                                                                                   Atom (B (False)) -> do do return (Atom (B False))
-                                                                                                                                                                                                                   _ -> throwError "if: expected boolean"
-                                                                                                                                                                                         Atom (B (False)) -> do do return (Atom (B False))
-                                                                                                                                                                                         _ -> throwError "if: expected boolean"
-                                                                                                                                                                        case kl_if_17 of
-                                                                                                                                                                            Atom (B (True)) -> do return (Atom (B True))
-                                                                                                                                                                            Atom (B (False)) -> do do return (Atom (B False))
-                                                                                                                                                                            _ -> throwError "if: expected boolean"
-                                                                                                                          pat_cond_20 = do do return (Atom (B False))
-                                                                                                                       in case kl_V2490 of
-                                                                                                                              !(kl_V2490@(Cons (!kl_V2490h)
-                                                                                                                                               (!kl_V2490t))) -> pat_cond_15 kl_V2490 kl_V2490h kl_V2490t
-                                                                                                                              _ -> pat_cond_20
-                                                                                                         case kl_if_14 of
-                                                                                                             Atom (B (True)) -> do !appl_21 <- kl_V2490 `pseq` hd kl_V2490
-                                                                                                                                   !appl_22 <- appl_21 `pseq` kl_snd appl_21
-                                                                                                                                   !appl_23 <- appl_22 `pseq` kl_shen_double_RBsingles appl_22
-                                                                                                                                   !appl_24 <- kl_V2490 `pseq` tl kl_V2490
-                                                                                                                                   !appl_25 <- appl_23 `pseq` (appl_24 `pseq` kl_append appl_23 appl_24)
-                                                                                                                                   kl_V2489 `pseq` (appl_25 `pseq` kl_shen_rules_RBhorn_clauses kl_V2489 appl_25)
-                                                                                                             Atom (B (False)) -> do do let !aw_26 = Types.Atom (Types.UnboundSym "shen.f_error")
-                                                                                                                                       applyWrapper aw_26 [ApplC (wrapNamed "shen.rules->horn-clauses" kl_shen_rules_RBhorn_clauses)]
-                                                                                                             _ -> throwError "if: expected boolean"
-                                                                                  _ -> throwError "if: expected boolean"
-                                                           in case kl_V2490 of
-                                                                  kl_V2490@(Atom (Nil)) -> pat_cond_0
-                                                                  _ -> pat_cond_1
-
-kl_shen_double_RBsingles :: Types.KLValue ->
-                            Types.KLContext Types.Env Types.KLValue
-kl_shen_double_RBsingles (!kl_V2492) = do !appl_0 <- kl_V2492 `pseq` kl_shen_right_rule kl_V2492
-                                          !appl_1 <- kl_V2492 `pseq` kl_shen_left_rule kl_V2492
-                                          !appl_2 <- appl_1 `pseq` klCons appl_1 (Types.Atom Types.Nil)
-                                          appl_0 `pseq` (appl_2 `pseq` klCons appl_0 appl_2)
-
-kl_shen_right_rule :: Types.KLValue ->
-                      Types.KLContext Types.Env Types.KLValue
-kl_shen_right_rule (!kl_V2494) = do kl_V2494 `pseq` kl_Atp (Types.Atom (Types.UnboundSym "shen.single")) kl_V2494
-
-kl_shen_left_rule :: Types.KLValue ->
-                     Types.KLContext Types.Env Types.KLValue
-kl_shen_left_rule (!kl_V2496) = do !kl_if_0 <- let pat_cond_1 kl_V2496 kl_V2496h kl_V2496t = do !kl_if_2 <- let pat_cond_3 kl_V2496t kl_V2496th kl_V2496tt = do !kl_if_4 <- let pat_cond_5 kl_V2496tt kl_V2496tth kl_V2496ttt = do !kl_if_6 <- kl_V2496tth `pseq` kl_tupleP kl_V2496tth
-                                                                                                                                                                                                                                   !kl_if_7 <- case kl_if_6 of
-                                                                                                                                                                                                                                                   Atom (B (True)) -> do !appl_8 <- kl_V2496tth `pseq` kl_fst kl_V2496tth
-                                                                                                                                                                                                                                                                         !kl_if_9 <- appl_8 `pseq` eq (Types.Atom Types.Nil) appl_8
-                                                                                                                                                                                                                                                                         !kl_if_10 <- case kl_if_9 of
-                                                                                                                                                                                                                                                                                          Atom (B (True)) -> do let pat_cond_11 = do return (Atom (B True))
-                                                                                                                                                                                                                                                                                                                    pat_cond_12 = do do return (Atom (B False))
-                                                                                                                                                                                                                                                                                                                 in case kl_V2496ttt of
-                                                                                                                                                                                                                                                                                                                        kl_V2496ttt@(Atom (Nil)) -> pat_cond_11
-                                                                                                                                                                                                                                                                                                                        _ -> pat_cond_12
-                                                                                                                                                                                                                                                                                          Atom (B (False)) -> do do return (Atom (B False))
-                                                                                                                                                                                                                                                                                          _ -> throwError "if: expected boolean"
-                                                                                                                                                                                                                                                                         case kl_if_10 of
-                                                                                                                                                                                                                                                                             Atom (B (True)) -> do return (Atom (B True))
-                                                                                                                                                                                                                                                                             Atom (B (False)) -> do do return (Atom (B False))
-                                                                                                                                                                                                                                                                             _ -> throwError "if: expected boolean"
-                                                                                                                                                                                                                                                   Atom (B (False)) -> do do return (Atom (B False))
-                                                                                                                                                                                                                                                   _ -> throwError "if: expected boolean"
-                                                                                                                                                                                                                                   case kl_if_7 of
-                                                                                                                                                                                                                                       Atom (B (True)) -> do return (Atom (B True))
-                                                                                                                                                                                                                                       Atom (B (False)) -> do do return (Atom (B False))
-                                                                                                                                                                                                                                       _ -> throwError "if: expected boolean"
-                                                                                                                                                                                pat_cond_13 = do do return (Atom (B False))
-                                                                                                                                                                             in case kl_V2496tt of
-                                                                                                                                                                                    !(kl_V2496tt@(Cons (!kl_V2496tth)
-                                                                                                                                                                                                       (!kl_V2496ttt))) -> pat_cond_5 kl_V2496tt kl_V2496tth kl_V2496ttt
-                                                                                                                                                                                    _ -> pat_cond_13
-                                                                                                                                                                case kl_if_4 of
-                                                                                                                                                                    Atom (B (True)) -> do return (Atom (B True))
-                                                                                                                                                                    Atom (B (False)) -> do do return (Atom (B False))
-                                                                                                                                                                    _ -> throwError "if: expected boolean"
-                                                                                                                pat_cond_14 = do do return (Atom (B False))
-                                                                                                             in case kl_V2496t of
-                                                                                                                    !(kl_V2496t@(Cons (!kl_V2496th)
-                                                                                                                                      (!kl_V2496tt))) -> pat_cond_3 kl_V2496t kl_V2496th kl_V2496tt
-                                                                                                                    _ -> pat_cond_14
-                                                                                                case kl_if_2 of
-                                                                                                    Atom (B (True)) -> do return (Atom (B True))
-                                                                                                    Atom (B (False)) -> do do return (Atom (B False))
-                                                                                                    _ -> throwError "if: expected boolean"
-                                                   pat_cond_15 = do do return (Atom (B False))
-                                                in case kl_V2496 of
-                                                       !(kl_V2496@(Cons (!kl_V2496h)
-                                                                        (!kl_V2496t))) -> pat_cond_1 kl_V2496 kl_V2496h kl_V2496t
-                                                       _ -> pat_cond_15
-                                   case kl_if_0 of
-                                       Atom (B (True)) -> do let !appl_16 = ApplC (Func "lambda" (Context (\(!kl_Q) -> do let !appl_17 = ApplC (Func "lambda" (Context (\(!kl_NewConclusion) -> do let !appl_18 = ApplC (Func "lambda" (Context (\(!kl_NewPremises) -> do !appl_19 <- kl_V2496 `pseq` hd kl_V2496
-                                                                                                                                                                                                                                                                          !appl_20 <- kl_NewConclusion `pseq` klCons kl_NewConclusion (Types.Atom Types.Nil)
-                                                                                                                                                                                                                                                                          !appl_21 <- kl_NewPremises `pseq` (appl_20 `pseq` klCons kl_NewPremises appl_20)
-                                                                                                                                                                                                                                                                          !appl_22 <- appl_19 `pseq` (appl_21 `pseq` klCons appl_19 appl_21)
-                                                                                                                                                                                                                                                                          appl_22 `pseq` kl_Atp (Types.Atom (Types.UnboundSym "shen.single")) appl_22)))
-                                                                                                                                                                                                   let !appl_23 = ApplC (Func "lambda" (Context (\(!kl_X) -> do kl_X `pseq` kl_shen_right_RBleft kl_X)))
-                                                                                                                                                                                                   !appl_24 <- kl_V2496 `pseq` tl kl_V2496
-                                                                                                                                                                                                   !appl_25 <- appl_24 `pseq` hd appl_24
-                                                                                                                                                                                                   !appl_26 <- appl_23 `pseq` (appl_25 `pseq` kl_map appl_23 appl_25)
-                                                                                                                                                                                                   !appl_27 <- appl_26 `pseq` (kl_Q `pseq` kl_Atp appl_26 kl_Q)
-                                                                                                                                                                                                   !appl_28 <- appl_27 `pseq` klCons appl_27 (Types.Atom Types.Nil)
-                                                                                                                                                                                                   appl_28 `pseq` applyWrapper appl_18 [appl_28])))
-                                                                                                                          !appl_29 <- kl_V2496 `pseq` tl kl_V2496
-                                                                                                                          !appl_30 <- appl_29 `pseq` tl appl_29
-                                                                                                                          !appl_31 <- appl_30 `pseq` hd appl_30
-                                                                                                                          !appl_32 <- appl_31 `pseq` kl_snd appl_31
-                                                                                                                          !appl_33 <- appl_32 `pseq` klCons appl_32 (Types.Atom Types.Nil)
-                                                                                                                          !appl_34 <- appl_33 `pseq` (kl_Q `pseq` kl_Atp appl_33 kl_Q)
-                                                                                                                          appl_34 `pseq` applyWrapper appl_17 [appl_34])))
-                                                             !appl_35 <- kl_gensym (Types.Atom (Types.UnboundSym "Qv"))
-                                                             appl_35 `pseq` applyWrapper appl_16 [appl_35]
-                                       Atom (B (False)) -> do do let !aw_36 = Types.Atom (Types.UnboundSym "shen.f_error")
-                                                                 applyWrapper aw_36 [ApplC (wrapNamed "shen.left-rule" kl_shen_left_rule)]
-                                       _ -> throwError "if: expected boolean"
-
-kl_shen_right_RBleft :: Types.KLValue ->
-                        Types.KLContext Types.Env Types.KLValue
-kl_shen_right_RBleft (!kl_V2502) = do !kl_if_0 <- kl_V2502 `pseq` kl_tupleP kl_V2502
-                                      !kl_if_1 <- case kl_if_0 of
-                                                      Atom (B (True)) -> do !appl_2 <- kl_V2502 `pseq` kl_fst kl_V2502
-                                                                            !kl_if_3 <- appl_2 `pseq` eq (Types.Atom Types.Nil) appl_2
-                                                                            case kl_if_3 of
-                                                                                Atom (B (True)) -> do return (Atom (B True))
-                                                                                Atom (B (False)) -> do do return (Atom (B False))
-                                                                                _ -> throwError "if: expected boolean"
-                                                      Atom (B (False)) -> do do return (Atom (B False))
-                                                      _ -> throwError "if: expected boolean"
-                                      case kl_if_1 of
-                                          Atom (B (True)) -> do kl_V2502 `pseq` kl_snd kl_V2502
-                                          Atom (B (False)) -> do do simpleError (Types.Atom (Types.Str "syntax error with ==========\n"))
-                                          _ -> throwError "if: expected boolean"
-
-kl_shen_rule_RBhorn_clause :: Types.KLValue ->
-                              Types.KLValue -> Types.KLContext Types.Env Types.KLValue
-kl_shen_rule_RBhorn_clause (!kl_V2505) (!kl_V2506) = do !kl_if_0 <- let pat_cond_1 kl_V2506 kl_V2506h kl_V2506t = do !kl_if_2 <- let pat_cond_3 kl_V2506t kl_V2506th kl_V2506tt = do !kl_if_4 <- let pat_cond_5 kl_V2506tt kl_V2506tth kl_V2506ttt = do !kl_if_6 <- kl_V2506tth `pseq` kl_tupleP kl_V2506tth
-                                                                                                                                                                                                                                                        !kl_if_7 <- case kl_if_6 of
-                                                                                                                                                                                                                                                                        Atom (B (True)) -> do let pat_cond_8 = do return (Atom (B True))
-                                                                                                                                                                                                                                                                                                  pat_cond_9 = do do return (Atom (B False))
-                                                                                                                                                                                                                                                                                               in case kl_V2506ttt of
-                                                                                                                                                                                                                                                                                                      kl_V2506ttt@(Atom (Nil)) -> pat_cond_8
-                                                                                                                                                                                                                                                                                                      _ -> pat_cond_9
-                                                                                                                                                                                                                                                                        Atom (B (False)) -> do do return (Atom (B False))
-                                                                                                                                                                                                                                                                        _ -> throwError "if: expected boolean"
-                                                                                                                                                                                                                                                        case kl_if_7 of
-                                                                                                                                                                                                                                                            Atom (B (True)) -> do return (Atom (B True))
-                                                                                                                                                                                                                                                            Atom (B (False)) -> do do return (Atom (B False))
-                                                                                                                                                                                                                                                            _ -> throwError "if: expected boolean"
-                                                                                                                                                                                                     pat_cond_10 = do do return (Atom (B False))
-                                                                                                                                                                                                  in case kl_V2506tt of
-                                                                                                                                                                                                         !(kl_V2506tt@(Cons (!kl_V2506tth)
-                                                                                                                                                                                                                            (!kl_V2506ttt))) -> pat_cond_5 kl_V2506tt kl_V2506tth kl_V2506ttt
-                                                                                                                                                                                                         _ -> pat_cond_10
-                                                                                                                                                                                     case kl_if_4 of
-                                                                                                                                                                                         Atom (B (True)) -> do return (Atom (B True))
-                                                                                                                                                                                         Atom (B (False)) -> do do return (Atom (B False))
-                                                                                                                                                                                         _ -> throwError "if: expected boolean"
-                                                                                                                                     pat_cond_11 = do do return (Atom (B False))
-                                                                                                                                  in case kl_V2506t of
-                                                                                                                                         !(kl_V2506t@(Cons (!kl_V2506th)
-                                                                                                                                                           (!kl_V2506tt))) -> pat_cond_3 kl_V2506t kl_V2506th kl_V2506tt
-                                                                                                                                         _ -> pat_cond_11
-                                                                                                                     case kl_if_2 of
-                                                                                                                         Atom (B (True)) -> do return (Atom (B True))
-                                                                                                                         Atom (B (False)) -> do do return (Atom (B False))
-                                                                                                                         _ -> throwError "if: expected boolean"
-                                                                        pat_cond_12 = do do return (Atom (B False))
-                                                                     in case kl_V2506 of
-                                                                            !(kl_V2506@(Cons (!kl_V2506h)
-                                                                                             (!kl_V2506t))) -> pat_cond_1 kl_V2506 kl_V2506h kl_V2506t
-                                                                            _ -> pat_cond_12
-                                                        case kl_if_0 of
-                                                            Atom (B (True)) -> do !appl_13 <- kl_V2506 `pseq` tl kl_V2506
-                                                                                  !appl_14 <- appl_13 `pseq` tl appl_13
-                                                                                  !appl_15 <- appl_14 `pseq` hd appl_14
-                                                                                  !appl_16 <- appl_15 `pseq` kl_snd appl_15
-                                                                                  !appl_17 <- kl_V2505 `pseq` (appl_16 `pseq` kl_shen_rule_RBhorn_clause_head kl_V2505 appl_16)
-                                                                                  !appl_18 <- kl_V2506 `pseq` hd kl_V2506
-                                                                                  !appl_19 <- kl_V2506 `pseq` tl kl_V2506
-                                                                                  !appl_20 <- appl_19 `pseq` hd appl_19
-                                                                                  !appl_21 <- kl_V2506 `pseq` tl kl_V2506
-                                                                                  !appl_22 <- appl_21 `pseq` tl appl_21
-                                                                                  !appl_23 <- appl_22 `pseq` hd appl_22
-                                                                                  !appl_24 <- appl_23 `pseq` kl_fst appl_23
-                                                                                  !appl_25 <- appl_18 `pseq` (appl_20 `pseq` (appl_24 `pseq` kl_shen_rule_RBhorn_clause_body appl_18 appl_20 appl_24))
-                                                                                  !appl_26 <- appl_25 `pseq` klCons appl_25 (Types.Atom Types.Nil)
-                                                                                  !appl_27 <- appl_26 `pseq` klCons (Types.Atom (Types.UnboundSym ":-")) appl_26
-                                                                                  appl_17 `pseq` (appl_27 `pseq` klCons appl_17 appl_27)
-                                                            Atom (B (False)) -> do do let !aw_28 = Types.Atom (Types.UnboundSym "shen.f_error")
-                                                                                      applyWrapper aw_28 [ApplC (wrapNamed "shen.rule->horn-clause" kl_shen_rule_RBhorn_clause)]
-                                                            _ -> throwError "if: expected boolean"
-
-kl_shen_rule_RBhorn_clause_head :: Types.KLValue ->
-                                   Types.KLValue -> Types.KLContext Types.Env Types.KLValue
-kl_shen_rule_RBhorn_clause_head (!kl_V2509) (!kl_V2510) = do !appl_0 <- kl_V2510 `pseq` kl_shen_mode_ify kl_V2510
-                                                             !appl_1 <- klCons (Types.Atom (Types.UnboundSym "Context_1957")) (Types.Atom Types.Nil)
-                                                             !appl_2 <- appl_0 `pseq` (appl_1 `pseq` klCons appl_0 appl_1)
-                                                             kl_V2509 `pseq` (appl_2 `pseq` klCons kl_V2509 appl_2)
-
-kl_shen_mode_ify :: Types.KLValue ->
-                    Types.KLContext Types.Env Types.KLValue
-kl_shen_mode_ify (!kl_V2512) = do let pat_cond_0 kl_V2512 kl_V2512h kl_V2512t kl_V2512tt kl_V2512tth = do !appl_1 <- klCons (ApplC (wrapNamed "+" add)) (Types.Atom Types.Nil)
-                                                                                                          !appl_2 <- kl_V2512tth `pseq` (appl_1 `pseq` klCons kl_V2512tth appl_1)
-                                                                                                          !appl_3 <- appl_2 `pseq` klCons (Types.Atom (Types.UnboundSym "mode")) appl_2
-                                                                                                          !appl_4 <- appl_3 `pseq` klCons appl_3 (Types.Atom Types.Nil)
-                                                                                                          !appl_5 <- appl_4 `pseq` klCons (Types.Atom (Types.UnboundSym ":")) appl_4
-                                                                                                          !appl_6 <- kl_V2512h `pseq` (appl_5 `pseq` klCons kl_V2512h appl_5)
-                                                                                                          !appl_7 <- klCons (ApplC (wrapNamed "-" Primitives.subtract)) (Types.Atom Types.Nil)
-                                                                                                          !appl_8 <- appl_6 `pseq` (appl_7 `pseq` klCons appl_6 appl_7)
-                                                                                                          appl_8 `pseq` klCons (Types.Atom (Types.UnboundSym "mode")) appl_8
-                                      pat_cond_9 = do do return kl_V2512
-                                   in case kl_V2512 of
-                                          !(kl_V2512@(Cons (!kl_V2512h)
-                                                           (!(kl_V2512t@(Cons (Atom (UnboundSym ":"))
-                                                                              (!(kl_V2512tt@(Cons (!kl_V2512tth)
-                                                                                                  (Atom (Nil)))))))))) -> pat_cond_0 kl_V2512 kl_V2512h kl_V2512t kl_V2512tt kl_V2512tth
-                                          !(kl_V2512@(Cons (!kl_V2512h)
-                                                           (!(kl_V2512t@(Cons (ApplC (PL ":" _))
-                                                                              (!(kl_V2512tt@(Cons (!kl_V2512tth)
-                                                                                                  (Atom (Nil)))))))))) -> pat_cond_0 kl_V2512 kl_V2512h kl_V2512t kl_V2512tt kl_V2512tth
-                                          !(kl_V2512@(Cons (!kl_V2512h)
-                                                           (!(kl_V2512t@(Cons (ApplC (Func ":" _))
-                                                                              (!(kl_V2512tt@(Cons (!kl_V2512tth)
-                                                                                                  (Atom (Nil)))))))))) -> pat_cond_0 kl_V2512 kl_V2512h kl_V2512t kl_V2512tt kl_V2512tth
-                                          _ -> pat_cond_9
-
-kl_shen_rule_RBhorn_clause_body :: Types.KLValue ->
-                                   Types.KLValue ->
-                                   Types.KLValue -> Types.KLContext Types.Env Types.KLValue
-kl_shen_rule_RBhorn_clause_body (!kl_V2516) (!kl_V2517) (!kl_V2518) = do let !appl_0 = ApplC (Func "lambda" (Context (\(!kl_Variables) -> do let !appl_1 = ApplC (Func "lambda" (Context (\(!kl_Predicates) -> do let !appl_2 = ApplC (Func "lambda" (Context (\(!kl_SearchLiterals) -> do let !appl_3 = ApplC (Func "lambda" (Context (\(!kl_SearchClauses) -> do let !appl_4 = ApplC (Func "lambda" (Context (\(!kl_SideLiterals) -> do let !appl_5 = ApplC (Func "lambda" (Context (\(!kl_PremissLiterals) -> do !appl_6 <- kl_SideLiterals `pseq` (kl_PremissLiterals `pseq` kl_append kl_SideLiterals kl_PremissLiterals)
-                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                    kl_SearchLiterals `pseq` (appl_6 `pseq` kl_append kl_SearchLiterals appl_6))))
-                                                                                                                                                                                                                                                                                                                                                                                                                                          let !appl_7 = ApplC (Func "lambda" (Context (\(!kl_X) -> do !appl_8 <- kl_V2518 `pseq` kl_emptyP kl_V2518
-                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                      kl_X `pseq` (appl_8 `pseq` kl_shen_construct_premiss_literal kl_X appl_8))))
-                                                                                                                                                                                                                                                                                                                                                                                                                                          !appl_9 <- appl_7 `pseq` (kl_V2517 `pseq` kl_map appl_7 kl_V2517)
-                                                                                                                                                                                                                                                                                                                                                                                                                                          appl_9 `pseq` applyWrapper appl_5 [appl_9])))
-                                                                                                                                                                                                                                                                                                                                                                   !appl_10 <- kl_V2516 `pseq` kl_shen_construct_side_literals kl_V2516
-                                                                                                                                                                                                                                                                                                                                                                   appl_10 `pseq` applyWrapper appl_4 [appl_10])))
-                                                                                                                                                                                                                                                                                           !appl_11 <- kl_Predicates `pseq` (kl_V2518 `pseq` (kl_Variables `pseq` kl_shen_construct_search_clauses kl_Predicates kl_V2518 kl_Variables))
-                                                                                                                                                                                                                                                                                           appl_11 `pseq` applyWrapper appl_3 [appl_11])))
-                                                                                                                                                                                                                  !appl_12 <- kl_Predicates `pseq` (kl_Variables `pseq` kl_shen_construct_search_literals kl_Predicates kl_Variables (Types.Atom (Types.UnboundSym "Context_1957")) (Types.Atom (Types.UnboundSym "Context1_1957")))
-                                                                                                                                                                                                                  appl_12 `pseq` applyWrapper appl_2 [appl_12])))
-                                                                                                                                             let !appl_13 = ApplC (Func "lambda" (Context (\(!kl_X) -> do kl_gensym (Types.Atom (Types.UnboundSym "shen.cl")))))
-                                                                                                                                             !appl_14 <- appl_13 `pseq` (kl_V2518 `pseq` kl_map appl_13 kl_V2518)
-                                                                                                                                             appl_14 `pseq` applyWrapper appl_1 [appl_14])))
-                                                                         let !appl_15 = ApplC (Func "lambda" (Context (\(!kl_X) -> do kl_X `pseq` kl_shen_extract_vars kl_X)))
-                                                                         !appl_16 <- appl_15 `pseq` (kl_V2518 `pseq` kl_map appl_15 kl_V2518)
-                                                                         appl_16 `pseq` applyWrapper appl_0 [appl_16]
-
-kl_shen_construct_search_literals :: Types.KLValue ->
-                                     Types.KLValue ->
-                                     Types.KLValue ->
-                                     Types.KLValue -> Types.KLContext Types.Env Types.KLValue
-kl_shen_construct_search_literals (!kl_V2527) (!kl_V2528) (!kl_V2529) (!kl_V2530) = do !kl_if_0 <- let pat_cond_1 = do let pat_cond_2 = do return (Atom (B True))
-                                                                                                                           pat_cond_3 = do do return (Atom (B False))
-                                                                                                                        in case kl_V2528 of
-                                                                                                                               kl_V2528@(Atom (Nil)) -> pat_cond_2
-                                                                                                                               _ -> pat_cond_3
-                                                                                                       pat_cond_4 = do do return (Atom (B False))
-                                                                                                    in case kl_V2527 of
-                                                                                                           kl_V2527@(Atom (Nil)) -> pat_cond_1
-                                                                                                           _ -> pat_cond_4
-                                                                                       case kl_if_0 of
-                                                                                           Atom (B (True)) -> do return (Types.Atom Types.Nil)
-                                                                                           Atom (B (False)) -> do do kl_V2527 `pseq` (kl_V2528 `pseq` (kl_V2529 `pseq` (kl_V2530 `pseq` kl_shen_csl_help kl_V2527 kl_V2528 kl_V2529 kl_V2530)))
-                                                                                           _ -> throwError "if: expected boolean"
-
-kl_shen_csl_help :: Types.KLValue ->
-                    Types.KLValue ->
-                    Types.KLValue ->
-                    Types.KLValue -> Types.KLContext Types.Env Types.KLValue
-kl_shen_csl_help (!kl_V2537) (!kl_V2538) (!kl_V2539) (!kl_V2540) = do !kl_if_0 <- let pat_cond_1 = do let pat_cond_2 = do return (Atom (B True))
-                                                                                                          pat_cond_3 = do do return (Atom (B False))
-                                                                                                       in case kl_V2538 of
-                                                                                                              kl_V2538@(Atom (Nil)) -> pat_cond_2
-                                                                                                              _ -> pat_cond_3
-                                                                                      pat_cond_4 = do do return (Atom (B False))
-                                                                                   in case kl_V2537 of
-                                                                                          kl_V2537@(Atom (Nil)) -> pat_cond_1
-                                                                                          _ -> pat_cond_4
-                                                                      case kl_if_0 of
-                                                                          Atom (B (True)) -> do !appl_5 <- kl_V2539 `pseq` klCons kl_V2539 (Types.Atom Types.Nil)
-                                                                                                !appl_6 <- appl_5 `pseq` klCons (Types.Atom (Types.UnboundSym "ContextOut_1957")) appl_5
-                                                                                                !appl_7 <- appl_6 `pseq` klCons (Types.Atom (Types.UnboundSym "bind")) appl_6
-                                                                                                appl_7 `pseq` klCons appl_7 (Types.Atom Types.Nil)
-                                                                          Atom (B (False)) -> do !kl_if_8 <- let pat_cond_9 kl_V2537 kl_V2537h kl_V2537t = do let pat_cond_10 kl_V2538 kl_V2538h kl_V2538t = do return (Atom (B True))
-                                                                                                                                                                  pat_cond_11 = do do return (Atom (B False))
-                                                                                                                                                               in case kl_V2538 of
-                                                                                                                                                                      !(kl_V2538@(Cons (!kl_V2538h)
-                                                                                                                                                                                       (!kl_V2538t))) -> pat_cond_10 kl_V2538 kl_V2538h kl_V2538t
-                                                                                                                                                                      _ -> pat_cond_11
-                                                                                                                 pat_cond_12 = do do return (Atom (B False))
-                                                                                                              in case kl_V2537 of
-                                                                                                                     !(kl_V2537@(Cons (!kl_V2537h)
-                                                                                                                                      (!kl_V2537t))) -> pat_cond_9 kl_V2537 kl_V2537h kl_V2537t
-                                                                                                                     _ -> pat_cond_12
-                                                                                                 case kl_if_8 of
-                                                                                                     Atom (B (True)) -> do !appl_13 <- kl_V2537 `pseq` hd kl_V2537
-                                                                                                                           !appl_14 <- kl_V2538 `pseq` hd kl_V2538
-                                                                                                                           !appl_15 <- kl_V2540 `pseq` (appl_14 `pseq` klCons kl_V2540 appl_14)
-                                                                                                                           !appl_16 <- kl_V2539 `pseq` (appl_15 `pseq` klCons kl_V2539 appl_15)
-                                                                                                                           !appl_17 <- appl_13 `pseq` (appl_16 `pseq` klCons appl_13 appl_16)
-                                                                                                                           !appl_18 <- kl_V2537 `pseq` tl kl_V2537
-                                                                                                                           !appl_19 <- kl_V2538 `pseq` tl kl_V2538
-                                                                                                                           !appl_20 <- kl_gensym (Types.Atom (Types.UnboundSym "Context"))
-                                                                                                                           !appl_21 <- appl_18 `pseq` (appl_19 `pseq` (kl_V2540 `pseq` (appl_20 `pseq` kl_shen_csl_help appl_18 appl_19 kl_V2540 appl_20)))
-                                                                                                                           appl_17 `pseq` (appl_21 `pseq` klCons appl_17 appl_21)
-                                                                                                     Atom (B (False)) -> do do let !aw_22 = Types.Atom (Types.UnboundSym "shen.f_error")
-                                                                                                                               applyWrapper aw_22 [ApplC (wrapNamed "shen.csl-help" kl_shen_csl_help)]
-                                                                                                     _ -> throwError "if: expected boolean"
-                                                                          _ -> throwError "if: expected boolean"
-
-kl_shen_construct_search_clauses :: Types.KLValue ->
-                                    Types.KLValue ->
-                                    Types.KLValue -> Types.KLContext Types.Env Types.KLValue
-kl_shen_construct_search_clauses (!kl_V2544) (!kl_V2545) (!kl_V2546) = do !kl_if_0 <- let pat_cond_1 = do !kl_if_2 <- let pat_cond_3 = do let pat_cond_4 = do return (Atom (B True))
-                                                                                                                                              pat_cond_5 = do do return (Atom (B False))
-                                                                                                                                           in case kl_V2546 of
-                                                                                                                                                  kl_V2546@(Atom (Nil)) -> pat_cond_4
-                                                                                                                                                  _ -> pat_cond_5
-                                                                                                                          pat_cond_6 = do do return (Atom (B False))
-                                                                                                                       in case kl_V2545 of
-                                                                                                                              kl_V2545@(Atom (Nil)) -> pat_cond_3
-                                                                                                                              _ -> pat_cond_6
-                                                                                                          case kl_if_2 of
-                                                                                                              Atom (B (True)) -> do return (Atom (B True))
-                                                                                                              Atom (B (False)) -> do do return (Atom (B False))
-                                                                                                              _ -> throwError "if: expected boolean"
-                                                                                          pat_cond_7 = do do return (Atom (B False))
-                                                                                       in case kl_V2544 of
-                                                                                              kl_V2544@(Atom (Nil)) -> pat_cond_1
-                                                                                              _ -> pat_cond_7
-                                                                          case kl_if_0 of
-                                                                              Atom (B (True)) -> do return (Types.Atom (Types.UnboundSym "shen.skip"))
-                                                                              Atom (B (False)) -> do !kl_if_8 <- let pat_cond_9 kl_V2544 kl_V2544h kl_V2544t = do !kl_if_10 <- let pat_cond_11 kl_V2545 kl_V2545h kl_V2545t = do let pat_cond_12 kl_V2546 kl_V2546h kl_V2546t = do return (Atom (B True))
-                                                                                                                                                                                                                                     pat_cond_13 = do do return (Atom (B False))
-                                                                                                                                                                                                                                  in case kl_V2546 of
-                                                                                                                                                                                                                                         !(kl_V2546@(Cons (!kl_V2546h)
-                                                                                                                                                                                                                                                          (!kl_V2546t))) -> pat_cond_12 kl_V2546 kl_V2546h kl_V2546t
-                                                                                                                                                                                                                                         _ -> pat_cond_13
-                                                                                                                                                                                   pat_cond_14 = do do return (Atom (B False))
-                                                                                                                                                                                in case kl_V2545 of
-                                                                                                                                                                                       !(kl_V2545@(Cons (!kl_V2545h)
-                                                                                                                                                                                                        (!kl_V2545t))) -> pat_cond_11 kl_V2545 kl_V2545h kl_V2545t
-                                                                                                                                                                                       _ -> pat_cond_14
-                                                                                                                                                                  case kl_if_10 of
-                                                                                                                                                                      Atom (B (True)) -> do return (Atom (B True))
-                                                                                                                                                                      Atom (B (False)) -> do do return (Atom (B False))
-                                                                                                                                                                      _ -> throwError "if: expected boolean"
-                                                                                                                     pat_cond_15 = do do return (Atom (B False))
-                                                                                                                  in case kl_V2544 of
-                                                                                                                         !(kl_V2544@(Cons (!kl_V2544h)
-                                                                                                                                          (!kl_V2544t))) -> pat_cond_9 kl_V2544 kl_V2544h kl_V2544t
-                                                                                                                         _ -> pat_cond_15
-                                                                                                     case kl_if_8 of
-                                                                                                         Atom (B (True)) -> do !appl_16 <- kl_V2544 `pseq` hd kl_V2544
-                                                                                                                               !appl_17 <- kl_V2545 `pseq` hd kl_V2545
-                                                                                                                               !appl_18 <- kl_V2546 `pseq` hd kl_V2546
-                                                                                                                               !appl_19 <- appl_16 `pseq` (appl_17 `pseq` (appl_18 `pseq` kl_shen_construct_search_clause appl_16 appl_17 appl_18))
-                                                                                                                               !appl_20 <- kl_V2544 `pseq` tl kl_V2544
-                                                                                                                               !appl_21 <- kl_V2545 `pseq` tl kl_V2545
-                                                                                                                               !appl_22 <- kl_V2546 `pseq` tl kl_V2546
-                                                                                                                               !appl_23 <- appl_20 `pseq` (appl_21 `pseq` (appl_22 `pseq` kl_shen_construct_search_clauses appl_20 appl_21 appl_22))
-                                                                                                                               appl_19 `pseq` (appl_23 `pseq` kl_do appl_19 appl_23)
-                                                                                                         Atom (B (False)) -> do do let !aw_24 = Types.Atom (Types.UnboundSym "shen.f_error")
-                                                                                                                                   applyWrapper aw_24 [ApplC (wrapNamed "shen.construct-search-clauses" kl_shen_construct_search_clauses)]
-                                                                                                         _ -> throwError "if: expected boolean"
-                                                                              _ -> throwError "if: expected boolean"
-
-kl_shen_construct_search_clause :: Types.KLValue ->
-                                   Types.KLValue ->
-                                   Types.KLValue -> Types.KLContext Types.Env Types.KLValue
-kl_shen_construct_search_clause (!kl_V2550) (!kl_V2551) (!kl_V2552) = do !appl_0 <- kl_V2550 `pseq` (kl_V2551 `pseq` (kl_V2552 `pseq` kl_shen_construct_base_search_clause kl_V2550 kl_V2551 kl_V2552))
-                                                                         !appl_1 <- kl_V2550 `pseq` (kl_V2551 `pseq` (kl_V2552 `pseq` kl_shen_construct_recursive_search_clause kl_V2550 kl_V2551 kl_V2552))
-                                                                         !appl_2 <- appl_1 `pseq` klCons appl_1 (Types.Atom Types.Nil)
-                                                                         !appl_3 <- appl_0 `pseq` (appl_2 `pseq` klCons appl_0 appl_2)
-                                                                         let !aw_4 = Types.Atom (Types.UnboundSym "shen.s-prolog")
-                                                                         appl_3 `pseq` applyWrapper aw_4 [appl_3]
-
-kl_shen_construct_base_search_clause :: Types.KLValue ->
-                                        Types.KLValue ->
-                                        Types.KLValue -> Types.KLContext Types.Env Types.KLValue
-kl_shen_construct_base_search_clause (!kl_V2556) (!kl_V2557) (!kl_V2558) = do !appl_0 <- kl_V2557 `pseq` kl_shen_mode_ify kl_V2557
-                                                                              !appl_1 <- appl_0 `pseq` klCons appl_0 (Types.Atom (Types.UnboundSym "In_1957"))
-                                                                              !appl_2 <- kl_V2558 `pseq` klCons (Types.Atom (Types.UnboundSym "In_1957")) kl_V2558
-                                                                              !appl_3 <- appl_1 `pseq` (appl_2 `pseq` klCons appl_1 appl_2)
-                                                                              !appl_4 <- kl_V2556 `pseq` (appl_3 `pseq` klCons kl_V2556 appl_3)
-                                                                              !appl_5 <- klCons (Types.Atom Types.Nil) (Types.Atom Types.Nil)
-                                                                              !appl_6 <- appl_5 `pseq` klCons (Types.Atom (Types.UnboundSym ":-")) appl_5
-                                                                              appl_4 `pseq` (appl_6 `pseq` klCons appl_4 appl_6)
-
-kl_shen_construct_recursive_search_clause :: Types.KLValue ->
-                                             Types.KLValue ->
-                                             Types.KLValue ->
-                                             Types.KLContext Types.Env Types.KLValue
-kl_shen_construct_recursive_search_clause (!kl_V2562) (!kl_V2563) (!kl_V2564) = do !appl_0 <- klCons (Types.Atom (Types.UnboundSym "Assumption_1957")) (Types.Atom (Types.UnboundSym "Assumptions_1957"))
-                                                                                   !appl_1 <- klCons (Types.Atom (Types.UnboundSym "Assumption_1957")) (Types.Atom (Types.UnboundSym "Out_1957"))
-                                                                                   !appl_2 <- appl_1 `pseq` (kl_V2564 `pseq` klCons appl_1 kl_V2564)
-                                                                                   !appl_3 <- appl_0 `pseq` (appl_2 `pseq` klCons appl_0 appl_2)
-                                                                                   !appl_4 <- kl_V2562 `pseq` (appl_3 `pseq` klCons kl_V2562 appl_3)
-                                                                                   !appl_5 <- kl_V2564 `pseq` klCons (Types.Atom (Types.UnboundSym "Out_1957")) kl_V2564
-                                                                                   !appl_6 <- appl_5 `pseq` klCons (Types.Atom (Types.UnboundSym "Assumptions_1957")) appl_5
-                                                                                   !appl_7 <- kl_V2562 `pseq` (appl_6 `pseq` klCons kl_V2562 appl_6)
-                                                                                   !appl_8 <- appl_7 `pseq` klCons appl_7 (Types.Atom Types.Nil)
-                                                                                   !appl_9 <- appl_8 `pseq` klCons appl_8 (Types.Atom Types.Nil)
-                                                                                   !appl_10 <- appl_9 `pseq` klCons (Types.Atom (Types.UnboundSym ":-")) appl_9
-                                                                                   appl_4 `pseq` (appl_10 `pseq` klCons appl_4 appl_10)
-
-kl_shen_construct_side_literals :: Types.KLValue ->
-                                   Types.KLContext Types.Env Types.KLValue
-kl_shen_construct_side_literals (!kl_V2570) = do let pat_cond_0 = do return (Types.Atom Types.Nil)
-                                                     pat_cond_1 kl_V2570 kl_V2570h kl_V2570ht kl_V2570hth kl_V2570t = do !appl_2 <- kl_V2570ht `pseq` klCons (Types.Atom (Types.UnboundSym "when")) kl_V2570ht
-                                                                                                                         !appl_3 <- kl_V2570t `pseq` kl_shen_construct_side_literals kl_V2570t
-                                                                                                                         appl_2 `pseq` (appl_3 `pseq` klCons appl_2 appl_3)
-                                                     pat_cond_4 kl_V2570 kl_V2570h kl_V2570ht kl_V2570hth kl_V2570htt kl_V2570htth kl_V2570t = do !appl_5 <- kl_V2570ht `pseq` klCons (Types.Atom (Types.UnboundSym "is")) kl_V2570ht
-                                                                                                                                                  !appl_6 <- kl_V2570t `pseq` kl_shen_construct_side_literals kl_V2570t
-                                                                                                                                                  appl_5 `pseq` (appl_6 `pseq` klCons appl_5 appl_6)
-                                                     pat_cond_7 kl_V2570 kl_V2570h kl_V2570t = do kl_V2570t `pseq` kl_shen_construct_side_literals kl_V2570t
-                                                     pat_cond_8 = do do let !aw_9 = Types.Atom (Types.UnboundSym "shen.f_error")
-                                                                        applyWrapper aw_9 [ApplC (wrapNamed "shen.construct-side-literals" kl_shen_construct_side_literals)]
-                                                  in case kl_V2570 of
-                                                         kl_V2570@(Atom (Nil)) -> pat_cond_0
-                                                         !(kl_V2570@(Cons (!(kl_V2570h@(Cons (Atom (UnboundSym "if"))
-                                                                                             (!(kl_V2570ht@(Cons (!kl_V2570hth)
-                                                                                                                 (Atom (Nil))))))))
-                                                                          (!kl_V2570t))) -> pat_cond_1 kl_V2570 kl_V2570h kl_V2570ht kl_V2570hth kl_V2570t
-                                                         !(kl_V2570@(Cons (!(kl_V2570h@(Cons (ApplC (PL "if"
-                                                                                                        _))
-                                                                                             (!(kl_V2570ht@(Cons (!kl_V2570hth)
-                                                                                                                 (Atom (Nil))))))))
-                                                                          (!kl_V2570t))) -> pat_cond_1 kl_V2570 kl_V2570h kl_V2570ht kl_V2570hth kl_V2570t
-                                                         !(kl_V2570@(Cons (!(kl_V2570h@(Cons (ApplC (Func "if"
-                                                                                                          _))
-                                                                                             (!(kl_V2570ht@(Cons (!kl_V2570hth)
-                                                                                                                 (Atom (Nil))))))))
-                                                                          (!kl_V2570t))) -> pat_cond_1 kl_V2570 kl_V2570h kl_V2570ht kl_V2570hth kl_V2570t
-                                                         !(kl_V2570@(Cons (!(kl_V2570h@(Cons (Atom (UnboundSym "let"))
-                                                                                             (!(kl_V2570ht@(Cons (!kl_V2570hth)
-                                                                                                                 (!(kl_V2570htt@(Cons (!kl_V2570htth)
-                                                                                                                                      (Atom (Nil)))))))))))
-                                                                          (!kl_V2570t))) -> pat_cond_4 kl_V2570 kl_V2570h kl_V2570ht kl_V2570hth kl_V2570htt kl_V2570htth kl_V2570t
-                                                         !(kl_V2570@(Cons (!(kl_V2570h@(Cons (ApplC (PL "let"
-                                                                                                        _))
-                                                                                             (!(kl_V2570ht@(Cons (!kl_V2570hth)
-                                                                                                                 (!(kl_V2570htt@(Cons (!kl_V2570htth)
-                                                                                                                                      (Atom (Nil)))))))))))
-                                                                          (!kl_V2570t))) -> pat_cond_4 kl_V2570 kl_V2570h kl_V2570ht kl_V2570hth kl_V2570htt kl_V2570htth kl_V2570t
-                                                         !(kl_V2570@(Cons (!(kl_V2570h@(Cons (ApplC (Func "let"
-                                                                                                          _))
-                                                                                             (!(kl_V2570ht@(Cons (!kl_V2570hth)
-                                                                                                                 (!(kl_V2570htt@(Cons (!kl_V2570htth)
-                                                                                                                                      (Atom (Nil)))))))))))
-                                                                          (!kl_V2570t))) -> pat_cond_4 kl_V2570 kl_V2570h kl_V2570ht kl_V2570hth kl_V2570htt kl_V2570htth kl_V2570t
-                                                         !(kl_V2570@(Cons (!kl_V2570h)
-                                                                          (!kl_V2570t))) -> pat_cond_7 kl_V2570 kl_V2570h kl_V2570t
-                                                         _ -> pat_cond_8
-
-kl_shen_construct_premiss_literal :: Types.KLValue ->
-                                     Types.KLValue -> Types.KLContext Types.Env Types.KLValue
-kl_shen_construct_premiss_literal (!kl_V2577) (!kl_V2578) = do !kl_if_0 <- kl_V2577 `pseq` kl_tupleP kl_V2577
-                                                               case kl_if_0 of
-                                                                   Atom (B (True)) -> do !appl_1 <- kl_V2577 `pseq` kl_snd kl_V2577
-                                                                                         !appl_2 <- appl_1 `pseq` kl_shen_recursive_cons_form appl_1
-                                                                                         !appl_3 <- kl_V2577 `pseq` kl_fst kl_V2577
-                                                                                         !appl_4 <- kl_V2578 `pseq` (appl_3 `pseq` kl_shen_construct_context kl_V2578 appl_3)
-                                                                                         !appl_5 <- appl_4 `pseq` klCons appl_4 (Types.Atom Types.Nil)
-                                                                                         !appl_6 <- appl_2 `pseq` (appl_5 `pseq` klCons appl_2 appl_5)
-                                                                                         appl_6 `pseq` klCons (Types.Atom (Types.UnboundSym "shen.t*")) appl_6
-                                                                   Atom (B (False)) -> do let pat_cond_7 = do !appl_8 <- klCons (Types.Atom (Types.UnboundSym "Throwcontrol")) (Types.Atom Types.Nil)
-                                                                                                              appl_8 `pseq` klCons (Types.Atom (Types.UnboundSym "cut")) appl_8
-                                                                                              pat_cond_9 = do do let !aw_10 = Types.Atom (Types.UnboundSym "shen.f_error")
-                                                                                                                 applyWrapper aw_10 [ApplC (wrapNamed "shen.construct-premiss-literal" kl_shen_construct_premiss_literal)]
-                                                                                           in case kl_V2577 of
-                                                                                                  kl_V2577@(Atom (UnboundSym "!")) -> pat_cond_7
-                                                                                                  kl_V2577@(ApplC (PL "!"
-                                                                                                                      _)) -> pat_cond_7
-                                                                                                  kl_V2577@(ApplC (Func "!"
-                                                                                                                        _)) -> pat_cond_7
-                                                                                                  _ -> pat_cond_9
-                                                                   _ -> throwError "if: expected boolean"
-
-kl_shen_construct_context :: Types.KLValue ->
-                             Types.KLValue -> Types.KLContext Types.Env Types.KLValue
-kl_shen_construct_context (!kl_V2581) (!kl_V2582) = do !kl_if_0 <- let pat_cond_1 = do let pat_cond_2 = do return (Atom (B True))
-                                                                                           pat_cond_3 = do do return (Atom (B False))
-                                                                                        in case kl_V2582 of
-                                                                                               kl_V2582@(Atom (Nil)) -> pat_cond_2
-                                                                                               _ -> pat_cond_3
-                                                                       pat_cond_4 = do do return (Atom (B False))
-                                                                    in case kl_V2581 of
-                                                                           kl_V2581@(Atom (UnboundSym "true")) -> pat_cond_1
-                                                                           kl_V2581@(Atom (B (True))) -> pat_cond_1
-                                                                           _ -> pat_cond_4
-                                                       case kl_if_0 of
-                                                           Atom (B (True)) -> do return (Types.Atom (Types.UnboundSym "Context_1957"))
-                                                           Atom (B (False)) -> do !kl_if_5 <- let pat_cond_6 = do let pat_cond_7 = do return (Atom (B True))
-                                                                                                                      pat_cond_8 = do do return (Atom (B False))
-                                                                                                                   in case kl_V2582 of
-                                                                                                                          kl_V2582@(Atom (Nil)) -> pat_cond_7
-                                                                                                                          _ -> pat_cond_8
-                                                                                                  pat_cond_9 = do do return (Atom (B False))
-                                                                                               in case kl_V2581 of
-                                                                                                      kl_V2581@(Atom (UnboundSym "false")) -> pat_cond_6
-                                                                                                      kl_V2581@(Atom (B (False))) -> pat_cond_6
-                                                                                                      _ -> pat_cond_9
-                                                                                  case kl_if_5 of
-                                                                                      Atom (B (True)) -> do return (Types.Atom (Types.UnboundSym "ContextOut_1957"))
-                                                                                      Atom (B (False)) -> do let pat_cond_10 kl_V2582 kl_V2582h kl_V2582t = do !appl_11 <- kl_V2582h `pseq` kl_shen_recursive_cons_form kl_V2582h
-                                                                                                                                                               !appl_12 <- kl_V2581 `pseq` (kl_V2582t `pseq` kl_shen_construct_context kl_V2581 kl_V2582t)
-                                                                                                                                                               !appl_13 <- appl_12 `pseq` klCons appl_12 (Types.Atom Types.Nil)
-                                                                                                                                                               !appl_14 <- appl_11 `pseq` (appl_13 `pseq` klCons appl_11 appl_13)
-                                                                                                                                                               appl_14 `pseq` klCons (ApplC (wrapNamed "cons" klCons)) appl_14
-                                                                                                                 pat_cond_15 = do do let !aw_16 = Types.Atom (Types.UnboundSym "shen.f_error")
-                                                                                                                                     applyWrapper aw_16 [ApplC (wrapNamed "shen.construct-context" kl_shen_construct_context)]
-                                                                                                              in case kl_V2582 of
-                                                                                                                     !(kl_V2582@(Cons (!kl_V2582h)
-                                                                                                                                      (!kl_V2582t))) -> pat_cond_10 kl_V2582 kl_V2582h kl_V2582t
-                                                                                                                     _ -> pat_cond_15
-                                                                                      _ -> throwError "if: expected boolean"
-                                                           _ -> throwError "if: expected boolean"
-
-kl_shen_recursive_cons_form :: Types.KLValue ->
-                               Types.KLContext Types.Env Types.KLValue
-kl_shen_recursive_cons_form (!kl_V2584) = do let pat_cond_0 kl_V2584 kl_V2584h kl_V2584t = do !appl_1 <- kl_V2584h `pseq` kl_shen_recursive_cons_form kl_V2584h
-                                                                                              !appl_2 <- kl_V2584t `pseq` kl_shen_recursive_cons_form kl_V2584t
-                                                                                              !appl_3 <- appl_2 `pseq` klCons appl_2 (Types.Atom Types.Nil)
-                                                                                              !appl_4 <- appl_1 `pseq` (appl_3 `pseq` klCons appl_1 appl_3)
-                                                                                              appl_4 `pseq` klCons (ApplC (wrapNamed "cons" klCons)) appl_4
-                                                 pat_cond_5 = do do return kl_V2584
-                                              in case kl_V2584 of
-                                                     !(kl_V2584@(Cons (!kl_V2584h)
-                                                                      (!kl_V2584t))) -> pat_cond_0 kl_V2584 kl_V2584h kl_V2584t
-                                                     _ -> pat_cond_5
-
-kl_preclude :: Types.KLValue ->
-               Types.KLContext Types.Env Types.KLValue
-kl_preclude (!kl_V2586) = do let !appl_0 = ApplC (Func "lambda" (Context (\(!kl_X) -> do let !aw_1 = Types.Atom (Types.UnboundSym "shen.intern-type")
-                                                                                         kl_X `pseq` applyWrapper aw_1 [kl_X])))
-                             !appl_2 <- appl_0 `pseq` (kl_V2586 `pseq` kl_map appl_0 kl_V2586)
-                             appl_2 `pseq` kl_shen_preclude_h appl_2
-
-kl_shen_preclude_h :: Types.KLValue ->
-                      Types.KLContext Types.Env Types.KLValue
-kl_shen_preclude_h (!kl_V2588) = do let !appl_0 = ApplC (Func "lambda" (Context (\(!kl_FilterDatatypes) -> do value (Types.Atom (Types.UnboundSym "shen.*datatypes*")))))
-                                    !appl_1 <- value (Types.Atom (Types.UnboundSym "shen.*datatypes*"))
-                                    !appl_2 <- appl_1 `pseq` (kl_V2588 `pseq` kl_difference appl_1 kl_V2588)
-                                    !appl_3 <- appl_2 `pseq` klSet (Types.Atom (Types.UnboundSym "shen.*datatypes*")) appl_2
-                                    appl_3 `pseq` applyWrapper appl_0 [appl_3]
-
-kl_include :: Types.KLValue ->
-              Types.KLContext Types.Env Types.KLValue
-kl_include (!kl_V2590) = do let !appl_0 = ApplC (Func "lambda" (Context (\(!kl_X) -> do let !aw_1 = Types.Atom (Types.UnboundSym "shen.intern-type")
-                                                                                        kl_X `pseq` applyWrapper aw_1 [kl_X])))
-                            !appl_2 <- appl_0 `pseq` (kl_V2590 `pseq` kl_map appl_0 kl_V2590)
-                            appl_2 `pseq` kl_shen_include_h appl_2
-
-kl_shen_include_h :: Types.KLValue ->
-                     Types.KLContext Types.Env Types.KLValue
-kl_shen_include_h (!kl_V2592) = do let !appl_0 = ApplC (Func "lambda" (Context (\(!kl_ValidTypes) -> do let !appl_1 = ApplC (Func "lambda" (Context (\(!kl_NewDatatypes) -> do value (Types.Atom (Types.UnboundSym "shen.*datatypes*")))))
-                                                                                                        !appl_2 <- value (Types.Atom (Types.UnboundSym "shen.*datatypes*"))
-                                                                                                        !appl_3 <- kl_ValidTypes `pseq` (appl_2 `pseq` kl_union kl_ValidTypes appl_2)
-                                                                                                        !appl_4 <- appl_3 `pseq` klSet (Types.Atom (Types.UnboundSym "shen.*datatypes*")) appl_3
-                                                                                                        appl_4 `pseq` applyWrapper appl_1 [appl_4])))
-                                   !appl_5 <- value (Types.Atom (Types.UnboundSym "shen.*alldatatypes*"))
-                                   !appl_6 <- kl_V2592 `pseq` (appl_5 `pseq` kl_intersection kl_V2592 appl_5)
-                                   appl_6 `pseq` applyWrapper appl_0 [appl_6]
-
-kl_preclude_all_but :: Types.KLValue ->
-                       Types.KLContext Types.Env Types.KLValue
-kl_preclude_all_but (!kl_V2594) = do !appl_0 <- value (Types.Atom (Types.UnboundSym "shen.*alldatatypes*"))
-                                     let !appl_1 = ApplC (Func "lambda" (Context (\(!kl_X) -> do let !aw_2 = Types.Atom (Types.UnboundSym "shen.intern-type")
-                                                                                                 kl_X `pseq` applyWrapper aw_2 [kl_X])))
-                                     !appl_3 <- appl_1 `pseq` (kl_V2594 `pseq` kl_map appl_1 kl_V2594)
-                                     !appl_4 <- appl_0 `pseq` (appl_3 `pseq` kl_difference appl_0 appl_3)
-                                     appl_4 `pseq` kl_shen_preclude_h appl_4
-
-kl_include_all_but :: Types.KLValue ->
-                      Types.KLContext Types.Env Types.KLValue
-kl_include_all_but (!kl_V2596) = do !appl_0 <- value (Types.Atom (Types.UnboundSym "shen.*alldatatypes*"))
-                                    let !appl_1 = ApplC (Func "lambda" (Context (\(!kl_X) -> do let !aw_2 = Types.Atom (Types.UnboundSym "shen.intern-type")
-                                                                                                kl_X `pseq` applyWrapper aw_2 [kl_X])))
-                                    !appl_3 <- appl_1 `pseq` (kl_V2596 `pseq` kl_map appl_1 kl_V2596)
-                                    !appl_4 <- appl_0 `pseq` (appl_3 `pseq` kl_difference appl_0 appl_3)
-                                    appl_4 `pseq` kl_shen_include_h appl_4
-
-kl_shen_synonyms_help :: Types.KLValue ->
-                         Types.KLContext Types.Env Types.KLValue
-kl_shen_synonyms_help (!kl_V2602) = do let pat_cond_0 = do !appl_1 <- value (Types.Atom (Types.UnboundSym "shen.*tc*"))
-                                                           let !appl_2 = ApplC (Func "lambda" (Context (\(!kl_X) -> do kl_X `pseq` kl_shen_demod_rule kl_X)))
-                                                           !appl_3 <- value (Types.Atom (Types.UnboundSym "shen.*synonyms*"))
-                                                           !appl_4 <- appl_2 `pseq` (appl_3 `pseq` kl_mapcan appl_2 appl_3)
-                                                           appl_1 `pseq` (appl_4 `pseq` kl_shen_demodulation_function appl_1 appl_4)
-                                           pat_cond_5 kl_V2602 kl_V2602h kl_V2602t kl_V2602th kl_V2602tt = do let !appl_6 = ApplC (Func "lambda" (Context (\(!kl_Vs) -> do !kl_if_7 <- kl_Vs `pseq` kl_emptyP kl_Vs
-                                                                                                                                                                           case kl_if_7 of
-                                                                                                                                                                               Atom (B (True)) -> do !appl_8 <- kl_V2602th `pseq` klCons kl_V2602th (Types.Atom Types.Nil)
-                                                                                                                                                                                                     !appl_9 <- kl_V2602h `pseq` (appl_8 `pseq` klCons kl_V2602h appl_8)
-                                                                                                                                                                                                     !appl_10 <- appl_9 `pseq` kl_shen_pushnew appl_9 (Types.Atom (Types.UnboundSym "shen.*synonyms*"))
-                                                                                                                                                                                                     !appl_11 <- kl_V2602tt `pseq` kl_shen_synonyms_help kl_V2602tt
-                                                                                                                                                                                                     appl_10 `pseq` (appl_11 `pseq` kl_do appl_10 appl_11)
-                                                                                                                                                                               Atom (B (False)) -> do do kl_V2602th `pseq` (kl_Vs `pseq` kl_shen_free_variable_warnings kl_V2602th kl_Vs)
-                                                                                                                                                                               _ -> throwError "if: expected boolean")))
-                                                                                                              !appl_12 <- kl_V2602th `pseq` kl_shen_extract_vars kl_V2602th
-                                                                                                              !appl_13 <- kl_V2602h `pseq` kl_shen_extract_vars kl_V2602h
-                                                                                                              !appl_14 <- appl_12 `pseq` (appl_13 `pseq` kl_difference appl_12 appl_13)
-                                                                                                              appl_14 `pseq` applyWrapper appl_6 [appl_14]
-                                           pat_cond_15 = do do simpleError (Types.Atom (Types.Str "odd number of synonyms\n"))
-                                        in case kl_V2602 of
-                                               kl_V2602@(Atom (Nil)) -> pat_cond_0
-                                               !(kl_V2602@(Cons (!kl_V2602h)
-                                                                (!(kl_V2602t@(Cons (!kl_V2602th)
-                                                                                   (!kl_V2602tt)))))) -> pat_cond_5 kl_V2602 kl_V2602h kl_V2602t kl_V2602th kl_V2602tt
-                                               _ -> pat_cond_15
-
-kl_shen_pushnew :: Types.KLValue ->
-                   Types.KLValue -> Types.KLContext Types.Env Types.KLValue
-kl_shen_pushnew (!kl_V2605) (!kl_V2606) = do !appl_0 <- kl_V2606 `pseq` value kl_V2606
-                                             !kl_if_1 <- kl_V2605 `pseq` (appl_0 `pseq` kl_elementP kl_V2605 appl_0)
-                                             case kl_if_1 of
-                                                 Atom (B (True)) -> do kl_V2606 `pseq` value kl_V2606
-                                                 Atom (B (False)) -> do do !appl_2 <- kl_V2606 `pseq` value kl_V2606
-                                                                           !appl_3 <- kl_V2605 `pseq` (appl_2 `pseq` klCons kl_V2605 appl_2)
-                                                                           kl_V2606 `pseq` (appl_3 `pseq` klSet kl_V2606 appl_3)
-                                                 _ -> throwError "if: expected boolean"
-
-kl_shen_demod_rule :: Types.KLValue ->
-                      Types.KLContext Types.Env Types.KLValue
-kl_shen_demod_rule (!kl_V2608) = do let pat_cond_0 kl_V2608 kl_V2608h kl_V2608t kl_V2608th = do let !aw_1 = Types.Atom (Types.UnboundSym "shen.rcons_form")
-                                                                                                !appl_2 <- kl_V2608h `pseq` applyWrapper aw_1 [kl_V2608h]
-                                                                                                let !aw_3 = Types.Atom (Types.UnboundSym "shen.rcons_form")
-                                                                                                !appl_4 <- kl_V2608th `pseq` applyWrapper aw_3 [kl_V2608th]
-                                                                                                !appl_5 <- appl_4 `pseq` klCons appl_4 (Types.Atom Types.Nil)
-                                                                                                !appl_6 <- appl_5 `pseq` klCons (Types.Atom (Types.UnboundSym "->")) appl_5
-                                                                                                appl_2 `pseq` (appl_6 `pseq` klCons appl_2 appl_6)
-                                        pat_cond_7 = do do let !aw_8 = Types.Atom (Types.UnboundSym "shen.f_error")
-                                                           applyWrapper aw_8 [ApplC (wrapNamed "shen.demod-rule" kl_shen_demod_rule)]
-                                     in case kl_V2608 of
-                                            !(kl_V2608@(Cons (!kl_V2608h)
-                                                             (!(kl_V2608t@(Cons (!kl_V2608th)
-                                                                                (Atom (Nil))))))) -> pat_cond_0 kl_V2608 kl_V2608h kl_V2608t kl_V2608th
-                                            _ -> pat_cond_7
-
-kl_shen_demodulation_function :: Types.KLValue ->
-                                 Types.KLValue -> Types.KLContext Types.Env Types.KLValue
-kl_shen_demodulation_function (!kl_V2611) (!kl_V2612) = do !appl_0 <- kl_tc (ApplC (wrapNamed "-" Primitives.subtract))
-                                                           !appl_1 <- kl_shen_default_rule
-                                                           !appl_2 <- kl_V2612 `pseq` (appl_1 `pseq` kl_append kl_V2612 appl_1)
-                                                           !appl_3 <- appl_2 `pseq` klCons (Types.Atom (Types.UnboundSym "shen.demod")) appl_2
-                                                           !appl_4 <- appl_3 `pseq` klCons (Types.Atom (Types.UnboundSym "define")) appl_3
-                                                           !appl_5 <- appl_4 `pseq` kl_eval appl_4
-                                                           !appl_6 <- case kl_V2611 of
-                                                                          Atom (B (True)) -> do kl_tc (ApplC (wrapNamed "+" add))
-                                                                          Atom (B (False)) -> do do return (Types.Atom (Types.UnboundSym "shen.skip"))
-                                                                          _ -> throwError "if: expected boolean"
-                                                           !appl_7 <- appl_6 `pseq` kl_do appl_6 (Types.Atom (Types.UnboundSym "synonyms"))
-                                                           !appl_8 <- appl_5 `pseq` (appl_7 `pseq` kl_do appl_5 appl_7)
-                                                           appl_0 `pseq` (appl_8 `pseq` kl_do appl_0 appl_8)
-
-kl_shen_default_rule :: Types.KLContext Types.Env Types.KLValue
-kl_shen_default_rule = do !appl_0 <- klCons (Types.Atom (Types.UnboundSym "X")) (Types.Atom Types.Nil)
-                          !appl_1 <- appl_0 `pseq` klCons (Types.Atom (Types.UnboundSym "->")) appl_0
-                          appl_1 `pseq` klCons (Types.Atom (Types.UnboundSym "X")) appl_1
-
-expr3 :: Types.KLContext Types.Env Types.KLValue
-expr3 = do (do return (Types.Atom (Types.Str "Copyright (c) 2015, Mark Tarver\n\nAll rights reserved.\n\nRedistribution and use in source and binary forms, with or without\nmodification, are permitted provided that the following conditions are met:\n1. Redistributions of source code must retain the above copyright\n   notice, this list of conditions and the following disclaimer.\n2. Redistributions in binary form must reproduce the above copyright\n   notice, this list of conditions and the following disclaimer in the\n   documentation and/or other materials provided with the distribution.\n3. The name of Mark Tarver may not be used to endorse or promote products\n   derived from this software without specific prior written permission.\n\nTHIS SOFTWARE IS PROVIDED BY Mark Tarver ''AS IS'' AND ANY\nEXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED\nWARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE\nDISCLAIMED. IN NO EVENT SHALL Mark Tarver BE LIABLE FOR ANY\nDIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES\n(INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;\nLOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND\nON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT\n(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS\nSOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE."))) `catchError` (\(!kl_E) -> do return (Types.Atom (Types.Str "E")))
+{-# LANGUAGE BangPatterns #-}+{-# LANGUAGE OverloadedStrings #-}+{-# LANGUAGE Strict #-}+{-# LANGUAGE StrictData #-}+{-# LANGUAGE ViewPatterns #-}++module Backend.Sequent where++import Control.Monad.Except+import Control.Parallel+import Environment+import Core.Primitives as Primitives+import Backend.Utils+import Core.Types+import Core.Utils+import Wrap+import Backend.Toplevel+import Backend.Core+import Backend.Sys++{-+Copyright (c) 2015, Mark Tarver+All rights reserved.++Redistribution and use in source and binary forms, with or without+modification, are permitted provided that the following conditions are met:++1. Redistributions of source code must retain the above copyright+   notice, this list of conditions and the following disclaimer.+2. Redistributions in binary form must reproduce the above copyright+   notice, this list of conditions and the following disclaimer in the+   documentation and/or other materials provided with the distribution.+3. The name of Mark Tarver may not be used to endorse or promote products+   derived from this software without specific prior written permission.++THIS SOFTWARE IS PROVIDED BY Mark Tarver ''AS IS'' AND ANY+EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED+WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE+DISCLAIMED. IN NO EVENT SHALL Mark Tarver BE LIABLE FOR ANY+DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES+(INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;+LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND+ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT+(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS+SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.+-}++kl_shen_datatype_error :: Core.Types.KLValue ->+                          Core.Types.KLContext Core.Types.Env Core.Types.KLValue+kl_shen_datatype_error (!kl_V2440) = do !kl_if_0 <- let pat_cond_1 kl_V2440 kl_V2440h kl_V2440t = do !kl_if_2 <- let pat_cond_3 kl_V2440t kl_V2440th kl_V2440tt = do let !appl_4 = Atom Nil+                                                                                                                                                                     !kl_if_5 <- appl_4 `pseq` (kl_V2440tt `pseq` eq appl_4 kl_V2440tt)+                                                                                                                                                                     case kl_if_5 of+                                                                                                                                                                         Atom (B (True)) -> do return (Atom (B True))+                                                                                                                                                                         Atom (B (False)) -> do do return (Atom (B False))+                                                                                                                                                                         _ -> throwError "if: expected boolean"+                                                                                                                     pat_cond_6 = do do return (Atom (B False))+                                                                                                                  in case kl_V2440t of+                                                                                                                         !(kl_V2440t@(Cons (!kl_V2440th)+                                                                                                                                           (!kl_V2440tt))) -> pat_cond_3 kl_V2440t kl_V2440th kl_V2440tt+                                                                                                                         _ -> pat_cond_6+                                                                                                     case kl_if_2 of+                                                                                                         Atom (B (True)) -> do return (Atom (B True))+                                                                                                         Atom (B (False)) -> do do return (Atom (B False))+                                                                                                         _ -> throwError "if: expected boolean"+                                                        pat_cond_7 = do do return (Atom (B False))+                                                     in case kl_V2440 of+                                                            !(kl_V2440@(Cons (!kl_V2440h)+                                                                             (!kl_V2440t))) -> pat_cond_1 kl_V2440 kl_V2440h kl_V2440t+                                                            _ -> pat_cond_7+                                        case kl_if_0 of+                                            Atom (B (True)) -> do !appl_8 <- kl_V2440 `pseq` hd kl_V2440+                                                                  let !aw_9 = Core.Types.Atom (Core.Types.UnboundSym "shen.next-50")+                                                                  !appl_10 <- appl_8 `pseq` applyWrapper aw_9 [Core.Types.Atom (Core.Types.N (Core.Types.KI 50)),+                                                                                                               appl_8]+                                                                  let !aw_11 = Core.Types.Atom (Core.Types.UnboundSym "shen.app")+                                                                  !appl_12 <- appl_10 `pseq` applyWrapper aw_11 [appl_10,+                                                                                                                 Core.Types.Atom (Core.Types.Str "\n"),+                                                                                                                 Core.Types.Atom (Core.Types.UnboundSym "shen.a")]+                                                                  !appl_13 <- appl_12 `pseq` cn (Core.Types.Atom (Core.Types.Str "datatype syntax error here:\n\n ")) appl_12+                                                                  appl_13 `pseq` simpleError appl_13+                                            Atom (B (False)) -> do do let !aw_14 = Core.Types.Atom (Core.Types.UnboundSym "shen.f_error")+                                                                      applyWrapper aw_14 [ApplC (wrapNamed "shen.datatype-error" kl_shen_datatype_error)]+                                            _ -> throwError "if: expected boolean"++kl_shen_LBdatatype_rulesRB :: Core.Types.KLValue ->+                              Core.Types.KLContext Core.Types.Env Core.Types.KLValue+kl_shen_LBdatatype_rulesRB (!kl_V2442) = do let !appl_0 = ApplC (Func "lambda" (Context (\(!kl_YaccParse) -> do let !aw_1 = Core.Types.Atom (Core.Types.UnboundSym "fail")+                                                                                                                !appl_2 <- applyWrapper aw_1 []+                                                                                                                !kl_if_3 <- kl_YaccParse `pseq` (appl_2 `pseq` eq kl_YaccParse appl_2)+                                                                                                                case kl_if_3 of+                                                                                                                    Atom (B (True)) -> do let !appl_4 = ApplC (Func "lambda" (Context (\(!kl_Parse_LBeRB) -> do let !aw_5 = Core.Types.Atom (Core.Types.UnboundSym "fail")+                                                                                                                                                                                                                !appl_6 <- applyWrapper aw_5 []+                                                                                                                                                                                                                !appl_7 <- appl_6 `pseq` (kl_Parse_LBeRB `pseq` eq appl_6 kl_Parse_LBeRB)+                                                                                                                                                                                                                !kl_if_8 <- appl_7 `pseq` kl_not appl_7+                                                                                                                                                                                                                case kl_if_8 of+                                                                                                                                                                                                                    Atom (B (True)) -> do !appl_9 <- kl_Parse_LBeRB `pseq` hd kl_Parse_LBeRB+                                                                                                                                                                                                                                          let !appl_10 = Atom Nil+                                                                                                                                                                                                                                          let !aw_11 = Core.Types.Atom (Core.Types.UnboundSym "shen.pair")+                                                                                                                                                                                                                                          appl_9 `pseq` (appl_10 `pseq` applyWrapper aw_11 [appl_9,+                                                                                                                                                                                                                                                                                            appl_10])+                                                                                                                                                                                                                    Atom (B (False)) -> do do let !aw_12 = Core.Types.Atom (Core.Types.UnboundSym "fail")+                                                                                                                                                                                                                                              applyWrapper aw_12 []+                                                                                                                                                                                                                    _ -> throwError "if: expected boolean")))+                                                                                                                                          let !aw_13 = Core.Types.Atom (Core.Types.UnboundSym "<e>")+                                                                                                                                          !appl_14 <- kl_V2442 `pseq` applyWrapper aw_13 [kl_V2442]+                                                                                                                                          appl_14 `pseq` applyWrapper appl_4 [appl_14]+                                                                                                                    Atom (B (False)) -> do do return kl_YaccParse+                                                                                                                    _ -> throwError "if: expected boolean")))+                                            let !appl_15 = ApplC (Func "lambda" (Context (\(!kl_Parse_shen_LBdatatype_ruleRB) -> do let !aw_16 = Core.Types.Atom (Core.Types.UnboundSym "fail")+                                                                                                                                    !appl_17 <- applyWrapper aw_16 []+                                                                                                                                    !appl_18 <- appl_17 `pseq` (kl_Parse_shen_LBdatatype_ruleRB `pseq` eq appl_17 kl_Parse_shen_LBdatatype_ruleRB)+                                                                                                                                    !kl_if_19 <- appl_18 `pseq` kl_not appl_18+                                                                                                                                    case kl_if_19 of+                                                                                                                                        Atom (B (True)) -> do let !appl_20 = ApplC (Func "lambda" (Context (\(!kl_Parse_shen_LBdatatype_rulesRB) -> do let !aw_21 = Core.Types.Atom (Core.Types.UnboundSym "fail")+                                                                                                                                                                                                                                                       !appl_22 <- applyWrapper aw_21 []+                                                                                                                                                                                                                                                       !appl_23 <- appl_22 `pseq` (kl_Parse_shen_LBdatatype_rulesRB `pseq` eq appl_22 kl_Parse_shen_LBdatatype_rulesRB)+                                                                                                                                                                                                                                                       !kl_if_24 <- appl_23 `pseq` kl_not appl_23+                                                                                                                                                                                                                                                       case kl_if_24 of+                                                                                                                                                                                                                                                           Atom (B (True)) -> do !appl_25 <- kl_Parse_shen_LBdatatype_rulesRB `pseq` hd kl_Parse_shen_LBdatatype_rulesRB+                                                                                                                                                                                                                                                                                 let !aw_26 = Core.Types.Atom (Core.Types.UnboundSym "shen.hdtl")+                                                                                                                                                                                                                                                                                 !appl_27 <- kl_Parse_shen_LBdatatype_ruleRB `pseq` applyWrapper aw_26 [kl_Parse_shen_LBdatatype_ruleRB]+                                                                                                                                                                                                                                                                                 let !aw_28 = Core.Types.Atom (Core.Types.UnboundSym "shen.hdtl")+                                                                                                                                                                                                                                                                                 !appl_29 <- kl_Parse_shen_LBdatatype_rulesRB `pseq` applyWrapper aw_28 [kl_Parse_shen_LBdatatype_rulesRB]+                                                                                                                                                                                                                                                                                 !appl_30 <- appl_27 `pseq` (appl_29 `pseq` klCons appl_27 appl_29)+                                                                                                                                                                                                                                                                                 let !aw_31 = Core.Types.Atom (Core.Types.UnboundSym "shen.pair")+                                                                                                                                                                                                                                                                                 appl_25 `pseq` (appl_30 `pseq` applyWrapper aw_31 [appl_25,+                                                                                                                                                                                                                                                                                                                                    appl_30])+                                                                                                                                                                                                                                                           Atom (B (False)) -> do do let !aw_32 = Core.Types.Atom (Core.Types.UnboundSym "fail")+                                                                                                                                                                                                                                                                                     applyWrapper aw_32 []+                                                                                                                                                                                                                                                           _ -> throwError "if: expected boolean")))+                                                                                                                                                              !appl_33 <- kl_Parse_shen_LBdatatype_ruleRB `pseq` kl_shen_LBdatatype_rulesRB kl_Parse_shen_LBdatatype_ruleRB+                                                                                                                                                              appl_33 `pseq` applyWrapper appl_20 [appl_33]+                                                                                                                                        Atom (B (False)) -> do do let !aw_34 = Core.Types.Atom (Core.Types.UnboundSym "fail")+                                                                                                                                                                  applyWrapper aw_34 []+                                                                                                                                        _ -> throwError "if: expected boolean")))+                                            !appl_35 <- kl_V2442 `pseq` kl_shen_LBdatatype_ruleRB kl_V2442+                                            !appl_36 <- appl_35 `pseq` applyWrapper appl_15 [appl_35]+                                            appl_36 `pseq` applyWrapper appl_0 [appl_36]++kl_shen_LBdatatype_ruleRB :: Core.Types.KLValue ->+                             Core.Types.KLContext Core.Types.Env Core.Types.KLValue+kl_shen_LBdatatype_ruleRB (!kl_V2444) = do let !appl_0 = ApplC (Func "lambda" (Context (\(!kl_YaccParse) -> do let !aw_1 = Core.Types.Atom (Core.Types.UnboundSym "fail")+                                                                                                               !appl_2 <- applyWrapper aw_1 []+                                                                                                               !kl_if_3 <- kl_YaccParse `pseq` (appl_2 `pseq` eq kl_YaccParse appl_2)+                                                                                                               case kl_if_3 of+                                                                                                                   Atom (B (True)) -> do let !appl_4 = ApplC (Func "lambda" (Context (\(!kl_Parse_shen_LBside_conditionsRB) -> do let !aw_5 = Core.Types.Atom (Core.Types.UnboundSym "fail")+                                                                                                                                                                                                                                  !appl_6 <- applyWrapper aw_5 []+                                                                                                                                                                                                                                  !appl_7 <- appl_6 `pseq` (kl_Parse_shen_LBside_conditionsRB `pseq` eq appl_6 kl_Parse_shen_LBside_conditionsRB)+                                                                                                                                                                                                                                  !kl_if_8 <- appl_7 `pseq` kl_not appl_7+                                                                                                                                                                                                                                  case kl_if_8 of+                                                                                                                                                                                                                                      Atom (B (True)) -> do let !appl_9 = ApplC (Func "lambda" (Context (\(!kl_Parse_shen_LBpremisesRB) -> do let !aw_10 = Core.Types.Atom (Core.Types.UnboundSym "fail")+                                                                                                                                                                                                                                                                                                                                              !appl_11 <- applyWrapper aw_10 []+                                                                                                                                                                                                                                                                                                                                              !appl_12 <- appl_11 `pseq` (kl_Parse_shen_LBpremisesRB `pseq` eq appl_11 kl_Parse_shen_LBpremisesRB)+                                                                                                                                                                                                                                                                                                                                              !kl_if_13 <- appl_12 `pseq` kl_not appl_12+                                                                                                                                                                                                                                                                                                                                              case kl_if_13 of+                                                                                                                                                                                                                                                                                                                                                  Atom (B (True)) -> do let !appl_14 = ApplC (Func "lambda" (Context (\(!kl_Parse_shen_LBdoubleunderlineRB) -> do let !aw_15 = Core.Types.Atom (Core.Types.UnboundSym "fail")+                                                                                                                                                                                                                                                                                                                                                                                                                                                                  !appl_16 <- applyWrapper aw_15 []+                                                                                                                                                                                                                                                                                                                                                                                                                                                                  !appl_17 <- appl_16 `pseq` (kl_Parse_shen_LBdoubleunderlineRB `pseq` eq appl_16 kl_Parse_shen_LBdoubleunderlineRB)+                                                                                                                                                                                                                                                                                                                                                                                                                                                                  !kl_if_18 <- appl_17 `pseq` kl_not appl_17+                                                                                                                                                                                                                                                                                                                                                                                                                                                                  case kl_if_18 of+                                                                                                                                                                                                                                                                                                                                                                                                                                                                      Atom (B (True)) -> do let !appl_19 = ApplC (Func "lambda" (Context (\(!kl_Parse_shen_LBconclusionRB) -> do let !aw_20 = Core.Types.Atom (Core.Types.UnboundSym "fail")+                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                 !appl_21 <- applyWrapper aw_20 []+                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                 !appl_22 <- appl_21 `pseq` (kl_Parse_shen_LBconclusionRB `pseq` eq appl_21 kl_Parse_shen_LBconclusionRB)+                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                 !kl_if_23 <- appl_22 `pseq` kl_not appl_22+                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                 case kl_if_23 of+                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                     Atom (B (True)) -> do !appl_24 <- kl_Parse_shen_LBconclusionRB `pseq` hd kl_Parse_shen_LBconclusionRB+                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                           let !aw_25 = Core.Types.Atom (Core.Types.UnboundSym "shen.hdtl")+                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                           !appl_26 <- kl_Parse_shen_LBside_conditionsRB `pseq` applyWrapper aw_25 [kl_Parse_shen_LBside_conditionsRB]+                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                           let !aw_27 = Core.Types.Atom (Core.Types.UnboundSym "shen.hdtl")+                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                           !appl_28 <- kl_Parse_shen_LBpremisesRB `pseq` applyWrapper aw_27 [kl_Parse_shen_LBpremisesRB]+                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                           let !aw_29 = Core.Types.Atom (Core.Types.UnboundSym "shen.hdtl")+                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                           !appl_30 <- kl_Parse_shen_LBconclusionRB `pseq` applyWrapper aw_29 [kl_Parse_shen_LBconclusionRB]+                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                           let !appl_31 = Atom Nil+                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                           !appl_32 <- appl_30 `pseq` (appl_31 `pseq` klCons appl_30 appl_31)+                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                           !appl_33 <- appl_28 `pseq` (appl_32 `pseq` klCons appl_28 appl_32)+                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                           !appl_34 <- appl_26 `pseq` (appl_33 `pseq` klCons appl_26 appl_33)+                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                           !appl_35 <- appl_34 `pseq` kl_shen_sequent (Core.Types.Atom (Core.Types.UnboundSym "shen.double")) appl_34+                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                           let !aw_36 = Core.Types.Atom (Core.Types.UnboundSym "shen.pair")+                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                           appl_24 `pseq` (appl_35 `pseq` applyWrapper aw_36 [appl_24,+                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                              appl_35])+                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                     Atom (B (False)) -> do do let !aw_37 = Core.Types.Atom (Core.Types.UnboundSym "fail")+                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                               applyWrapper aw_37 []+                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                     _ -> throwError "if: expected boolean")))+                                                                                                                                                                                                                                                                                                                                                                                                                                                                                            !appl_38 <- kl_Parse_shen_LBdoubleunderlineRB `pseq` kl_shen_LBconclusionRB kl_Parse_shen_LBdoubleunderlineRB+                                                                                                                                                                                                                                                                                                                                                                                                                                                                                            appl_38 `pseq` applyWrapper appl_19 [appl_38]+                                                                                                                                                                                                                                                                                                                                                                                                                                                                      Atom (B (False)) -> do do let !aw_39 = Core.Types.Atom (Core.Types.UnboundSym "fail")+                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                applyWrapper aw_39 []+                                                                                                                                                                                                                                                                                                                                                                                                                                                                      _ -> throwError "if: expected boolean")))+                                                                                                                                                                                                                                                                                                                                                                        !appl_40 <- kl_Parse_shen_LBpremisesRB `pseq` kl_shen_LBdoubleunderlineRB kl_Parse_shen_LBpremisesRB+                                                                                                                                                                                                                                                                                                                                                                        appl_40 `pseq` applyWrapper appl_14 [appl_40]+                                                                                                                                                                                                                                                                                                                                                  Atom (B (False)) -> do do let !aw_41 = Core.Types.Atom (Core.Types.UnboundSym "fail")+                                                                                                                                                                                                                                                                                                                                                                            applyWrapper aw_41 []+                                                                                                                                                                                                                                                                                                                                                  _ -> throwError "if: expected boolean")))+                                                                                                                                                                                                                                                            !appl_42 <- kl_Parse_shen_LBside_conditionsRB `pseq` kl_shen_LBpremisesRB kl_Parse_shen_LBside_conditionsRB+                                                                                                                                                                                                                                                            appl_42 `pseq` applyWrapper appl_9 [appl_42]+                                                                                                                                                                                                                                      Atom (B (False)) -> do do let !aw_43 = Core.Types.Atom (Core.Types.UnboundSym "fail")+                                                                                                                                                                                                                                                                applyWrapper aw_43 []+                                                                                                                                                                                                                                      _ -> throwError "if: expected boolean")))+                                                                                                                                         !appl_44 <- kl_V2444 `pseq` kl_shen_LBside_conditionsRB kl_V2444+                                                                                                                                         appl_44 `pseq` applyWrapper appl_4 [appl_44]+                                                                                                                   Atom (B (False)) -> do do return kl_YaccParse+                                                                                                                   _ -> throwError "if: expected boolean")))+                                           let !appl_45 = ApplC (Func "lambda" (Context (\(!kl_Parse_shen_LBside_conditionsRB) -> do let !aw_46 = Core.Types.Atom (Core.Types.UnboundSym "fail")+                                                                                                                                     !appl_47 <- applyWrapper aw_46 []+                                                                                                                                     !appl_48 <- appl_47 `pseq` (kl_Parse_shen_LBside_conditionsRB `pseq` eq appl_47 kl_Parse_shen_LBside_conditionsRB)+                                                                                                                                     !kl_if_49 <- appl_48 `pseq` kl_not appl_48+                                                                                                                                     case kl_if_49 of+                                                                                                                                         Atom (B (True)) -> do let !appl_50 = ApplC (Func "lambda" (Context (\(!kl_Parse_shen_LBpremisesRB) -> do let !aw_51 = Core.Types.Atom (Core.Types.UnboundSym "fail")+                                                                                                                                                                                                                                                  !appl_52 <- applyWrapper aw_51 []+                                                                                                                                                                                                                                                  !appl_53 <- appl_52 `pseq` (kl_Parse_shen_LBpremisesRB `pseq` eq appl_52 kl_Parse_shen_LBpremisesRB)+                                                                                                                                                                                                                                                  !kl_if_54 <- appl_53 `pseq` kl_not appl_53+                                                                                                                                                                                                                                                  case kl_if_54 of+                                                                                                                                                                                                                                                      Atom (B (True)) -> do let !appl_55 = ApplC (Func "lambda" (Context (\(!kl_Parse_shen_LBsingleunderlineRB) -> do let !aw_56 = Core.Types.Atom (Core.Types.UnboundSym "fail")+                                                                                                                                                                                                                                                                                                                                                                      !appl_57 <- applyWrapper aw_56 []+                                                                                                                                                                                                                                                                                                                                                                      !appl_58 <- appl_57 `pseq` (kl_Parse_shen_LBsingleunderlineRB `pseq` eq appl_57 kl_Parse_shen_LBsingleunderlineRB)+                                                                                                                                                                                                                                                                                                                                                                      !kl_if_59 <- appl_58 `pseq` kl_not appl_58+                                                                                                                                                                                                                                                                                                                                                                      case kl_if_59 of+                                                                                                                                                                                                                                                                                                                                                                          Atom (B (True)) -> do let !appl_60 = ApplC (Func "lambda" (Context (\(!kl_Parse_shen_LBconclusionRB) -> do let !aw_61 = Core.Types.Atom (Core.Types.UnboundSym "fail")+                                                                                                                                                                                                                                                                                                                                                                                                                                                                                     !appl_62 <- applyWrapper aw_61 []+                                                                                                                                                                                                                                                                                                                                                                                                                                                                                     !appl_63 <- appl_62 `pseq` (kl_Parse_shen_LBconclusionRB `pseq` eq appl_62 kl_Parse_shen_LBconclusionRB)+                                                                                                                                                                                                                                                                                                                                                                                                                                                                                     !kl_if_64 <- appl_63 `pseq` kl_not appl_63+                                                                                                                                                                                                                                                                                                                                                                                                                                                                                     case kl_if_64 of+                                                                                                                                                                                                                                                                                                                                                                                                                                                                                         Atom (B (True)) -> do !appl_65 <- kl_Parse_shen_LBconclusionRB `pseq` hd kl_Parse_shen_LBconclusionRB+                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                               let !aw_66 = Core.Types.Atom (Core.Types.UnboundSym "shen.hdtl")+                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                               !appl_67 <- kl_Parse_shen_LBside_conditionsRB `pseq` applyWrapper aw_66 [kl_Parse_shen_LBside_conditionsRB]+                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                               let !aw_68 = Core.Types.Atom (Core.Types.UnboundSym "shen.hdtl")+                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                               !appl_69 <- kl_Parse_shen_LBpremisesRB `pseq` applyWrapper aw_68 [kl_Parse_shen_LBpremisesRB]+                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                               let !aw_70 = Core.Types.Atom (Core.Types.UnboundSym "shen.hdtl")+                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                               !appl_71 <- kl_Parse_shen_LBconclusionRB `pseq` applyWrapper aw_70 [kl_Parse_shen_LBconclusionRB]+                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                               let !appl_72 = Atom Nil+                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                               !appl_73 <- appl_71 `pseq` (appl_72 `pseq` klCons appl_71 appl_72)+                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                               !appl_74 <- appl_69 `pseq` (appl_73 `pseq` klCons appl_69 appl_73)+                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                               !appl_75 <- appl_67 `pseq` (appl_74 `pseq` klCons appl_67 appl_74)+                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                               !appl_76 <- appl_75 `pseq` kl_shen_sequent (Core.Types.Atom (Core.Types.UnboundSym "shen.single")) appl_75+                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                               let !aw_77 = Core.Types.Atom (Core.Types.UnboundSym "shen.pair")+                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                               appl_65 `pseq` (appl_76 `pseq` applyWrapper aw_77 [appl_65,+                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                  appl_76])+                                                                                                                                                                                                                                                                                                                                                                                                                                                                                         Atom (B (False)) -> do do let !aw_78 = Core.Types.Atom (Core.Types.UnboundSym "fail")+                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                   applyWrapper aw_78 []+                                                                                                                                                                                                                                                                                                                                                                                                                                                                                         _ -> throwError "if: expected boolean")))+                                                                                                                                                                                                                                                                                                                                                                                                !appl_79 <- kl_Parse_shen_LBsingleunderlineRB `pseq` kl_shen_LBconclusionRB kl_Parse_shen_LBsingleunderlineRB+                                                                                                                                                                                                                                                                                                                                                                                                appl_79 `pseq` applyWrapper appl_60 [appl_79]+                                                                                                                                                                                                                                                                                                                                                                          Atom (B (False)) -> do do let !aw_80 = Core.Types.Atom (Core.Types.UnboundSym "fail")+                                                                                                                                                                                                                                                                                                                                                                                                    applyWrapper aw_80 []+                                                                                                                                                                                                                                                                                                                                                                          _ -> throwError "if: expected boolean")))+                                                                                                                                                                                                                                                                            !appl_81 <- kl_Parse_shen_LBpremisesRB `pseq` kl_shen_LBsingleunderlineRB kl_Parse_shen_LBpremisesRB+                                                                                                                                                                                                                                                                            appl_81 `pseq` applyWrapper appl_55 [appl_81]+                                                                                                                                                                                                                                                      Atom (B (False)) -> do do let !aw_82 = Core.Types.Atom (Core.Types.UnboundSym "fail")+                                                                                                                                                                                                                                                                                applyWrapper aw_82 []+                                                                                                                                                                                                                                                      _ -> throwError "if: expected boolean")))+                                                                                                                                                               !appl_83 <- kl_Parse_shen_LBside_conditionsRB `pseq` kl_shen_LBpremisesRB kl_Parse_shen_LBside_conditionsRB+                                                                                                                                                               appl_83 `pseq` applyWrapper appl_50 [appl_83]+                                                                                                                                         Atom (B (False)) -> do do let !aw_84 = Core.Types.Atom (Core.Types.UnboundSym "fail")+                                                                                                                                                                   applyWrapper aw_84 []+                                                                                                                                         _ -> throwError "if: expected boolean")))+                                           !appl_85 <- kl_V2444 `pseq` kl_shen_LBside_conditionsRB kl_V2444+                                           !appl_86 <- appl_85 `pseq` applyWrapper appl_45 [appl_85]+                                           appl_86 `pseq` applyWrapper appl_0 [appl_86]++kl_shen_LBside_conditionsRB :: Core.Types.KLValue ->+                               Core.Types.KLContext Core.Types.Env Core.Types.KLValue+kl_shen_LBside_conditionsRB (!kl_V2446) = do let !appl_0 = ApplC (Func "lambda" (Context (\(!kl_YaccParse) -> do let !aw_1 = Core.Types.Atom (Core.Types.UnboundSym "fail")+                                                                                                                 !appl_2 <- applyWrapper aw_1 []+                                                                                                                 !kl_if_3 <- kl_YaccParse `pseq` (appl_2 `pseq` eq kl_YaccParse appl_2)+                                                                                                                 case kl_if_3 of+                                                                                                                     Atom (B (True)) -> do let !appl_4 = ApplC (Func "lambda" (Context (\(!kl_Parse_LBeRB) -> do let !aw_5 = Core.Types.Atom (Core.Types.UnboundSym "fail")+                                                                                                                                                                                                                 !appl_6 <- applyWrapper aw_5 []+                                                                                                                                                                                                                 !appl_7 <- appl_6 `pseq` (kl_Parse_LBeRB `pseq` eq appl_6 kl_Parse_LBeRB)+                                                                                                                                                                                                                 !kl_if_8 <- appl_7 `pseq` kl_not appl_7+                                                                                                                                                                                                                 case kl_if_8 of+                                                                                                                                                                                                                     Atom (B (True)) -> do !appl_9 <- kl_Parse_LBeRB `pseq` hd kl_Parse_LBeRB+                                                                                                                                                                                                                                           let !appl_10 = Atom Nil+                                                                                                                                                                                                                                           let !aw_11 = Core.Types.Atom (Core.Types.UnboundSym "shen.pair")+                                                                                                                                                                                                                                           appl_9 `pseq` (appl_10 `pseq` applyWrapper aw_11 [appl_9,+                                                                                                                                                                                                                                                                                             appl_10])+                                                                                                                                                                                                                     Atom (B (False)) -> do do let !aw_12 = Core.Types.Atom (Core.Types.UnboundSym "fail")+                                                                                                                                                                                                                                               applyWrapper aw_12 []+                                                                                                                                                                                                                     _ -> throwError "if: expected boolean")))+                                                                                                                                           let !aw_13 = Core.Types.Atom (Core.Types.UnboundSym "<e>")+                                                                                                                                           !appl_14 <- kl_V2446 `pseq` applyWrapper aw_13 [kl_V2446]+                                                                                                                                           appl_14 `pseq` applyWrapper appl_4 [appl_14]+                                                                                                                     Atom (B (False)) -> do do return kl_YaccParse+                                                                                                                     _ -> throwError "if: expected boolean")))+                                             let !appl_15 = ApplC (Func "lambda" (Context (\(!kl_Parse_shen_LBside_conditionRB) -> do let !aw_16 = Core.Types.Atom (Core.Types.UnboundSym "fail")+                                                                                                                                      !appl_17 <- applyWrapper aw_16 []+                                                                                                                                      !appl_18 <- appl_17 `pseq` (kl_Parse_shen_LBside_conditionRB `pseq` eq appl_17 kl_Parse_shen_LBside_conditionRB)+                                                                                                                                      !kl_if_19 <- appl_18 `pseq` kl_not appl_18+                                                                                                                                      case kl_if_19 of+                                                                                                                                          Atom (B (True)) -> do let !appl_20 = ApplC (Func "lambda" (Context (\(!kl_Parse_shen_LBside_conditionsRB) -> do let !aw_21 = Core.Types.Atom (Core.Types.UnboundSym "fail")+                                                                                                                                                                                                                                                          !appl_22 <- applyWrapper aw_21 []+                                                                                                                                                                                                                                                          !appl_23 <- appl_22 `pseq` (kl_Parse_shen_LBside_conditionsRB `pseq` eq appl_22 kl_Parse_shen_LBside_conditionsRB)+                                                                                                                                                                                                                                                          !kl_if_24 <- appl_23 `pseq` kl_not appl_23+                                                                                                                                                                                                                                                          case kl_if_24 of+                                                                                                                                                                                                                                                              Atom (B (True)) -> do !appl_25 <- kl_Parse_shen_LBside_conditionsRB `pseq` hd kl_Parse_shen_LBside_conditionsRB+                                                                                                                                                                                                                                                                                    let !aw_26 = Core.Types.Atom (Core.Types.UnboundSym "shen.hdtl")+                                                                                                                                                                                                                                                                                    !appl_27 <- kl_Parse_shen_LBside_conditionRB `pseq` applyWrapper aw_26 [kl_Parse_shen_LBside_conditionRB]+                                                                                                                                                                                                                                                                                    let !aw_28 = Core.Types.Atom (Core.Types.UnboundSym "shen.hdtl")+                                                                                                                                                                                                                                                                                    !appl_29 <- kl_Parse_shen_LBside_conditionsRB `pseq` applyWrapper aw_28 [kl_Parse_shen_LBside_conditionsRB]+                                                                                                                                                                                                                                                                                    !appl_30 <- appl_27 `pseq` (appl_29 `pseq` klCons appl_27 appl_29)+                                                                                                                                                                                                                                                                                    let !aw_31 = Core.Types.Atom (Core.Types.UnboundSym "shen.pair")+                                                                                                                                                                                                                                                                                    appl_25 `pseq` (appl_30 `pseq` applyWrapper aw_31 [appl_25,+                                                                                                                                                                                                                                                                                                                                       appl_30])+                                                                                                                                                                                                                                                              Atom (B (False)) -> do do let !aw_32 = Core.Types.Atom (Core.Types.UnboundSym "fail")+                                                                                                                                                                                                                                                                                        applyWrapper aw_32 []+                                                                                                                                                                                                                                                              _ -> throwError "if: expected boolean")))+                                                                                                                                                                !appl_33 <- kl_Parse_shen_LBside_conditionRB `pseq` kl_shen_LBside_conditionsRB kl_Parse_shen_LBside_conditionRB+                                                                                                                                                                appl_33 `pseq` applyWrapper appl_20 [appl_33]+                                                                                                                                          Atom (B (False)) -> do do let !aw_34 = Core.Types.Atom (Core.Types.UnboundSym "fail")+                                                                                                                                                                    applyWrapper aw_34 []+                                                                                                                                          _ -> throwError "if: expected boolean")))+                                             !appl_35 <- kl_V2446 `pseq` kl_shen_LBside_conditionRB kl_V2446+                                             !appl_36 <- appl_35 `pseq` applyWrapper appl_15 [appl_35]+                                             appl_36 `pseq` applyWrapper appl_0 [appl_36]++kl_shen_LBside_conditionRB :: Core.Types.KLValue ->+                              Core.Types.KLContext Core.Types.Env Core.Types.KLValue+kl_shen_LBside_conditionRB (!kl_V2448) = do let !appl_0 = ApplC (Func "lambda" (Context (\(!kl_YaccParse) -> do let !aw_1 = Core.Types.Atom (Core.Types.UnboundSym "fail")+                                                                                                                !appl_2 <- applyWrapper aw_1 []+                                                                                                                !kl_if_3 <- kl_YaccParse `pseq` (appl_2 `pseq` eq kl_YaccParse appl_2)+                                                                                                                case kl_if_3 of+                                                                                                                    Atom (B (True)) -> do !appl_4 <- kl_V2448 `pseq` hd kl_V2448+                                                                                                                                          !kl_if_5 <- appl_4 `pseq` consP appl_4+                                                                                                                                          !kl_if_6 <- case kl_if_5 of+                                                                                                                                                          Atom (B (True)) -> do !appl_7 <- kl_V2448 `pseq` hd kl_V2448+                                                                                                                                                                                !appl_8 <- appl_7 `pseq` hd appl_7+                                                                                                                                                                                !kl_if_9 <- appl_8 `pseq` eq (Core.Types.Atom (Core.Types.UnboundSym "let")) appl_8+                                                                                                                                                                                case kl_if_9 of+                                                                                                                                                                                    Atom (B (True)) -> do return (Atom (B True))+                                                                                                                                                                                    Atom (B (False)) -> do do return (Atom (B False))+                                                                                                                                                                                    _ -> throwError "if: expected boolean"+                                                                                                                                                          Atom (B (False)) -> do do return (Atom (B False))+                                                                                                                                                          _ -> throwError "if: expected boolean"+                                                                                                                                          case kl_if_6 of+                                                                                                                                              Atom (B (True)) -> do let !appl_10 = ApplC (Func "lambda" (Context (\(!kl_Parse_shen_LBvariablePRB) -> do let !aw_11 = Core.Types.Atom (Core.Types.UnboundSym "fail")+                                                                                                                                                                                                                                                        !appl_12 <- applyWrapper aw_11 []+                                                                                                                                                                                                                                                        !appl_13 <- appl_12 `pseq` (kl_Parse_shen_LBvariablePRB `pseq` eq appl_12 kl_Parse_shen_LBvariablePRB)+                                                                                                                                                                                                                                                        !kl_if_14 <- appl_13 `pseq` kl_not appl_13+                                                                                                                                                                                                                                                        case kl_if_14 of+                                                                                                                                                                                                                                                            Atom (B (True)) -> do let !appl_15 = ApplC (Func "lambda" (Context (\(!kl_Parse_shen_LBexprRB) -> do let !aw_16 = Core.Types.Atom (Core.Types.UnboundSym "fail")+                                                                                                                                                                                                                                                                                                                                                                 !appl_17 <- applyWrapper aw_16 []+                                                                                                                                                                                                                                                                                                                                                                 !appl_18 <- appl_17 `pseq` (kl_Parse_shen_LBexprRB `pseq` eq appl_17 kl_Parse_shen_LBexprRB)+                                                                                                                                                                                                                                                                                                                                                                 !kl_if_19 <- appl_18 `pseq` kl_not appl_18+                                                                                                                                                                                                                                                                                                                                                                 case kl_if_19 of+                                                                                                                                                                                                                                                                                                                                                                     Atom (B (True)) -> do !appl_20 <- kl_Parse_shen_LBexprRB `pseq` hd kl_Parse_shen_LBexprRB+                                                                                                                                                                                                                                                                                                                                                                                           let !aw_21 = Core.Types.Atom (Core.Types.UnboundSym "shen.hdtl")+                                                                                                                                                                                                                                                                                                                                                                                           !appl_22 <- kl_Parse_shen_LBvariablePRB `pseq` applyWrapper aw_21 [kl_Parse_shen_LBvariablePRB]+                                                                                                                                                                                                                                                                                                                                                                                           let !aw_23 = Core.Types.Atom (Core.Types.UnboundSym "shen.hdtl")+                                                                                                                                                                                                                                                                                                                                                                                           !appl_24 <- kl_Parse_shen_LBexprRB `pseq` applyWrapper aw_23 [kl_Parse_shen_LBexprRB]+                                                                                                                                                                                                                                                                                                                                                                                           let !appl_25 = Atom Nil+                                                                                                                                                                                                                                                                                                                                                                                           !appl_26 <- appl_24 `pseq` (appl_25 `pseq` klCons appl_24 appl_25)+                                                                                                                                                                                                                                                                                                                                                                                           !appl_27 <- appl_22 `pseq` (appl_26 `pseq` klCons appl_22 appl_26)+                                                                                                                                                                                                                                                                                                                                                                                           !appl_28 <- appl_27 `pseq` klCons (Core.Types.Atom (Core.Types.UnboundSym "let")) appl_27+                                                                                                                                                                                                                                                                                                                                                                                           let !aw_29 = Core.Types.Atom (Core.Types.UnboundSym "shen.pair")+                                                                                                                                                                                                                                                                                                                                                                                           appl_20 `pseq` (appl_28 `pseq` applyWrapper aw_29 [appl_20,+                                                                                                                                                                                                                                                                                                                                                                                                                                              appl_28])+                                                                                                                                                                                                                                                                                                                                                                     Atom (B (False)) -> do do let !aw_30 = Core.Types.Atom (Core.Types.UnboundSym "fail")+                                                                                                                                                                                                                                                                                                                                                                                               applyWrapper aw_30 []+                                                                                                                                                                                                                                                                                                                                                                     _ -> throwError "if: expected boolean")))+                                                                                                                                                                                                                                                                                  !appl_31 <- kl_Parse_shen_LBvariablePRB `pseq` kl_shen_LBexprRB kl_Parse_shen_LBvariablePRB+                                                                                                                                                                                                                                                                                  appl_31 `pseq` applyWrapper appl_15 [appl_31]+                                                                                                                                                                                                                                                            Atom (B (False)) -> do do let !aw_32 = Core.Types.Atom (Core.Types.UnboundSym "fail")+                                                                                                                                                                                                                                                                                      applyWrapper aw_32 []+                                                                                                                                                                                                                                                            _ -> throwError "if: expected boolean")))+                                                                                                                                                                    !appl_33 <- kl_V2448 `pseq` hd kl_V2448+                                                                                                                                                                    !appl_34 <- appl_33 `pseq` tl appl_33+                                                                                                                                                                    let !aw_35 = Core.Types.Atom (Core.Types.UnboundSym "shen.hdtl")+                                                                                                                                                                    !appl_36 <- kl_V2448 `pseq` applyWrapper aw_35 [kl_V2448]+                                                                                                                                                                    let !aw_37 = Core.Types.Atom (Core.Types.UnboundSym "shen.pair")+                                                                                                                                                                    !appl_38 <- appl_34 `pseq` (appl_36 `pseq` applyWrapper aw_37 [appl_34,+                                                                                                                                                                                                                                   appl_36])+                                                                                                                                                                    !appl_39 <- appl_38 `pseq` kl_shen_LBvariablePRB appl_38+                                                                                                                                                                    appl_39 `pseq` applyWrapper appl_10 [appl_39]+                                                                                                                                              Atom (B (False)) -> do do let !aw_40 = Core.Types.Atom (Core.Types.UnboundSym "fail")+                                                                                                                                                                        applyWrapper aw_40 []+                                                                                                                                              _ -> throwError "if: expected boolean"+                                                                                                                    Atom (B (False)) -> do do return kl_YaccParse+                                                                                                                    _ -> throwError "if: expected boolean")))+                                            !appl_41 <- kl_V2448 `pseq` hd kl_V2448+                                            !kl_if_42 <- appl_41 `pseq` consP appl_41+                                            !kl_if_43 <- case kl_if_42 of+                                                             Atom (B (True)) -> do !appl_44 <- kl_V2448 `pseq` hd kl_V2448+                                                                                   !appl_45 <- appl_44 `pseq` hd appl_44+                                                                                   !kl_if_46 <- appl_45 `pseq` eq (Core.Types.Atom (Core.Types.UnboundSym "if")) appl_45+                                                                                   case kl_if_46 of+                                                                                       Atom (B (True)) -> do return (Atom (B True))+                                                                                       Atom (B (False)) -> do do return (Atom (B False))+                                                                                       _ -> throwError "if: expected boolean"+                                                             Atom (B (False)) -> do do return (Atom (B False))+                                                             _ -> throwError "if: expected boolean"+                                            !appl_47 <- case kl_if_43 of+                                                            Atom (B (True)) -> do let !appl_48 = ApplC (Func "lambda" (Context (\(!kl_Parse_shen_LBexprRB) -> do let !aw_49 = Core.Types.Atom (Core.Types.UnboundSym "fail")+                                                                                                                                                                 !appl_50 <- applyWrapper aw_49 []+                                                                                                                                                                 !appl_51 <- appl_50 `pseq` (kl_Parse_shen_LBexprRB `pseq` eq appl_50 kl_Parse_shen_LBexprRB)+                                                                                                                                                                 !kl_if_52 <- appl_51 `pseq` kl_not appl_51+                                                                                                                                                                 case kl_if_52 of+                                                                                                                                                                     Atom (B (True)) -> do !appl_53 <- kl_Parse_shen_LBexprRB `pseq` hd kl_Parse_shen_LBexprRB+                                                                                                                                                                                           let !aw_54 = Core.Types.Atom (Core.Types.UnboundSym "shen.hdtl")+                                                                                                                                                                                           !appl_55 <- kl_Parse_shen_LBexprRB `pseq` applyWrapper aw_54 [kl_Parse_shen_LBexprRB]+                                                                                                                                                                                           let !appl_56 = Atom Nil+                                                                                                                                                                                           !appl_57 <- appl_55 `pseq` (appl_56 `pseq` klCons appl_55 appl_56)+                                                                                                                                                                                           !appl_58 <- appl_57 `pseq` klCons (Core.Types.Atom (Core.Types.UnboundSym "if")) appl_57+                                                                                                                                                                                           let !aw_59 = Core.Types.Atom (Core.Types.UnboundSym "shen.pair")+                                                                                                                                                                                           appl_53 `pseq` (appl_58 `pseq` applyWrapper aw_59 [appl_53,+                                                                                                                                                                                                                                              appl_58])+                                                                                                                                                                     Atom (B (False)) -> do do let !aw_60 = Core.Types.Atom (Core.Types.UnboundSym "fail")+                                                                                                                                                                                               applyWrapper aw_60 []+                                                                                                                                                                     _ -> throwError "if: expected boolean")))+                                                                                  !appl_61 <- kl_V2448 `pseq` hd kl_V2448+                                                                                  !appl_62 <- appl_61 `pseq` tl appl_61+                                                                                  let !aw_63 = Core.Types.Atom (Core.Types.UnboundSym "shen.hdtl")+                                                                                  !appl_64 <- kl_V2448 `pseq` applyWrapper aw_63 [kl_V2448]+                                                                                  let !aw_65 = Core.Types.Atom (Core.Types.UnboundSym "shen.pair")+                                                                                  !appl_66 <- appl_62 `pseq` (appl_64 `pseq` applyWrapper aw_65 [appl_62,+                                                                                                                                                 appl_64])+                                                                                  !appl_67 <- appl_66 `pseq` kl_shen_LBexprRB appl_66+                                                                                  appl_67 `pseq` applyWrapper appl_48 [appl_67]+                                                            Atom (B (False)) -> do do let !aw_68 = Core.Types.Atom (Core.Types.UnboundSym "fail")+                                                                                      applyWrapper aw_68 []+                                                            _ -> throwError "if: expected boolean"+                                            appl_47 `pseq` applyWrapper appl_0 [appl_47]++kl_shen_LBvariablePRB :: Core.Types.KLValue ->+                         Core.Types.KLContext Core.Types.Env Core.Types.KLValue+kl_shen_LBvariablePRB (!kl_V2450) = do !appl_0 <- kl_V2450 `pseq` hd kl_V2450+                                       !kl_if_1 <- appl_0 `pseq` consP appl_0+                                       case kl_if_1 of+                                           Atom (B (True)) -> do let !appl_2 = ApplC (Func "lambda" (Context (\(!kl_Parse_X) -> do !kl_if_3 <- kl_Parse_X `pseq` kl_variableP kl_Parse_X+                                                                                                                                   case kl_if_3 of+                                                                                                                                       Atom (B (True)) -> do !appl_4 <- kl_V2450 `pseq` hd kl_V2450+                                                                                                                                                             !appl_5 <- appl_4 `pseq` tl appl_4+                                                                                                                                                             let !aw_6 = Core.Types.Atom (Core.Types.UnboundSym "shen.hdtl")+                                                                                                                                                             !appl_7 <- kl_V2450 `pseq` applyWrapper aw_6 [kl_V2450]+                                                                                                                                                             let !aw_8 = Core.Types.Atom (Core.Types.UnboundSym "shen.pair")+                                                                                                                                                             !appl_9 <- appl_5 `pseq` (appl_7 `pseq` applyWrapper aw_8 [appl_5,+                                                                                                                                                                                                                        appl_7])+                                                                                                                                                             !appl_10 <- appl_9 `pseq` hd appl_9+                                                                                                                                                             let !aw_11 = Core.Types.Atom (Core.Types.UnboundSym "shen.pair")+                                                                                                                                                             appl_10 `pseq` (kl_Parse_X `pseq` applyWrapper aw_11 [appl_10,+                                                                                                                                                                                                                   kl_Parse_X])+                                                                                                                                       Atom (B (False)) -> do do let !aw_12 = Core.Types.Atom (Core.Types.UnboundSym "fail")+                                                                                                                                                                 applyWrapper aw_12 []+                                                                                                                                       _ -> throwError "if: expected boolean")))+                                                                 !appl_13 <- kl_V2450 `pseq` hd kl_V2450+                                                                 !appl_14 <- appl_13 `pseq` hd appl_13+                                                                 appl_14 `pseq` applyWrapper appl_2 [appl_14]+                                           Atom (B (False)) -> do do let !aw_15 = Core.Types.Atom (Core.Types.UnboundSym "fail")+                                                                     applyWrapper aw_15 []+                                           _ -> throwError "if: expected boolean"++kl_shen_LBexprRB :: Core.Types.KLValue ->+                    Core.Types.KLContext Core.Types.Env Core.Types.KLValue+kl_shen_LBexprRB (!kl_V2452) = do !appl_0 <- kl_V2452 `pseq` hd kl_V2452+                                  !kl_if_1 <- appl_0 `pseq` consP appl_0+                                  case kl_if_1 of+                                      Atom (B (True)) -> do let !appl_2 = ApplC (Func "lambda" (Context (\(!kl_Parse_X) -> do let !appl_3 = Atom Nil+                                                                                                                              !appl_4 <- appl_3 `pseq` klCons (Core.Types.Atom (Core.Types.UnboundSym ";")) appl_3+                                                                                                                              !appl_5 <- appl_4 `pseq` klCons (Core.Types.Atom (Core.Types.UnboundSym ">>")) appl_4+                                                                                                                              !kl_if_6 <- kl_Parse_X `pseq` (appl_5 `pseq` kl_elementP kl_Parse_X appl_5)+                                                                                                                              !appl_7 <- case kl_if_6 of+                                                                                                                                             Atom (B (True)) -> do return (Atom (B True))+                                                                                                                                             Atom (B (False)) -> do do !kl_if_8 <- kl_Parse_X `pseq` kl_shen_singleunderlineP kl_Parse_X+                                                                                                                                                                       !kl_if_9 <- case kl_if_8 of+                                                                                                                                                                                       Atom (B (True)) -> do return (Atom (B True))+                                                                                                                                                                                       Atom (B (False)) -> do do !kl_if_10 <- kl_Parse_X `pseq` kl_shen_doubleunderlineP kl_Parse_X+                                                                                                                                                                                                                 case kl_if_10 of+                                                                                                                                                                                                                     Atom (B (True)) -> do return (Atom (B True))+                                                                                                                                                                                                                     Atom (B (False)) -> do do return (Atom (B False))+                                                                                                                                                                                                                     _ -> throwError "if: expected boolean"+                                                                                                                                                                                       _ -> throwError "if: expected boolean"+                                                                                                                                                                       case kl_if_9 of+                                                                                                                                                                           Atom (B (True)) -> do return (Atom (B True))+                                                                                                                                                                           Atom (B (False)) -> do do return (Atom (B False))+                                                                                                                                                                           _ -> throwError "if: expected boolean"+                                                                                                                                             _ -> throwError "if: expected boolean"+                                                                                                                              !kl_if_11 <- appl_7 `pseq` kl_not appl_7+                                                                                                                              case kl_if_11 of+                                                                                                                                  Atom (B (True)) -> do !appl_12 <- kl_V2452 `pseq` hd kl_V2452+                                                                                                                                                        !appl_13 <- appl_12 `pseq` tl appl_12+                                                                                                                                                        let !aw_14 = Core.Types.Atom (Core.Types.UnboundSym "shen.hdtl")+                                                                                                                                                        !appl_15 <- kl_V2452 `pseq` applyWrapper aw_14 [kl_V2452]+                                                                                                                                                        let !aw_16 = Core.Types.Atom (Core.Types.UnboundSym "shen.pair")+                                                                                                                                                        !appl_17 <- appl_13 `pseq` (appl_15 `pseq` applyWrapper aw_16 [appl_13,+                                                                                                                                                                                                                       appl_15])+                                                                                                                                                        !appl_18 <- appl_17 `pseq` hd appl_17+                                                                                                                                                        !appl_19 <- kl_Parse_X `pseq` kl_shen_remove_bar kl_Parse_X+                                                                                                                                                        let !aw_20 = Core.Types.Atom (Core.Types.UnboundSym "shen.pair")+                                                                                                                                                        appl_18 `pseq` (appl_19 `pseq` applyWrapper aw_20 [appl_18,+                                                                                                                                                                                                           appl_19])+                                                                                                                                  Atom (B (False)) -> do do let !aw_21 = Core.Types.Atom (Core.Types.UnboundSym "fail")+                                                                                                                                                            applyWrapper aw_21 []+                                                                                                                                  _ -> throwError "if: expected boolean")))+                                                            !appl_22 <- kl_V2452 `pseq` hd kl_V2452+                                                            !appl_23 <- appl_22 `pseq` hd appl_22+                                                            appl_23 `pseq` applyWrapper appl_2 [appl_23]+                                      Atom (B (False)) -> do do let !aw_24 = Core.Types.Atom (Core.Types.UnboundSym "fail")+                                                                applyWrapper aw_24 []+                                      _ -> throwError "if: expected boolean"++kl_shen_remove_bar :: Core.Types.KLValue ->+                      Core.Types.KLContext Core.Types.Env Core.Types.KLValue+kl_shen_remove_bar (!kl_V2454) = do !kl_if_0 <- let pat_cond_1 kl_V2454 kl_V2454h kl_V2454t = do !kl_if_2 <- let pat_cond_3 kl_V2454t kl_V2454th kl_V2454tt = do !kl_if_4 <- let pat_cond_5 kl_V2454tt kl_V2454tth kl_V2454ttt = do let !appl_6 = Atom Nil+                                                                                                                                                                                                                                    !kl_if_7 <- appl_6 `pseq` (kl_V2454ttt `pseq` eq appl_6 kl_V2454ttt)+                                                                                                                                                                                                                                    !kl_if_8 <- case kl_if_7 of+                                                                                                                                                                                                                                                    Atom (B (True)) -> do let pat_cond_9 = do return (Atom (B True))+                                                                                                                                                                                                                                                                              pat_cond_10 = do do return (Atom (B False))+                                                                                                                                                                                                                                                                           in case kl_V2454th of+                                                                                                                                                                                                                                                                                  kl_V2454th@(Atom (UnboundSym "bar!")) -> pat_cond_9+                                                                                                                                                                                                                                                                                  kl_V2454th@(ApplC (PL "bar!"+                                                                                                                                                                                                                                                                                                        _)) -> pat_cond_9+                                                                                                                                                                                                                                                                                  kl_V2454th@(ApplC (Func "bar!"+                                                                                                                                                                                                                                                                                                          _)) -> pat_cond_9+                                                                                                                                                                                                                                                                                  _ -> pat_cond_10+                                                                                                                                                                                                                                                    Atom (B (False)) -> do do return (Atom (B False))+                                                                                                                                                                                                                                                    _ -> throwError "if: expected boolean"+                                                                                                                                                                                                                                    case kl_if_8 of+                                                                                                                                                                                                                                        Atom (B (True)) -> do return (Atom (B True))+                                                                                                                                                                                                                                        Atom (B (False)) -> do do return (Atom (B False))+                                                                                                                                                                                                                                        _ -> throwError "if: expected boolean"+                                                                                                                                                                                 pat_cond_11 = do do return (Atom (B False))+                                                                                                                                                                              in case kl_V2454tt of+                                                                                                                                                                                     !(kl_V2454tt@(Cons (!kl_V2454tth)+                                                                                                                                                                                                        (!kl_V2454ttt))) -> pat_cond_5 kl_V2454tt kl_V2454tth kl_V2454ttt+                                                                                                                                                                                     _ -> pat_cond_11+                                                                                                                                                                 case kl_if_4 of+                                                                                                                                                                     Atom (B (True)) -> do return (Atom (B True))+                                                                                                                                                                     Atom (B (False)) -> do do return (Atom (B False))+                                                                                                                                                                     _ -> throwError "if: expected boolean"+                                                                                                                 pat_cond_12 = do do return (Atom (B False))+                                                                                                              in case kl_V2454t of+                                                                                                                     !(kl_V2454t@(Cons (!kl_V2454th)+                                                                                                                                       (!kl_V2454tt))) -> pat_cond_3 kl_V2454t kl_V2454th kl_V2454tt+                                                                                                                     _ -> pat_cond_12+                                                                                                 case kl_if_2 of+                                                                                                     Atom (B (True)) -> do return (Atom (B True))+                                                                                                     Atom (B (False)) -> do do return (Atom (B False))+                                                                                                     _ -> throwError "if: expected boolean"+                                                    pat_cond_13 = do do return (Atom (B False))+                                                 in case kl_V2454 of+                                                        !(kl_V2454@(Cons (!kl_V2454h)+                                                                         (!kl_V2454t))) -> pat_cond_1 kl_V2454 kl_V2454h kl_V2454t+                                                        _ -> pat_cond_13+                                    case kl_if_0 of+                                        Atom (B (True)) -> do !appl_14 <- kl_V2454 `pseq` hd kl_V2454+                                                              !appl_15 <- kl_V2454 `pseq` tl kl_V2454+                                                              !appl_16 <- appl_15 `pseq` tl appl_15+                                                              !appl_17 <- appl_16 `pseq` hd appl_16+                                                              appl_14 `pseq` (appl_17 `pseq` klCons appl_14 appl_17)+                                        Atom (B (False)) -> do let pat_cond_18 kl_V2454 kl_V2454h kl_V2454t = do !appl_19 <- kl_V2454h `pseq` kl_shen_remove_bar kl_V2454h+                                                                                                                 !appl_20 <- kl_V2454t `pseq` kl_shen_remove_bar kl_V2454t+                                                                                                                 appl_19 `pseq` (appl_20 `pseq` klCons appl_19 appl_20)+                                                                   pat_cond_21 = do do return kl_V2454+                                                                in case kl_V2454 of+                                                                       !(kl_V2454@(Cons (!kl_V2454h)+                                                                                        (!kl_V2454t))) -> pat_cond_18 kl_V2454 kl_V2454h kl_V2454t+                                                                       _ -> pat_cond_21+                                        _ -> throwError "if: expected boolean"++kl_shen_LBpremisesRB :: Core.Types.KLValue ->+                        Core.Types.KLContext Core.Types.Env Core.Types.KLValue+kl_shen_LBpremisesRB (!kl_V2456) = do let !appl_0 = ApplC (Func "lambda" (Context (\(!kl_YaccParse) -> do let !aw_1 = Core.Types.Atom (Core.Types.UnboundSym "fail")+                                                                                                          !appl_2 <- applyWrapper aw_1 []+                                                                                                          !kl_if_3 <- kl_YaccParse `pseq` (appl_2 `pseq` eq kl_YaccParse appl_2)+                                                                                                          case kl_if_3 of+                                                                                                              Atom (B (True)) -> do let !appl_4 = ApplC (Func "lambda" (Context (\(!kl_Parse_LBeRB) -> do let !aw_5 = Core.Types.Atom (Core.Types.UnboundSym "fail")+                                                                                                                                                                                                          !appl_6 <- applyWrapper aw_5 []+                                                                                                                                                                                                          !appl_7 <- appl_6 `pseq` (kl_Parse_LBeRB `pseq` eq appl_6 kl_Parse_LBeRB)+                                                                                                                                                                                                          !kl_if_8 <- appl_7 `pseq` kl_not appl_7+                                                                                                                                                                                                          case kl_if_8 of+                                                                                                                                                                                                              Atom (B (True)) -> do !appl_9 <- kl_Parse_LBeRB `pseq` hd kl_Parse_LBeRB+                                                                                                                                                                                                                                    let !appl_10 = Atom Nil+                                                                                                                                                                                                                                    let !aw_11 = Core.Types.Atom (Core.Types.UnboundSym "shen.pair")+                                                                                                                                                                                                                                    appl_9 `pseq` (appl_10 `pseq` applyWrapper aw_11 [appl_9,+                                                                                                                                                                                                                                                                                      appl_10])+                                                                                                                                                                                                              Atom (B (False)) -> do do let !aw_12 = Core.Types.Atom (Core.Types.UnboundSym "fail")+                                                                                                                                                                                                                                        applyWrapper aw_12 []+                                                                                                                                                                                                              _ -> throwError "if: expected boolean")))+                                                                                                                                    let !aw_13 = Core.Types.Atom (Core.Types.UnboundSym "<e>")+                                                                                                                                    !appl_14 <- kl_V2456 `pseq` applyWrapper aw_13 [kl_V2456]+                                                                                                                                    appl_14 `pseq` applyWrapper appl_4 [appl_14]+                                                                                                              Atom (B (False)) -> do do return kl_YaccParse+                                                                                                              _ -> throwError "if: expected boolean")))+                                      let !appl_15 = ApplC (Func "lambda" (Context (\(!kl_Parse_shen_LBpremiseRB) -> do let !aw_16 = Core.Types.Atom (Core.Types.UnboundSym "fail")+                                                                                                                        !appl_17 <- applyWrapper aw_16 []+                                                                                                                        !appl_18 <- appl_17 `pseq` (kl_Parse_shen_LBpremiseRB `pseq` eq appl_17 kl_Parse_shen_LBpremiseRB)+                                                                                                                        !kl_if_19 <- appl_18 `pseq` kl_not appl_18+                                                                                                                        case kl_if_19 of+                                                                                                                            Atom (B (True)) -> do let !appl_20 = ApplC (Func "lambda" (Context (\(!kl_Parse_shen_LBsemicolon_symbolRB) -> do let !aw_21 = Core.Types.Atom (Core.Types.UnboundSym "fail")+                                                                                                                                                                                                                                             !appl_22 <- applyWrapper aw_21 []+                                                                                                                                                                                                                                             !appl_23 <- appl_22 `pseq` (kl_Parse_shen_LBsemicolon_symbolRB `pseq` eq appl_22 kl_Parse_shen_LBsemicolon_symbolRB)+                                                                                                                                                                                                                                             !kl_if_24 <- appl_23 `pseq` kl_not appl_23+                                                                                                                                                                                                                                             case kl_if_24 of+                                                                                                                                                                                                                                                 Atom (B (True)) -> do let !appl_25 = ApplC (Func "lambda" (Context (\(!kl_Parse_shen_LBpremisesRB) -> do let !aw_26 = Core.Types.Atom (Core.Types.UnboundSym "fail")+                                                                                                                                                                                                                                                                                                                                                          !appl_27 <- applyWrapper aw_26 []+                                                                                                                                                                                                                                                                                                                                                          !appl_28 <- appl_27 `pseq` (kl_Parse_shen_LBpremisesRB `pseq` eq appl_27 kl_Parse_shen_LBpremisesRB)+                                                                                                                                                                                                                                                                                                                                                          !kl_if_29 <- appl_28 `pseq` kl_not appl_28+                                                                                                                                                                                                                                                                                                                                                          case kl_if_29 of+                                                                                                                                                                                                                                                                                                                                                              Atom (B (True)) -> do !appl_30 <- kl_Parse_shen_LBpremisesRB `pseq` hd kl_Parse_shen_LBpremisesRB+                                                                                                                                                                                                                                                                                                                                                                                    let !aw_31 = Core.Types.Atom (Core.Types.UnboundSym "shen.hdtl")+                                                                                                                                                                                                                                                                                                                                                                                    !appl_32 <- kl_Parse_shen_LBpremiseRB `pseq` applyWrapper aw_31 [kl_Parse_shen_LBpremiseRB]+                                                                                                                                                                                                                                                                                                                                                                                    let !aw_33 = Core.Types.Atom (Core.Types.UnboundSym "shen.hdtl")+                                                                                                                                                                                                                                                                                                                                                                                    !appl_34 <- kl_Parse_shen_LBpremisesRB `pseq` applyWrapper aw_33 [kl_Parse_shen_LBpremisesRB]+                                                                                                                                                                                                                                                                                                                                                                                    !appl_35 <- appl_32 `pseq` (appl_34 `pseq` klCons appl_32 appl_34)+                                                                                                                                                                                                                                                                                                                                                                                    let !aw_36 = Core.Types.Atom (Core.Types.UnboundSym "shen.pair")+                                                                                                                                                                                                                                                                                                                                                                                    appl_30 `pseq` (appl_35 `pseq` applyWrapper aw_36 [appl_30,+                                                                                                                                                                                                                                                                                                                                                                                                                                       appl_35])+                                                                                                                                                                                                                                                                                                                                                              Atom (B (False)) -> do do let !aw_37 = Core.Types.Atom (Core.Types.UnboundSym "fail")+                                                                                                                                                                                                                                                                                                                                                                                        applyWrapper aw_37 []+                                                                                                                                                                                                                                                                                                                                                              _ -> throwError "if: expected boolean")))+                                                                                                                                                                                                                                                                       !appl_38 <- kl_Parse_shen_LBsemicolon_symbolRB `pseq` kl_shen_LBpremisesRB kl_Parse_shen_LBsemicolon_symbolRB+                                                                                                                                                                                                                                                                       appl_38 `pseq` applyWrapper appl_25 [appl_38]+                                                                                                                                                                                                                                                 Atom (B (False)) -> do do let !aw_39 = Core.Types.Atom (Core.Types.UnboundSym "fail")+                                                                                                                                                                                                                                                                           applyWrapper aw_39 []+                                                                                                                                                                                                                                                 _ -> throwError "if: expected boolean")))+                                                                                                                                                  !appl_40 <- kl_Parse_shen_LBpremiseRB `pseq` kl_shen_LBsemicolon_symbolRB kl_Parse_shen_LBpremiseRB+                                                                                                                                                  appl_40 `pseq` applyWrapper appl_20 [appl_40]+                                                                                                                            Atom (B (False)) -> do do let !aw_41 = Core.Types.Atom (Core.Types.UnboundSym "fail")+                                                                                                                                                      applyWrapper aw_41 []+                                                                                                                            _ -> throwError "if: expected boolean")))+                                      !appl_42 <- kl_V2456 `pseq` kl_shen_LBpremiseRB kl_V2456+                                      !appl_43 <- appl_42 `pseq` applyWrapper appl_15 [appl_42]+                                      appl_43 `pseq` applyWrapper appl_0 [appl_43]++kl_shen_LBsemicolon_symbolRB :: Core.Types.KLValue ->+                                Core.Types.KLContext Core.Types.Env Core.Types.KLValue+kl_shen_LBsemicolon_symbolRB (!kl_V2458) = do !appl_0 <- kl_V2458 `pseq` hd kl_V2458+                                              !kl_if_1 <- appl_0 `pseq` consP appl_0+                                              case kl_if_1 of+                                                  Atom (B (True)) -> do let !appl_2 = ApplC (Func "lambda" (Context (\(!kl_Parse_X) -> do let pat_cond_3 = do !appl_4 <- kl_V2458 `pseq` hd kl_V2458+                                                                                                                                                              !appl_5 <- appl_4 `pseq` tl appl_4+                                                                                                                                                              let !aw_6 = Core.Types.Atom (Core.Types.UnboundSym "shen.hdtl")+                                                                                                                                                              !appl_7 <- kl_V2458 `pseq` applyWrapper aw_6 [kl_V2458]+                                                                                                                                                              let !aw_8 = Core.Types.Atom (Core.Types.UnboundSym "shen.pair")+                                                                                                                                                              !appl_9 <- appl_5 `pseq` (appl_7 `pseq` applyWrapper aw_8 [appl_5,+                                                                                                                                                                                                                         appl_7])+                                                                                                                                                              !appl_10 <- appl_9 `pseq` hd appl_9+                                                                                                                                                              let !aw_11 = Core.Types.Atom (Core.Types.UnboundSym "shen.pair")+                                                                                                                                                              appl_10 `pseq` applyWrapper aw_11 [appl_10,+                                                                                                                                                                                                 Core.Types.Atom (Core.Types.UnboundSym "shen.skip")]+                                                                                                                                              pat_cond_12 = do do let !aw_13 = Core.Types.Atom (Core.Types.UnboundSym "fail")+                                                                                                                                                                  applyWrapper aw_13 []+                                                                                                                                           in case kl_Parse_X of+                                                                                                                                                  kl_Parse_X@(Atom (UnboundSym ";")) -> pat_cond_3+                                                                                                                                                  kl_Parse_X@(ApplC (PL ";"+                                                                                                                                                                        _)) -> pat_cond_3+                                                                                                                                                  kl_Parse_X@(ApplC (Func ";"+                                                                                                                                                                          _)) -> pat_cond_3+                                                                                                                                                  _ -> pat_cond_12)))+                                                                        !appl_14 <- kl_V2458 `pseq` hd kl_V2458+                                                                        !appl_15 <- appl_14 `pseq` hd appl_14+                                                                        appl_15 `pseq` applyWrapper appl_2 [appl_15]+                                                  Atom (B (False)) -> do do let !aw_16 = Core.Types.Atom (Core.Types.UnboundSym "fail")+                                                                            applyWrapper aw_16 []+                                                  _ -> throwError "if: expected boolean"++kl_shen_LBpremiseRB :: Core.Types.KLValue ->+                       Core.Types.KLContext Core.Types.Env Core.Types.KLValue+kl_shen_LBpremiseRB (!kl_V2460) = do let !appl_0 = ApplC (Func "lambda" (Context (\(!kl_YaccParse) -> do let !aw_1 = Core.Types.Atom (Core.Types.UnboundSym "fail")+                                                                                                         !appl_2 <- applyWrapper aw_1 []+                                                                                                         !kl_if_3 <- kl_YaccParse `pseq` (appl_2 `pseq` eq kl_YaccParse appl_2)+                                                                                                         case kl_if_3 of+                                                                                                             Atom (B (True)) -> do let !appl_4 = ApplC (Func "lambda" (Context (\(!kl_YaccParse) -> do let !aw_5 = Core.Types.Atom (Core.Types.UnboundSym "fail")+                                                                                                                                                                                                       !appl_6 <- applyWrapper aw_5 []+                                                                                                                                                                                                       !kl_if_7 <- kl_YaccParse `pseq` (appl_6 `pseq` eq kl_YaccParse appl_6)+                                                                                                                                                                                                       case kl_if_7 of+                                                                                                                                                                                                           Atom (B (True)) -> do let !appl_8 = ApplC (Func "lambda" (Context (\(!kl_Parse_shen_LBformulaRB) -> do let !aw_9 = Core.Types.Atom (Core.Types.UnboundSym "fail")+                                                                                                                                                                                                                                                                                                                  !appl_10 <- applyWrapper aw_9 []+                                                                                                                                                                                                                                                                                                                  !appl_11 <- appl_10 `pseq` (kl_Parse_shen_LBformulaRB `pseq` eq appl_10 kl_Parse_shen_LBformulaRB)+                                                                                                                                                                                                                                                                                                                  !kl_if_12 <- appl_11 `pseq` kl_not appl_11+                                                                                                                                                                                                                                                                                                                  case kl_if_12 of+                                                                                                                                                                                                                                                                                                                      Atom (B (True)) -> do !appl_13 <- kl_Parse_shen_LBformulaRB `pseq` hd kl_Parse_shen_LBformulaRB+                                                                                                                                                                                                                                                                                                                                            let !appl_14 = Atom Nil+                                                                                                                                                                                                                                                                                                                                            let !aw_15 = Core.Types.Atom (Core.Types.UnboundSym "shen.hdtl")+                                                                                                                                                                                                                                                                                                                                            !appl_16 <- kl_Parse_shen_LBformulaRB `pseq` applyWrapper aw_15 [kl_Parse_shen_LBformulaRB]+                                                                                                                                                                                                                                                                                                                                            !appl_17 <- appl_14 `pseq` (appl_16 `pseq` kl_shen_sequent appl_14 appl_16)+                                                                                                                                                                                                                                                                                                                                            let !aw_18 = Core.Types.Atom (Core.Types.UnboundSym "shen.pair")+                                                                                                                                                                                                                                                                                                                                            appl_13 `pseq` (appl_17 `pseq` applyWrapper aw_18 [appl_13,+                                                                                                                                                                                                                                                                                                                                                                                               appl_17])+                                                                                                                                                                                                                                                                                                                      Atom (B (False)) -> do do let !aw_19 = Core.Types.Atom (Core.Types.UnboundSym "fail")+                                                                                                                                                                                                                                                                                                                                                applyWrapper aw_19 []+                                                                                                                                                                                                                                                                                                                      _ -> throwError "if: expected boolean")))+                                                                                                                                                                                                                                 !appl_20 <- kl_V2460 `pseq` kl_shen_LBformulaRB kl_V2460+                                                                                                                                                                                                                                 appl_20 `pseq` applyWrapper appl_8 [appl_20]+                                                                                                                                                                                                           Atom (B (False)) -> do do return kl_YaccParse+                                                                                                                                                                                                           _ -> throwError "if: expected boolean")))+                                                                                                                                   let !appl_21 = ApplC (Func "lambda" (Context (\(!kl_Parse_shen_LBformulaeRB) -> do let !aw_22 = Core.Types.Atom (Core.Types.UnboundSym "fail")+                                                                                                                                                                                                                      !appl_23 <- applyWrapper aw_22 []+                                                                                                                                                                                                                      !appl_24 <- appl_23 `pseq` (kl_Parse_shen_LBformulaeRB `pseq` eq appl_23 kl_Parse_shen_LBformulaeRB)+                                                                                                                                                                                                                      !kl_if_25 <- appl_24 `pseq` kl_not appl_24+                                                                                                                                                                                                                      case kl_if_25 of+                                                                                                                                                                                                                          Atom (B (True)) -> do !appl_26 <- kl_Parse_shen_LBformulaeRB `pseq` hd kl_Parse_shen_LBformulaeRB+                                                                                                                                                                                                                                                !kl_if_27 <- appl_26 `pseq` consP appl_26+                                                                                                                                                                                                                                                !kl_if_28 <- case kl_if_27 of+                                                                                                                                                                                                                                                                 Atom (B (True)) -> do !appl_29 <- kl_Parse_shen_LBformulaeRB `pseq` hd kl_Parse_shen_LBformulaeRB+                                                                                                                                                                                                                                                                                       !appl_30 <- appl_29 `pseq` hd appl_29+                                                                                                                                                                                                                                                                                       !kl_if_31 <- appl_30 `pseq` eq (Core.Types.Atom (Core.Types.UnboundSym ">>")) appl_30+                                                                                                                                                                                                                                                                                       case kl_if_31 of+                                                                                                                                                                                                                                                                                           Atom (B (True)) -> do return (Atom (B True))+                                                                                                                                                                                                                                                                                           Atom (B (False)) -> do do return (Atom (B False))+                                                                                                                                                                                                                                                                                           _ -> throwError "if: expected boolean"+                                                                                                                                                                                                                                                                 Atom (B (False)) -> do do return (Atom (B False))+                                                                                                                                                                                                                                                                 _ -> throwError "if: expected boolean"+                                                                                                                                                                                                                                                case kl_if_28 of+                                                                                                                                                                                                                                                    Atom (B (True)) -> do let !appl_32 = ApplC (Func "lambda" (Context (\(!kl_Parse_shen_LBformulaRB) -> do let !aw_33 = Core.Types.Atom (Core.Types.UnboundSym "fail")+                                                                                                                                                                                                                                                                                                                                                            !appl_34 <- applyWrapper aw_33 []+                                                                                                                                                                                                                                                                                                                                                            !appl_35 <- appl_34 `pseq` (kl_Parse_shen_LBformulaRB `pseq` eq appl_34 kl_Parse_shen_LBformulaRB)+                                                                                                                                                                                                                                                                                                                                                            !kl_if_36 <- appl_35 `pseq` kl_not appl_35+                                                                                                                                                                                                                                                                                                                                                            case kl_if_36 of+                                                                                                                                                                                                                                                                                                                                                                Atom (B (True)) -> do !appl_37 <- kl_Parse_shen_LBformulaRB `pseq` hd kl_Parse_shen_LBformulaRB+                                                                                                                                                                                                                                                                                                                                                                                      let !aw_38 = Core.Types.Atom (Core.Types.UnboundSym "shen.hdtl")+                                                                                                                                                                                                                                                                                                                                                                                      !appl_39 <- kl_Parse_shen_LBformulaeRB `pseq` applyWrapper aw_38 [kl_Parse_shen_LBformulaeRB]+                                                                                                                                                                                                                                                                                                                                                                                      let !aw_40 = Core.Types.Atom (Core.Types.UnboundSym "shen.hdtl")+                                                                                                                                                                                                                                                                                                                                                                                      !appl_41 <- kl_Parse_shen_LBformulaRB `pseq` applyWrapper aw_40 [kl_Parse_shen_LBformulaRB]+                                                                                                                                                                                                                                                                                                                                                                                      !appl_42 <- appl_39 `pseq` (appl_41 `pseq` kl_shen_sequent appl_39 appl_41)+                                                                                                                                                                                                                                                                                                                                                                                      let !aw_43 = Core.Types.Atom (Core.Types.UnboundSym "shen.pair")+                                                                                                                                                                                                                                                                                                                                                                                      appl_37 `pseq` (appl_42 `pseq` applyWrapper aw_43 [appl_37,+                                                                                                                                                                                                                                                                                                                                                                                                                                         appl_42])+                                                                                                                                                                                                                                                                                                                                                                Atom (B (False)) -> do do let !aw_44 = Core.Types.Atom (Core.Types.UnboundSym "fail")+                                                                                                                                                                                                                                                                                                                                                                                          applyWrapper aw_44 []+                                                                                                                                                                                                                                                                                                                                                                _ -> throwError "if: expected boolean")))+                                                                                                                                                                                                                                                                          !appl_45 <- kl_Parse_shen_LBformulaeRB `pseq` hd kl_Parse_shen_LBformulaeRB+                                                                                                                                                                                                                                                                          !appl_46 <- appl_45 `pseq` tl appl_45+                                                                                                                                                                                                                                                                          let !aw_47 = Core.Types.Atom (Core.Types.UnboundSym "shen.hdtl")+                                                                                                                                                                                                                                                                          !appl_48 <- kl_Parse_shen_LBformulaeRB `pseq` applyWrapper aw_47 [kl_Parse_shen_LBformulaeRB]+                                                                                                                                                                                                                                                                          let !aw_49 = Core.Types.Atom (Core.Types.UnboundSym "shen.pair")+                                                                                                                                                                                                                                                                          !appl_50 <- appl_46 `pseq` (appl_48 `pseq` applyWrapper aw_49 [appl_46,+                                                                                                                                                                                                                                                                                                                                         appl_48])+                                                                                                                                                                                                                                                                          !appl_51 <- appl_50 `pseq` kl_shen_LBformulaRB appl_50+                                                                                                                                                                                                                                                                          appl_51 `pseq` applyWrapper appl_32 [appl_51]+                                                                                                                                                                                                                                                    Atom (B (False)) -> do do let !aw_52 = Core.Types.Atom (Core.Types.UnboundSym "fail")+                                                                                                                                                                                                                                                                              applyWrapper aw_52 []+                                                                                                                                                                                                                                                    _ -> throwError "if: expected boolean"+                                                                                                                                                                                                                          Atom (B (False)) -> do do let !aw_53 = Core.Types.Atom (Core.Types.UnboundSym "fail")+                                                                                                                                                                                                                                                    applyWrapper aw_53 []+                                                                                                                                                                                                                          _ -> throwError "if: expected boolean")))+                                                                                                                                   !appl_54 <- kl_V2460 `pseq` kl_shen_LBformulaeRB kl_V2460+                                                                                                                                   !appl_55 <- appl_54 `pseq` applyWrapper appl_21 [appl_54]+                                                                                                                                   appl_55 `pseq` applyWrapper appl_4 [appl_55]+                                                                                                             Atom (B (False)) -> do do return kl_YaccParse+                                                                                                             _ -> throwError "if: expected boolean")))+                                     !appl_56 <- kl_V2460 `pseq` hd kl_V2460+                                     !kl_if_57 <- appl_56 `pseq` consP appl_56+                                     !kl_if_58 <- case kl_if_57 of+                                                      Atom (B (True)) -> do !appl_59 <- kl_V2460 `pseq` hd kl_V2460+                                                                            !appl_60 <- appl_59 `pseq` hd appl_59+                                                                            !kl_if_61 <- appl_60 `pseq` eq (Core.Types.Atom (Core.Types.UnboundSym "!")) appl_60+                                                                            case kl_if_61 of+                                                                                Atom (B (True)) -> do return (Atom (B True))+                                                                                Atom (B (False)) -> do do return (Atom (B False))+                                                                                _ -> throwError "if: expected boolean"+                                                      Atom (B (False)) -> do do return (Atom (B False))+                                                      _ -> throwError "if: expected boolean"+                                     !appl_62 <- case kl_if_58 of+                                                     Atom (B (True)) -> do !appl_63 <- kl_V2460 `pseq` hd kl_V2460+                                                                           !appl_64 <- appl_63 `pseq` tl appl_63+                                                                           let !aw_65 = Core.Types.Atom (Core.Types.UnboundSym "shen.hdtl")+                                                                           !appl_66 <- kl_V2460 `pseq` applyWrapper aw_65 [kl_V2460]+                                                                           let !aw_67 = Core.Types.Atom (Core.Types.UnboundSym "shen.pair")+                                                                           !appl_68 <- appl_64 `pseq` (appl_66 `pseq` applyWrapper aw_67 [appl_64,+                                                                                                                                          appl_66])+                                                                           !appl_69 <- appl_68 `pseq` hd appl_68+                                                                           let !aw_70 = Core.Types.Atom (Core.Types.UnboundSym "shen.pair")+                                                                           appl_69 `pseq` applyWrapper aw_70 [appl_69,+                                                                                                              Core.Types.Atom (Core.Types.UnboundSym "!")]+                                                     Atom (B (False)) -> do do let !aw_71 = Core.Types.Atom (Core.Types.UnboundSym "fail")+                                                                               applyWrapper aw_71 []+                                                     _ -> throwError "if: expected boolean"+                                     appl_62 `pseq` applyWrapper appl_0 [appl_62]++kl_shen_LBconclusionRB :: Core.Types.KLValue ->+                          Core.Types.KLContext Core.Types.Env Core.Types.KLValue+kl_shen_LBconclusionRB (!kl_V2462) = do let !appl_0 = ApplC (Func "lambda" (Context (\(!kl_YaccParse) -> do let !aw_1 = Core.Types.Atom (Core.Types.UnboundSym "fail")+                                                                                                            !appl_2 <- applyWrapper aw_1 []+                                                                                                            !kl_if_3 <- kl_YaccParse `pseq` (appl_2 `pseq` eq kl_YaccParse appl_2)+                                                                                                            case kl_if_3 of+                                                                                                                Atom (B (True)) -> do let !appl_4 = ApplC (Func "lambda" (Context (\(!kl_Parse_shen_LBformulaRB) -> do let !aw_5 = Core.Types.Atom (Core.Types.UnboundSym "fail")+                                                                                                                                                                                                                       !appl_6 <- applyWrapper aw_5 []+                                                                                                                                                                                                                       !appl_7 <- appl_6 `pseq` (kl_Parse_shen_LBformulaRB `pseq` eq appl_6 kl_Parse_shen_LBformulaRB)+                                                                                                                                                                                                                       !kl_if_8 <- appl_7 `pseq` kl_not appl_7+                                                                                                                                                                                                                       case kl_if_8 of+                                                                                                                                                                                                                           Atom (B (True)) -> do let !appl_9 = ApplC (Func "lambda" (Context (\(!kl_Parse_shen_LBsemicolon_symbolRB) -> do let !aw_10 = Core.Types.Atom (Core.Types.UnboundSym "fail")+                                                                                                                                                                                                                                                                                                                                           !appl_11 <- applyWrapper aw_10 []+                                                                                                                                                                                                                                                                                                                                           !appl_12 <- appl_11 `pseq` (kl_Parse_shen_LBsemicolon_symbolRB `pseq` eq appl_11 kl_Parse_shen_LBsemicolon_symbolRB)+                                                                                                                                                                                                                                                                                                                                           !kl_if_13 <- appl_12 `pseq` kl_not appl_12+                                                                                                                                                                                                                                                                                                                                           case kl_if_13 of+                                                                                                                                                                                                                                                                                                                                               Atom (B (True)) -> do !appl_14 <- kl_Parse_shen_LBsemicolon_symbolRB `pseq` hd kl_Parse_shen_LBsemicolon_symbolRB+                                                                                                                                                                                                                                                                                                                                                                     let !appl_15 = Atom Nil+                                                                                                                                                                                                                                                                                                                                                                     let !aw_16 = Core.Types.Atom (Core.Types.UnboundSym "shen.hdtl")+                                                                                                                                                                                                                                                                                                                                                                     !appl_17 <- kl_Parse_shen_LBformulaRB `pseq` applyWrapper aw_16 [kl_Parse_shen_LBformulaRB]+                                                                                                                                                                                                                                                                                                                                                                     !appl_18 <- appl_15 `pseq` (appl_17 `pseq` kl_shen_sequent appl_15 appl_17)+                                                                                                                                                                                                                                                                                                                                                                     let !aw_19 = Core.Types.Atom (Core.Types.UnboundSym "shen.pair")+                                                                                                                                                                                                                                                                                                                                                                     appl_14 `pseq` (appl_18 `pseq` applyWrapper aw_19 [appl_14,+                                                                                                                                                                                                                                                                                                                                                                                                                        appl_18])+                                                                                                                                                                                                                                                                                                                                               Atom (B (False)) -> do do let !aw_20 = Core.Types.Atom (Core.Types.UnboundSym "fail")+                                                                                                                                                                                                                                                                                                                                                                         applyWrapper aw_20 []+                                                                                                                                                                                                                                                                                                                                               _ -> throwError "if: expected boolean")))+                                                                                                                                                                                                                                                 !appl_21 <- kl_Parse_shen_LBformulaRB `pseq` kl_shen_LBsemicolon_symbolRB kl_Parse_shen_LBformulaRB+                                                                                                                                                                                                                                                 appl_21 `pseq` applyWrapper appl_9 [appl_21]+                                                                                                                                                                                                                           Atom (B (False)) -> do do let !aw_22 = Core.Types.Atom (Core.Types.UnboundSym "fail")+                                                                                                                                                                                                                                                     applyWrapper aw_22 []+                                                                                                                                                                                                                           _ -> throwError "if: expected boolean")))+                                                                                                                                      !appl_23 <- kl_V2462 `pseq` kl_shen_LBformulaRB kl_V2462+                                                                                                                                      appl_23 `pseq` applyWrapper appl_4 [appl_23]+                                                                                                                Atom (B (False)) -> do do return kl_YaccParse+                                                                                                                _ -> throwError "if: expected boolean")))+                                        let !appl_24 = ApplC (Func "lambda" (Context (\(!kl_Parse_shen_LBformulaeRB) -> do let !aw_25 = Core.Types.Atom (Core.Types.UnboundSym "fail")+                                                                                                                           !appl_26 <- applyWrapper aw_25 []+                                                                                                                           !appl_27 <- appl_26 `pseq` (kl_Parse_shen_LBformulaeRB `pseq` eq appl_26 kl_Parse_shen_LBformulaeRB)+                                                                                                                           !kl_if_28 <- appl_27 `pseq` kl_not appl_27+                                                                                                                           case kl_if_28 of+                                                                                                                               Atom (B (True)) -> do !appl_29 <- kl_Parse_shen_LBformulaeRB `pseq` hd kl_Parse_shen_LBformulaeRB+                                                                                                                                                     !kl_if_30 <- appl_29 `pseq` consP appl_29+                                                                                                                                                     !kl_if_31 <- case kl_if_30 of+                                                                                                                                                                      Atom (B (True)) -> do !appl_32 <- kl_Parse_shen_LBformulaeRB `pseq` hd kl_Parse_shen_LBformulaeRB+                                                                                                                                                                                            !appl_33 <- appl_32 `pseq` hd appl_32+                                                                                                                                                                                            !kl_if_34 <- appl_33 `pseq` eq (Core.Types.Atom (Core.Types.UnboundSym ">>")) appl_33+                                                                                                                                                                                            case kl_if_34 of+                                                                                                                                                                                                Atom (B (True)) -> do return (Atom (B True))+                                                                                                                                                                                                Atom (B (False)) -> do do return (Atom (B False))+                                                                                                                                                                                                _ -> throwError "if: expected boolean"+                                                                                                                                                                      Atom (B (False)) -> do do return (Atom (B False))+                                                                                                                                                                      _ -> throwError "if: expected boolean"+                                                                                                                                                     case kl_if_31 of+                                                                                                                                                         Atom (B (True)) -> do let !appl_35 = ApplC (Func "lambda" (Context (\(!kl_Parse_shen_LBformulaRB) -> do let !aw_36 = Core.Types.Atom (Core.Types.UnboundSym "fail")+                                                                                                                                                                                                                                                                 !appl_37 <- applyWrapper aw_36 []+                                                                                                                                                                                                                                                                 !appl_38 <- appl_37 `pseq` (kl_Parse_shen_LBformulaRB `pseq` eq appl_37 kl_Parse_shen_LBformulaRB)+                                                                                                                                                                                                                                                                 !kl_if_39 <- appl_38 `pseq` kl_not appl_38+                                                                                                                                                                                                                                                                 case kl_if_39 of+                                                                                                                                                                                                                                                                     Atom (B (True)) -> do let !appl_40 = ApplC (Func "lambda" (Context (\(!kl_Parse_shen_LBsemicolon_symbolRB) -> do let !aw_41 = Core.Types.Atom (Core.Types.UnboundSym "fail")+                                                                                                                                                                                                                                                                                                                                                                                      !appl_42 <- applyWrapper aw_41 []+                                                                                                                                                                                                                                                                                                                                                                                      !appl_43 <- appl_42 `pseq` (kl_Parse_shen_LBsemicolon_symbolRB `pseq` eq appl_42 kl_Parse_shen_LBsemicolon_symbolRB)+                                                                                                                                                                                                                                                                                                                                                                                      !kl_if_44 <- appl_43 `pseq` kl_not appl_43+                                                                                                                                                                                                                                                                                                                                                                                      case kl_if_44 of+                                                                                                                                                                                                                                                                                                                                                                                          Atom (B (True)) -> do !appl_45 <- kl_Parse_shen_LBsemicolon_symbolRB `pseq` hd kl_Parse_shen_LBsemicolon_symbolRB+                                                                                                                                                                                                                                                                                                                                                                                                                let !aw_46 = Core.Types.Atom (Core.Types.UnboundSym "shen.hdtl")+                                                                                                                                                                                                                                                                                                                                                                                                                !appl_47 <- kl_Parse_shen_LBformulaeRB `pseq` applyWrapper aw_46 [kl_Parse_shen_LBformulaeRB]+                                                                                                                                                                                                                                                                                                                                                                                                                let !aw_48 = Core.Types.Atom (Core.Types.UnboundSym "shen.hdtl")+                                                                                                                                                                                                                                                                                                                                                                                                                !appl_49 <- kl_Parse_shen_LBformulaRB `pseq` applyWrapper aw_48 [kl_Parse_shen_LBformulaRB]+                                                                                                                                                                                                                                                                                                                                                                                                                !appl_50 <- appl_47 `pseq` (appl_49 `pseq` kl_shen_sequent appl_47 appl_49)+                                                                                                                                                                                                                                                                                                                                                                                                                let !aw_51 = Core.Types.Atom (Core.Types.UnboundSym "shen.pair")+                                                                                                                                                                                                                                                                                                                                                                                                                appl_45 `pseq` (appl_50 `pseq` applyWrapper aw_51 [appl_45,+                                                                                                                                                                                                                                                                                                                                                                                                                                                                   appl_50])+                                                                                                                                                                                                                                                                                                                                                                                          Atom (B (False)) -> do do let !aw_52 = Core.Types.Atom (Core.Types.UnboundSym "fail")+                                                                                                                                                                                                                                                                                                                                                                                                                    applyWrapper aw_52 []+                                                                                                                                                                                                                                                                                                                                                                                          _ -> throwError "if: expected boolean")))+                                                                                                                                                                                                                                                                                           !appl_53 <- kl_Parse_shen_LBformulaRB `pseq` kl_shen_LBsemicolon_symbolRB kl_Parse_shen_LBformulaRB+                                                                                                                                                                                                                                                                                           appl_53 `pseq` applyWrapper appl_40 [appl_53]+                                                                                                                                                                                                                                                                     Atom (B (False)) -> do do let !aw_54 = Core.Types.Atom (Core.Types.UnboundSym "fail")+                                                                                                                                                                                                                                                                                               applyWrapper aw_54 []+                                                                                                                                                                                                                                                                     _ -> throwError "if: expected boolean")))+                                                                                                                                                                               !appl_55 <- kl_Parse_shen_LBformulaeRB `pseq` hd kl_Parse_shen_LBformulaeRB+                                                                                                                                                                               !appl_56 <- appl_55 `pseq` tl appl_55+                                                                                                                                                                               let !aw_57 = Core.Types.Atom (Core.Types.UnboundSym "shen.hdtl")+                                                                                                                                                                               !appl_58 <- kl_Parse_shen_LBformulaeRB `pseq` applyWrapper aw_57 [kl_Parse_shen_LBformulaeRB]+                                                                                                                                                                               let !aw_59 = Core.Types.Atom (Core.Types.UnboundSym "shen.pair")+                                                                                                                                                                               !appl_60 <- appl_56 `pseq` (appl_58 `pseq` applyWrapper aw_59 [appl_56,+                                                                                                                                                                                                                                              appl_58])+                                                                                                                                                                               !appl_61 <- appl_60 `pseq` kl_shen_LBformulaRB appl_60+                                                                                                                                                                               appl_61 `pseq` applyWrapper appl_35 [appl_61]+                                                                                                                                                         Atom (B (False)) -> do do let !aw_62 = Core.Types.Atom (Core.Types.UnboundSym "fail")+                                                                                                                                                                                   applyWrapper aw_62 []+                                                                                                                                                         _ -> throwError "if: expected boolean"+                                                                                                                               Atom (B (False)) -> do do let !aw_63 = Core.Types.Atom (Core.Types.UnboundSym "fail")+                                                                                                                                                         applyWrapper aw_63 []+                                                                                                                               _ -> throwError "if: expected boolean")))+                                        !appl_64 <- kl_V2462 `pseq` kl_shen_LBformulaeRB kl_V2462+                                        !appl_65 <- appl_64 `pseq` applyWrapper appl_24 [appl_64]+                                        appl_65 `pseq` applyWrapper appl_0 [appl_65]++kl_shen_sequent :: Core.Types.KLValue ->+                   Core.Types.KLValue ->+                   Core.Types.KLContext Core.Types.Env Core.Types.KLValue+kl_shen_sequent (!kl_V2465) (!kl_V2466) = do kl_V2465 `pseq` (kl_V2466 `pseq` kl_Atp kl_V2465 kl_V2466)++kl_shen_LBformulaeRB :: Core.Types.KLValue ->+                        Core.Types.KLContext Core.Types.Env Core.Types.KLValue+kl_shen_LBformulaeRB (!kl_V2468) = do let !appl_0 = ApplC (Func "lambda" (Context (\(!kl_YaccParse) -> do let !aw_1 = Core.Types.Atom (Core.Types.UnboundSym "fail")+                                                                                                          !appl_2 <- applyWrapper aw_1 []+                                                                                                          !kl_if_3 <- kl_YaccParse `pseq` (appl_2 `pseq` eq kl_YaccParse appl_2)+                                                                                                          case kl_if_3 of+                                                                                                              Atom (B (True)) -> do let !appl_4 = ApplC (Func "lambda" (Context (\(!kl_YaccParse) -> do let !aw_5 = Core.Types.Atom (Core.Types.UnboundSym "fail")+                                                                                                                                                                                                        !appl_6 <- applyWrapper aw_5 []+                                                                                                                                                                                                        !kl_if_7 <- kl_YaccParse `pseq` (appl_6 `pseq` eq kl_YaccParse appl_6)+                                                                                                                                                                                                        case kl_if_7 of+                                                                                                                                                                                                            Atom (B (True)) -> do let !appl_8 = ApplC (Func "lambda" (Context (\(!kl_Parse_LBeRB) -> do let !aw_9 = Core.Types.Atom (Core.Types.UnboundSym "fail")+                                                                                                                                                                                                                                                                                                        !appl_10 <- applyWrapper aw_9 []+                                                                                                                                                                                                                                                                                                        !appl_11 <- appl_10 `pseq` (kl_Parse_LBeRB `pseq` eq appl_10 kl_Parse_LBeRB)+                                                                                                                                                                                                                                                                                                        !kl_if_12 <- appl_11 `pseq` kl_not appl_11+                                                                                                                                                                                                                                                                                                        case kl_if_12 of+                                                                                                                                                                                                                                                                                                            Atom (B (True)) -> do !appl_13 <- kl_Parse_LBeRB `pseq` hd kl_Parse_LBeRB+                                                                                                                                                                                                                                                                                                                                  let !appl_14 = Atom Nil+                                                                                                                                                                                                                                                                                                                                  let !aw_15 = Core.Types.Atom (Core.Types.UnboundSym "shen.pair")+                                                                                                                                                                                                                                                                                                                                  appl_13 `pseq` (appl_14 `pseq` applyWrapper aw_15 [appl_13,+                                                                                                                                                                                                                                                                                                                                                                                     appl_14])+                                                                                                                                                                                                                                                                                                            Atom (B (False)) -> do do let !aw_16 = Core.Types.Atom (Core.Types.UnboundSym "fail")+                                                                                                                                                                                                                                                                                                                                      applyWrapper aw_16 []+                                                                                                                                                                                                                                                                                                            _ -> throwError "if: expected boolean")))+                                                                                                                                                                                                                                  let !aw_17 = Core.Types.Atom (Core.Types.UnboundSym "<e>")+                                                                                                                                                                                                                                  !appl_18 <- kl_V2468 `pseq` applyWrapper aw_17 [kl_V2468]+                                                                                                                                                                                                                                  appl_18 `pseq` applyWrapper appl_8 [appl_18]+                                                                                                                                                                                                            Atom (B (False)) -> do do return kl_YaccParse+                                                                                                                                                                                                            _ -> throwError "if: expected boolean")))+                                                                                                                                    let !appl_19 = ApplC (Func "lambda" (Context (\(!kl_Parse_shen_LBformulaRB) -> do let !aw_20 = Core.Types.Atom (Core.Types.UnboundSym "fail")+                                                                                                                                                                                                                      !appl_21 <- applyWrapper aw_20 []+                                                                                                                                                                                                                      !appl_22 <- appl_21 `pseq` (kl_Parse_shen_LBformulaRB `pseq` eq appl_21 kl_Parse_shen_LBformulaRB)+                                                                                                                                                                                                                      !kl_if_23 <- appl_22 `pseq` kl_not appl_22+                                                                                                                                                                                                                      case kl_if_23 of+                                                                                                                                                                                                                          Atom (B (True)) -> do !appl_24 <- kl_Parse_shen_LBformulaRB `pseq` hd kl_Parse_shen_LBformulaRB+                                                                                                                                                                                                                                                let !aw_25 = Core.Types.Atom (Core.Types.UnboundSym "shen.hdtl")+                                                                                                                                                                                                                                                !appl_26 <- kl_Parse_shen_LBformulaRB `pseq` applyWrapper aw_25 [kl_Parse_shen_LBformulaRB]+                                                                                                                                                                                                                                                let !appl_27 = Atom Nil+                                                                                                                                                                                                                                                !appl_28 <- appl_26 `pseq` (appl_27 `pseq` klCons appl_26 appl_27)+                                                                                                                                                                                                                                                let !aw_29 = Core.Types.Atom (Core.Types.UnboundSym "shen.pair")+                                                                                                                                                                                                                                                appl_24 `pseq` (appl_28 `pseq` applyWrapper aw_29 [appl_24,+                                                                                                                                                                                                                                                                                                   appl_28])+                                                                                                                                                                                                                          Atom (B (False)) -> do do let !aw_30 = Core.Types.Atom (Core.Types.UnboundSym "fail")+                                                                                                                                                                                                                                                    applyWrapper aw_30 []+                                                                                                                                                                                                                          _ -> throwError "if: expected boolean")))+                                                                                                                                    !appl_31 <- kl_V2468 `pseq` kl_shen_LBformulaRB kl_V2468+                                                                                                                                    !appl_32 <- appl_31 `pseq` applyWrapper appl_19 [appl_31]+                                                                                                                                    appl_32 `pseq` applyWrapper appl_4 [appl_32]+                                                                                                              Atom (B (False)) -> do do return kl_YaccParse+                                                                                                              _ -> throwError "if: expected boolean")))+                                      let !appl_33 = ApplC (Func "lambda" (Context (\(!kl_Parse_shen_LBformulaRB) -> do let !aw_34 = Core.Types.Atom (Core.Types.UnboundSym "fail")+                                                                                                                        !appl_35 <- applyWrapper aw_34 []+                                                                                                                        !appl_36 <- appl_35 `pseq` (kl_Parse_shen_LBformulaRB `pseq` eq appl_35 kl_Parse_shen_LBformulaRB)+                                                                                                                        !kl_if_37 <- appl_36 `pseq` kl_not appl_36+                                                                                                                        case kl_if_37 of+                                                                                                                            Atom (B (True)) -> do let !appl_38 = ApplC (Func "lambda" (Context (\(!kl_Parse_shen_LBcomma_symbolRB) -> do let !aw_39 = Core.Types.Atom (Core.Types.UnboundSym "fail")+                                                                                                                                                                                                                                         !appl_40 <- applyWrapper aw_39 []+                                                                                                                                                                                                                                         !appl_41 <- appl_40 `pseq` (kl_Parse_shen_LBcomma_symbolRB `pseq` eq appl_40 kl_Parse_shen_LBcomma_symbolRB)+                                                                                                                                                                                                                                         !kl_if_42 <- appl_41 `pseq` kl_not appl_41+                                                                                                                                                                                                                                         case kl_if_42 of+                                                                                                                                                                                                                                             Atom (B (True)) -> do let !appl_43 = ApplC (Func "lambda" (Context (\(!kl_Parse_shen_LBformulaeRB) -> do let !aw_44 = Core.Types.Atom (Core.Types.UnboundSym "fail")+                                                                                                                                                                                                                                                                                                                                                      !appl_45 <- applyWrapper aw_44 []+                                                                                                                                                                                                                                                                                                                                                      !appl_46 <- appl_45 `pseq` (kl_Parse_shen_LBformulaeRB `pseq` eq appl_45 kl_Parse_shen_LBformulaeRB)+                                                                                                                                                                                                                                                                                                                                                      !kl_if_47 <- appl_46 `pseq` kl_not appl_46+                                                                                                                                                                                                                                                                                                                                                      case kl_if_47 of+                                                                                                                                                                                                                                                                                                                                                          Atom (B (True)) -> do !appl_48 <- kl_Parse_shen_LBformulaeRB `pseq` hd kl_Parse_shen_LBformulaeRB+                                                                                                                                                                                                                                                                                                                                                                                let !aw_49 = Core.Types.Atom (Core.Types.UnboundSym "shen.hdtl")+                                                                                                                                                                                                                                                                                                                                                                                !appl_50 <- kl_Parse_shen_LBformulaRB `pseq` applyWrapper aw_49 [kl_Parse_shen_LBformulaRB]+                                                                                                                                                                                                                                                                                                                                                                                let !aw_51 = Core.Types.Atom (Core.Types.UnboundSym "shen.hdtl")+                                                                                                                                                                                                                                                                                                                                                                                !appl_52 <- kl_Parse_shen_LBformulaeRB `pseq` applyWrapper aw_51 [kl_Parse_shen_LBformulaeRB]+                                                                                                                                                                                                                                                                                                                                                                                !appl_53 <- appl_50 `pseq` (appl_52 `pseq` klCons appl_50 appl_52)+                                                                                                                                                                                                                                                                                                                                                                                let !aw_54 = Core.Types.Atom (Core.Types.UnboundSym "shen.pair")+                                                                                                                                                                                                                                                                                                                                                                                appl_48 `pseq` (appl_53 `pseq` applyWrapper aw_54 [appl_48,+                                                                                                                                                                                                                                                                                                                                                                                                                                   appl_53])+                                                                                                                                                                                                                                                                                                                                                          Atom (B (False)) -> do do let !aw_55 = Core.Types.Atom (Core.Types.UnboundSym "fail")+                                                                                                                                                                                                                                                                                                                                                                                    applyWrapper aw_55 []+                                                                                                                                                                                                                                                                                                                                                          _ -> throwError "if: expected boolean")))+                                                                                                                                                                                                                                                                   !appl_56 <- kl_Parse_shen_LBcomma_symbolRB `pseq` kl_shen_LBformulaeRB kl_Parse_shen_LBcomma_symbolRB+                                                                                                                                                                                                                                                                   appl_56 `pseq` applyWrapper appl_43 [appl_56]+                                                                                                                                                                                                                                             Atom (B (False)) -> do do let !aw_57 = Core.Types.Atom (Core.Types.UnboundSym "fail")+                                                                                                                                                                                                                                                                       applyWrapper aw_57 []+                                                                                                                                                                                                                                             _ -> throwError "if: expected boolean")))+                                                                                                                                                  !appl_58 <- kl_Parse_shen_LBformulaRB `pseq` kl_shen_LBcomma_symbolRB kl_Parse_shen_LBformulaRB+                                                                                                                                                  appl_58 `pseq` applyWrapper appl_38 [appl_58]+                                                                                                                            Atom (B (False)) -> do do let !aw_59 = Core.Types.Atom (Core.Types.UnboundSym "fail")+                                                                                                                                                      applyWrapper aw_59 []+                                                                                                                            _ -> throwError "if: expected boolean")))+                                      !appl_60 <- kl_V2468 `pseq` kl_shen_LBformulaRB kl_V2468+                                      !appl_61 <- appl_60 `pseq` applyWrapper appl_33 [appl_60]+                                      appl_61 `pseq` applyWrapper appl_0 [appl_61]++kl_shen_LBcomma_symbolRB :: Core.Types.KLValue ->+                            Core.Types.KLContext Core.Types.Env Core.Types.KLValue+kl_shen_LBcomma_symbolRB (!kl_V2470) = do !appl_0 <- kl_V2470 `pseq` hd kl_V2470+                                          !kl_if_1 <- appl_0 `pseq` consP appl_0+                                          case kl_if_1 of+                                              Atom (B (True)) -> do let !appl_2 = ApplC (Func "lambda" (Context (\(!kl_Parse_X) -> do !appl_3 <- intern (Core.Types.Atom (Core.Types.Str ","))+                                                                                                                                      !kl_if_4 <- kl_Parse_X `pseq` (appl_3 `pseq` eq kl_Parse_X appl_3)+                                                                                                                                      case kl_if_4 of+                                                                                                                                          Atom (B (True)) -> do !appl_5 <- kl_V2470 `pseq` hd kl_V2470+                                                                                                                                                                !appl_6 <- appl_5 `pseq` tl appl_5+                                                                                                                                                                let !aw_7 = Core.Types.Atom (Core.Types.UnboundSym "shen.hdtl")+                                                                                                                                                                !appl_8 <- kl_V2470 `pseq` applyWrapper aw_7 [kl_V2470]+                                                                                                                                                                let !aw_9 = Core.Types.Atom (Core.Types.UnboundSym "shen.pair")+                                                                                                                                                                !appl_10 <- appl_6 `pseq` (appl_8 `pseq` applyWrapper aw_9 [appl_6,+                                                                                                                                                                                                                            appl_8])+                                                                                                                                                                !appl_11 <- appl_10 `pseq` hd appl_10+                                                                                                                                                                let !aw_12 = Core.Types.Atom (Core.Types.UnboundSym "shen.pair")+                                                                                                                                                                appl_11 `pseq` applyWrapper aw_12 [appl_11,+                                                                                                                                                                                                   Core.Types.Atom (Core.Types.UnboundSym "shen.skip")]+                                                                                                                                          Atom (B (False)) -> do do let !aw_13 = Core.Types.Atom (Core.Types.UnboundSym "fail")+                                                                                                                                                                    applyWrapper aw_13 []+                                                                                                                                          _ -> throwError "if: expected boolean")))+                                                                    !appl_14 <- kl_V2470 `pseq` hd kl_V2470+                                                                    !appl_15 <- appl_14 `pseq` hd appl_14+                                                                    appl_15 `pseq` applyWrapper appl_2 [appl_15]+                                              Atom (B (False)) -> do do let !aw_16 = Core.Types.Atom (Core.Types.UnboundSym "fail")+                                                                        applyWrapper aw_16 []+                                              _ -> throwError "if: expected boolean"++kl_shen_LBformulaRB :: Core.Types.KLValue ->+                       Core.Types.KLContext Core.Types.Env Core.Types.KLValue+kl_shen_LBformulaRB (!kl_V2472) = do let !appl_0 = ApplC (Func "lambda" (Context (\(!kl_YaccParse) -> do let !aw_1 = Core.Types.Atom (Core.Types.UnboundSym "fail")+                                                                                                         !appl_2 <- applyWrapper aw_1 []+                                                                                                         !kl_if_3 <- kl_YaccParse `pseq` (appl_2 `pseq` eq kl_YaccParse appl_2)+                                                                                                         case kl_if_3 of+                                                                                                             Atom (B (True)) -> do let !appl_4 = ApplC (Func "lambda" (Context (\(!kl_Parse_shen_LBexprRB) -> do let !aw_5 = Core.Types.Atom (Core.Types.UnboundSym "fail")+                                                                                                                                                                                                                 !appl_6 <- applyWrapper aw_5 []+                                                                                                                                                                                                                 !appl_7 <- appl_6 `pseq` (kl_Parse_shen_LBexprRB `pseq` eq appl_6 kl_Parse_shen_LBexprRB)+                                                                                                                                                                                                                 !kl_if_8 <- appl_7 `pseq` kl_not appl_7+                                                                                                                                                                                                                 case kl_if_8 of+                                                                                                                                                                                                                     Atom (B (True)) -> do !appl_9 <- kl_Parse_shen_LBexprRB `pseq` hd kl_Parse_shen_LBexprRB+                                                                                                                                                                                                                                           let !aw_10 = Core.Types.Atom (Core.Types.UnboundSym "shen.hdtl")+                                                                                                                                                                                                                                           !appl_11 <- kl_Parse_shen_LBexprRB `pseq` applyWrapper aw_10 [kl_Parse_shen_LBexprRB]+                                                                                                                                                                                                                                           let !aw_12 = Core.Types.Atom (Core.Types.UnboundSym "shen.pair")+                                                                                                                                                                                                                                           appl_9 `pseq` (appl_11 `pseq` applyWrapper aw_12 [appl_9,+                                                                                                                                                                                                                                                                                             appl_11])+                                                                                                                                                                                                                     Atom (B (False)) -> do do let !aw_13 = Core.Types.Atom (Core.Types.UnboundSym "fail")+                                                                                                                                                                                                                                               applyWrapper aw_13 []+                                                                                                                                                                                                                     _ -> throwError "if: expected boolean")))+                                                                                                                                   !appl_14 <- kl_V2472 `pseq` kl_shen_LBexprRB kl_V2472+                                                                                                                                   appl_14 `pseq` applyWrapper appl_4 [appl_14]+                                                                                                             Atom (B (False)) -> do do return kl_YaccParse+                                                                                                             _ -> throwError "if: expected boolean")))+                                     let !appl_15 = ApplC (Func "lambda" (Context (\(!kl_Parse_shen_LBexprRB) -> do let !aw_16 = Core.Types.Atom (Core.Types.UnboundSym "fail")+                                                                                                                    !appl_17 <- applyWrapper aw_16 []+                                                                                                                    !appl_18 <- appl_17 `pseq` (kl_Parse_shen_LBexprRB `pseq` eq appl_17 kl_Parse_shen_LBexprRB)+                                                                                                                    !kl_if_19 <- appl_18 `pseq` kl_not appl_18+                                                                                                                    case kl_if_19 of+                                                                                                                        Atom (B (True)) -> do !appl_20 <- kl_Parse_shen_LBexprRB `pseq` hd kl_Parse_shen_LBexprRB+                                                                                                                                              !kl_if_21 <- appl_20 `pseq` consP appl_20+                                                                                                                                              !kl_if_22 <- case kl_if_21 of+                                                                                                                                                               Atom (B (True)) -> do !appl_23 <- kl_Parse_shen_LBexprRB `pseq` hd kl_Parse_shen_LBexprRB+                                                                                                                                                                                     !appl_24 <- appl_23 `pseq` hd appl_23+                                                                                                                                                                                     !kl_if_25 <- appl_24 `pseq` eq (Core.Types.Atom (Core.Types.UnboundSym ":")) appl_24+                                                                                                                                                                                     case kl_if_25 of+                                                                                                                                                                                         Atom (B (True)) -> do return (Atom (B True))+                                                                                                                                                                                         Atom (B (False)) -> do do return (Atom (B False))+                                                                                                                                                                                         _ -> throwError "if: expected boolean"+                                                                                                                                                               Atom (B (False)) -> do do return (Atom (B False))+                                                                                                                                                               _ -> throwError "if: expected boolean"+                                                                                                                                              case kl_if_22 of+                                                                                                                                                  Atom (B (True)) -> do let !appl_26 = ApplC (Func "lambda" (Context (\(!kl_Parse_shen_LBtypeRB) -> do let !aw_27 = Core.Types.Atom (Core.Types.UnboundSym "fail")+                                                                                                                                                                                                                                                       !appl_28 <- applyWrapper aw_27 []+                                                                                                                                                                                                                                                       !appl_29 <- appl_28 `pseq` (kl_Parse_shen_LBtypeRB `pseq` eq appl_28 kl_Parse_shen_LBtypeRB)+                                                                                                                                                                                                                                                       !kl_if_30 <- appl_29 `pseq` kl_not appl_29+                                                                                                                                                                                                                                                       case kl_if_30 of+                                                                                                                                                                                                                                                           Atom (B (True)) -> do !appl_31 <- kl_Parse_shen_LBtypeRB `pseq` hd kl_Parse_shen_LBtypeRB+                                                                                                                                                                                                                                                                                 let !aw_32 = Core.Types.Atom (Core.Types.UnboundSym "shen.hdtl")+                                                                                                                                                                                                                                                                                 !appl_33 <- kl_Parse_shen_LBexprRB `pseq` applyWrapper aw_32 [kl_Parse_shen_LBexprRB]+                                                                                                                                                                                                                                                                                 let !aw_34 = Core.Types.Atom (Core.Types.UnboundSym "shen.curry")+                                                                                                                                                                                                                                                                                 !appl_35 <- appl_33 `pseq` applyWrapper aw_34 [appl_33]+                                                                                                                                                                                                                                                                                 let !aw_36 = Core.Types.Atom (Core.Types.UnboundSym "shen.hdtl")+                                                                                                                                                                                                                                                                                 !appl_37 <- kl_Parse_shen_LBtypeRB `pseq` applyWrapper aw_36 [kl_Parse_shen_LBtypeRB]+                                                                                                                                                                                                                                                                                 let !aw_38 = Core.Types.Atom (Core.Types.UnboundSym "shen.demodulate")+                                                                                                                                                                                                                                                                                 !appl_39 <- appl_37 `pseq` applyWrapper aw_38 [appl_37]+                                                                                                                                                                                                                                                                                 let !appl_40 = Atom Nil+                                                                                                                                                                                                                                                                                 !appl_41 <- appl_39 `pseq` (appl_40 `pseq` klCons appl_39 appl_40)+                                                                                                                                                                                                                                                                                 !appl_42 <- appl_41 `pseq` klCons (Core.Types.Atom (Core.Types.UnboundSym ":")) appl_41+                                                                                                                                                                                                                                                                                 !appl_43 <- appl_35 `pseq` (appl_42 `pseq` klCons appl_35 appl_42)+                                                                                                                                                                                                                                                                                 let !aw_44 = Core.Types.Atom (Core.Types.UnboundSym "shen.pair")+                                                                                                                                                                                                                                                                                 appl_31 `pseq` (appl_43 `pseq` applyWrapper aw_44 [appl_31,+                                                                                                                                                                                                                                                                                                                                    appl_43])+                                                                                                                                                                                                                                                           Atom (B (False)) -> do do let !aw_45 = Core.Types.Atom (Core.Types.UnboundSym "fail")+                                                                                                                                                                                                                                                                                     applyWrapper aw_45 []+                                                                                                                                                                                                                                                           _ -> throwError "if: expected boolean")))+                                                                                                                                                                        !appl_46 <- kl_Parse_shen_LBexprRB `pseq` hd kl_Parse_shen_LBexprRB+                                                                                                                                                                        !appl_47 <- appl_46 `pseq` tl appl_46+                                                                                                                                                                        let !aw_48 = Core.Types.Atom (Core.Types.UnboundSym "shen.hdtl")+                                                                                                                                                                        !appl_49 <- kl_Parse_shen_LBexprRB `pseq` applyWrapper aw_48 [kl_Parse_shen_LBexprRB]+                                                                                                                                                                        let !aw_50 = Core.Types.Atom (Core.Types.UnboundSym "shen.pair")+                                                                                                                                                                        !appl_51 <- appl_47 `pseq` (appl_49 `pseq` applyWrapper aw_50 [appl_47,+                                                                                                                                                                                                                                       appl_49])+                                                                                                                                                                        !appl_52 <- appl_51 `pseq` kl_shen_LBtypeRB appl_51+                                                                                                                                                                        appl_52 `pseq` applyWrapper appl_26 [appl_52]+                                                                                                                                                  Atom (B (False)) -> do do let !aw_53 = Core.Types.Atom (Core.Types.UnboundSym "fail")+                                                                                                                                                                            applyWrapper aw_53 []+                                                                                                                                                  _ -> throwError "if: expected boolean"+                                                                                                                        Atom (B (False)) -> do do let !aw_54 = Core.Types.Atom (Core.Types.UnboundSym "fail")+                                                                                                                                                  applyWrapper aw_54 []+                                                                                                                        _ -> throwError "if: expected boolean")))+                                     !appl_55 <- kl_V2472 `pseq` kl_shen_LBexprRB kl_V2472+                                     !appl_56 <- appl_55 `pseq` applyWrapper appl_15 [appl_55]+                                     appl_56 `pseq` applyWrapper appl_0 [appl_56]++kl_shen_LBtypeRB :: Core.Types.KLValue ->+                    Core.Types.KLContext Core.Types.Env Core.Types.KLValue+kl_shen_LBtypeRB (!kl_V2474) = do let !appl_0 = ApplC (Func "lambda" (Context (\(!kl_Parse_shen_LBexprRB) -> do let !aw_1 = Core.Types.Atom (Core.Types.UnboundSym "fail")+                                                                                                                !appl_2 <- applyWrapper aw_1 []+                                                                                                                !appl_3 <- appl_2 `pseq` (kl_Parse_shen_LBexprRB `pseq` eq appl_2 kl_Parse_shen_LBexprRB)+                                                                                                                !kl_if_4 <- appl_3 `pseq` kl_not appl_3+                                                                                                                case kl_if_4 of+                                                                                                                    Atom (B (True)) -> do !appl_5 <- kl_Parse_shen_LBexprRB `pseq` hd kl_Parse_shen_LBexprRB+                                                                                                                                          let !aw_6 = Core.Types.Atom (Core.Types.UnboundSym "shen.hdtl")+                                                                                                                                          !appl_7 <- kl_Parse_shen_LBexprRB `pseq` applyWrapper aw_6 [kl_Parse_shen_LBexprRB]+                                                                                                                                          !appl_8 <- appl_7 `pseq` kl_shen_curry_type appl_7+                                                                                                                                          let !aw_9 = Core.Types.Atom (Core.Types.UnboundSym "shen.pair")+                                                                                                                                          appl_5 `pseq` (appl_8 `pseq` applyWrapper aw_9 [appl_5,+                                                                                                                                                                                          appl_8])+                                                                                                                    Atom (B (False)) -> do do let !aw_10 = Core.Types.Atom (Core.Types.UnboundSym "fail")+                                                                                                                                              applyWrapper aw_10 []+                                                                                                                    _ -> throwError "if: expected boolean")))+                                  !appl_11 <- kl_V2474 `pseq` kl_shen_LBexprRB kl_V2474+                                  appl_11 `pseq` applyWrapper appl_0 [appl_11]++kl_shen_LBdoubleunderlineRB :: Core.Types.KLValue ->+                               Core.Types.KLContext Core.Types.Env Core.Types.KLValue+kl_shen_LBdoubleunderlineRB (!kl_V2476) = do !appl_0 <- kl_V2476 `pseq` hd kl_V2476+                                             !kl_if_1 <- appl_0 `pseq` consP appl_0+                                             case kl_if_1 of+                                                 Atom (B (True)) -> do let !appl_2 = ApplC (Func "lambda" (Context (\(!kl_Parse_X) -> do !kl_if_3 <- kl_Parse_X `pseq` kl_shen_doubleunderlineP kl_Parse_X+                                                                                                                                         case kl_if_3 of+                                                                                                                                             Atom (B (True)) -> do !appl_4 <- kl_V2476 `pseq` hd kl_V2476+                                                                                                                                                                   !appl_5 <- appl_4 `pseq` tl appl_4+                                                                                                                                                                   let !aw_6 = Core.Types.Atom (Core.Types.UnboundSym "shen.hdtl")+                                                                                                                                                                   !appl_7 <- kl_V2476 `pseq` applyWrapper aw_6 [kl_V2476]+                                                                                                                                                                   let !aw_8 = Core.Types.Atom (Core.Types.UnboundSym "shen.pair")+                                                                                                                                                                   !appl_9 <- appl_5 `pseq` (appl_7 `pseq` applyWrapper aw_8 [appl_5,+                                                                                                                                                                                                                              appl_7])+                                                                                                                                                                   !appl_10 <- appl_9 `pseq` hd appl_9+                                                                                                                                                                   let !aw_11 = Core.Types.Atom (Core.Types.UnboundSym "shen.pair")+                                                                                                                                                                   appl_10 `pseq` (kl_Parse_X `pseq` applyWrapper aw_11 [appl_10,+                                                                                                                                                                                                                         kl_Parse_X])+                                                                                                                                             Atom (B (False)) -> do do let !aw_12 = Core.Types.Atom (Core.Types.UnboundSym "fail")+                                                                                                                                                                       applyWrapper aw_12 []+                                                                                                                                             _ -> throwError "if: expected boolean")))+                                                                       !appl_13 <- kl_V2476 `pseq` hd kl_V2476+                                                                       !appl_14 <- appl_13 `pseq` hd appl_13+                                                                       appl_14 `pseq` applyWrapper appl_2 [appl_14]+                                                 Atom (B (False)) -> do do let !aw_15 = Core.Types.Atom (Core.Types.UnboundSym "fail")+                                                                           applyWrapper aw_15 []+                                                 _ -> throwError "if: expected boolean"++kl_shen_LBsingleunderlineRB :: Core.Types.KLValue ->+                               Core.Types.KLContext Core.Types.Env Core.Types.KLValue+kl_shen_LBsingleunderlineRB (!kl_V2478) = do !appl_0 <- kl_V2478 `pseq` hd kl_V2478+                                             !kl_if_1 <- appl_0 `pseq` consP appl_0+                                             case kl_if_1 of+                                                 Atom (B (True)) -> do let !appl_2 = ApplC (Func "lambda" (Context (\(!kl_Parse_X) -> do !kl_if_3 <- kl_Parse_X `pseq` kl_shen_singleunderlineP kl_Parse_X+                                                                                                                                         case kl_if_3 of+                                                                                                                                             Atom (B (True)) -> do !appl_4 <- kl_V2478 `pseq` hd kl_V2478+                                                                                                                                                                   !appl_5 <- appl_4 `pseq` tl appl_4+                                                                                                                                                                   let !aw_6 = Core.Types.Atom (Core.Types.UnboundSym "shen.hdtl")+                                                                                                                                                                   !appl_7 <- kl_V2478 `pseq` applyWrapper aw_6 [kl_V2478]+                                                                                                                                                                   let !aw_8 = Core.Types.Atom (Core.Types.UnboundSym "shen.pair")+                                                                                                                                                                   !appl_9 <- appl_5 `pseq` (appl_7 `pseq` applyWrapper aw_8 [appl_5,+                                                                                                                                                                                                                              appl_7])+                                                                                                                                                                   !appl_10 <- appl_9 `pseq` hd appl_9+                                                                                                                                                                   let !aw_11 = Core.Types.Atom (Core.Types.UnboundSym "shen.pair")+                                                                                                                                                                   appl_10 `pseq` (kl_Parse_X `pseq` applyWrapper aw_11 [appl_10,+                                                                                                                                                                                                                         kl_Parse_X])+                                                                                                                                             Atom (B (False)) -> do do let !aw_12 = Core.Types.Atom (Core.Types.UnboundSym "fail")+                                                                                                                                                                       applyWrapper aw_12 []+                                                                                                                                             _ -> throwError "if: expected boolean")))+                                                                       !appl_13 <- kl_V2478 `pseq` hd kl_V2478+                                                                       !appl_14 <- appl_13 `pseq` hd appl_13+                                                                       appl_14 `pseq` applyWrapper appl_2 [appl_14]+                                                 Atom (B (False)) -> do do let !aw_15 = Core.Types.Atom (Core.Types.UnboundSym "fail")+                                                                           applyWrapper aw_15 []+                                                 _ -> throwError "if: expected boolean"++kl_shen_singleunderlineP :: Core.Types.KLValue ->+                            Core.Types.KLContext Core.Types.Env Core.Types.KLValue+kl_shen_singleunderlineP (!kl_V2480) = do !kl_if_0 <- kl_V2480 `pseq` kl_symbolP kl_V2480+                                          case kl_if_0 of+                                              Atom (B (True)) -> do !appl_1 <- kl_V2480 `pseq` str kl_V2480+                                                                    !kl_if_2 <- appl_1 `pseq` kl_shen_shP appl_1+                                                                    case kl_if_2 of+                                                                        Atom (B (True)) -> do return (Atom (B True))+                                                                        Atom (B (False)) -> do do return (Atom (B False))+                                                                        _ -> throwError "if: expected boolean"+                                              Atom (B (False)) -> do do return (Atom (B False))+                                              _ -> throwError "if: expected boolean"++kl_shen_shP :: Core.Types.KLValue ->+               Core.Types.KLContext Core.Types.Env Core.Types.KLValue+kl_shen_shP (!kl_V2482) = do let pat_cond_0 = do return (Atom (B True))+                                 pat_cond_1 = do do !appl_2 <- kl_V2482 `pseq` pos kl_V2482 (Core.Types.Atom (Core.Types.N (Core.Types.KI 0)))+                                                    !kl_if_3 <- appl_2 `pseq` eq appl_2 (Core.Types.Atom (Core.Types.Str "_"))+                                                    case kl_if_3 of+                                                        Atom (B (True)) -> do !appl_4 <- kl_V2482 `pseq` tlstr kl_V2482+                                                                              !kl_if_5 <- appl_4 `pseq` kl_shen_shP appl_4+                                                                              case kl_if_5 of+                                                                                  Atom (B (True)) -> do return (Atom (B True))+                                                                                  Atom (B (False)) -> do do return (Atom (B False))+                                                                                  _ -> throwError "if: expected boolean"+                                                        Atom (B (False)) -> do do return (Atom (B False))+                                                        _ -> throwError "if: expected boolean"+                              in case kl_V2482 of+                                     kl_V2482@(Atom (Str "_")) -> pat_cond_0+                                     _ -> pat_cond_1++kl_shen_doubleunderlineP :: Core.Types.KLValue ->+                            Core.Types.KLContext Core.Types.Env Core.Types.KLValue+kl_shen_doubleunderlineP (!kl_V2484) = do !kl_if_0 <- kl_V2484 `pseq` kl_symbolP kl_V2484+                                          case kl_if_0 of+                                              Atom (B (True)) -> do !appl_1 <- kl_V2484 `pseq` str kl_V2484+                                                                    !kl_if_2 <- appl_1 `pseq` kl_shen_dhP appl_1+                                                                    case kl_if_2 of+                                                                        Atom (B (True)) -> do return (Atom (B True))+                                                                        Atom (B (False)) -> do do return (Atom (B False))+                                                                        _ -> throwError "if: expected boolean"+                                              Atom (B (False)) -> do do return (Atom (B False))+                                              _ -> throwError "if: expected boolean"++kl_shen_dhP :: Core.Types.KLValue ->+               Core.Types.KLContext Core.Types.Env Core.Types.KLValue+kl_shen_dhP (!kl_V2486) = do let pat_cond_0 = do return (Atom (B True))+                                 pat_cond_1 = do do !appl_2 <- kl_V2486 `pseq` pos kl_V2486 (Core.Types.Atom (Core.Types.N (Core.Types.KI 0)))+                                                    !kl_if_3 <- appl_2 `pseq` eq appl_2 (Core.Types.Atom (Core.Types.Str "="))+                                                    case kl_if_3 of+                                                        Atom (B (True)) -> do !appl_4 <- kl_V2486 `pseq` tlstr kl_V2486+                                                                              !kl_if_5 <- appl_4 `pseq` kl_shen_dhP appl_4+                                                                              case kl_if_5 of+                                                                                  Atom (B (True)) -> do return (Atom (B True))+                                                                                  Atom (B (False)) -> do do return (Atom (B False))+                                                                                  _ -> throwError "if: expected boolean"+                                                        Atom (B (False)) -> do do return (Atom (B False))+                                                        _ -> throwError "if: expected boolean"+                              in case kl_V2486 of+                                     kl_V2486@(Atom (Str "=")) -> pat_cond_0+                                     _ -> pat_cond_1++kl_shen_process_datatype :: Core.Types.KLValue ->+                            Core.Types.KLValue ->+                            Core.Types.KLContext Core.Types.Env Core.Types.KLValue+kl_shen_process_datatype (!kl_V2489) (!kl_V2490) = do !appl_0 <- kl_V2489 `pseq` (kl_V2490 `pseq` kl_shen_rules_RBhorn_clauses kl_V2489 kl_V2490)+                                                      let !aw_1 = Core.Types.Atom (Core.Types.UnboundSym "shen.s-prolog")+                                                      !appl_2 <- appl_0 `pseq` applyWrapper aw_1 [appl_0]+                                                      appl_2 `pseq` kl_shen_remember_datatype appl_2++kl_shen_remember_datatype :: Core.Types.KLValue ->+                             Core.Types.KLContext Core.Types.Env Core.Types.KLValue+kl_shen_remember_datatype (!kl_V2496) = do let pat_cond_0 kl_V2496 kl_V2496h kl_V2496t = do !appl_1 <- value (Core.Types.Atom (Core.Types.UnboundSym "shen.*datatypes*"))+                                                                                            let !aw_2 = Core.Types.Atom (Core.Types.UnboundSym "adjoin")+                                                                                            !appl_3 <- kl_V2496h `pseq` (appl_1 `pseq` applyWrapper aw_2 [kl_V2496h,+                                                                                                                                                          appl_1])+                                                                                            !appl_4 <- appl_3 `pseq` klSet (Core.Types.Atom (Core.Types.UnboundSym "shen.*datatypes*")) appl_3+                                                                                            !appl_5 <- value (Core.Types.Atom (Core.Types.UnboundSym "shen.*alldatatypes*"))+                                                                                            let !aw_6 = Core.Types.Atom (Core.Types.UnboundSym "adjoin")+                                                                                            !appl_7 <- kl_V2496h `pseq` (appl_5 `pseq` applyWrapper aw_6 [kl_V2496h,+                                                                                                                                                          appl_5])+                                                                                            !appl_8 <- appl_7 `pseq` klSet (Core.Types.Atom (Core.Types.UnboundSym "shen.*alldatatypes*")) appl_7+                                                                                            !appl_9 <- appl_8 `pseq` (kl_V2496h `pseq` kl_do appl_8 kl_V2496h)+                                                                                            appl_4 `pseq` (appl_9 `pseq` kl_do appl_4 appl_9)+                                               pat_cond_10 = do do let !aw_11 = Core.Types.Atom (Core.Types.UnboundSym "shen.f_error")+                                                                   applyWrapper aw_11 [ApplC (wrapNamed "shen.remember-datatype" kl_shen_remember_datatype)]+                                            in case kl_V2496 of+                                                   !(kl_V2496@(Cons (!kl_V2496h)+                                                                    (!kl_V2496t))) -> pat_cond_0 kl_V2496 kl_V2496h kl_V2496t+                                                   _ -> pat_cond_10++kl_shen_rules_RBhorn_clauses :: Core.Types.KLValue ->+                                Core.Types.KLValue ->+                                Core.Types.KLContext Core.Types.Env Core.Types.KLValue+kl_shen_rules_RBhorn_clauses (!kl_V2501) (!kl_V2502) = do let !appl_0 = Atom Nil+                                                          !kl_if_1 <- appl_0 `pseq` (kl_V2502 `pseq` eq appl_0 kl_V2502)+                                                          case kl_if_1 of+                                                              Atom (B (True)) -> do return (Atom Nil)+                                                              Atom (B (False)) -> do !kl_if_2 <- let pat_cond_3 kl_V2502 kl_V2502h kl_V2502t = do !kl_if_4 <- kl_V2502h `pseq` kl_tupleP kl_V2502h+                                                                                                                                                  !kl_if_5 <- case kl_if_4 of+                                                                                                                                                                  Atom (B (True)) -> do !appl_6 <- kl_V2502h `pseq` kl_fst kl_V2502h+                                                                                                                                                                                        !kl_if_7 <- appl_6 `pseq` eq (Core.Types.Atom (Core.Types.UnboundSym "shen.single")) appl_6+                                                                                                                                                                                        case kl_if_7 of+                                                                                                                                                                                            Atom (B (True)) -> do return (Atom (B True))+                                                                                                                                                                                            Atom (B (False)) -> do do return (Atom (B False))+                                                                                                                                                                                            _ -> throwError "if: expected boolean"+                                                                                                                                                                  Atom (B (False)) -> do do return (Atom (B False))+                                                                                                                                                                  _ -> throwError "if: expected boolean"+                                                                                                                                                  case kl_if_5 of+                                                                                                                                                      Atom (B (True)) -> do return (Atom (B True))+                                                                                                                                                      Atom (B (False)) -> do do return (Atom (B False))+                                                                                                                                                      _ -> throwError "if: expected boolean"+                                                                                                     pat_cond_8 = do do return (Atom (B False))+                                                                                                  in case kl_V2502 of+                                                                                                         !(kl_V2502@(Cons (!kl_V2502h)+                                                                                                                          (!kl_V2502t))) -> pat_cond_3 kl_V2502 kl_V2502h kl_V2502t+                                                                                                         _ -> pat_cond_8+                                                                                     case kl_if_2 of+                                                                                         Atom (B (True)) -> do !appl_9 <- kl_V2502 `pseq` hd kl_V2502+                                                                                                               !appl_10 <- appl_9 `pseq` kl_snd appl_9+                                                                                                               !appl_11 <- kl_V2501 `pseq` (appl_10 `pseq` kl_shen_rule_RBhorn_clause kl_V2501 appl_10)+                                                                                                               !appl_12 <- kl_V2502 `pseq` tl kl_V2502+                                                                                                               !appl_13 <- kl_V2501 `pseq` (appl_12 `pseq` kl_shen_rules_RBhorn_clauses kl_V2501 appl_12)+                                                                                                               appl_11 `pseq` (appl_13 `pseq` klCons appl_11 appl_13)+                                                                                         Atom (B (False)) -> do !kl_if_14 <- let pat_cond_15 kl_V2502 kl_V2502h kl_V2502t = do !kl_if_16 <- kl_V2502h `pseq` kl_tupleP kl_V2502h+                                                                                                                                                                               !kl_if_17 <- case kl_if_16 of+                                                                                                                                                                                                Atom (B (True)) -> do !appl_18 <- kl_V2502h `pseq` kl_fst kl_V2502h+                                                                                                                                                                                                                      !kl_if_19 <- appl_18 `pseq` eq (Core.Types.Atom (Core.Types.UnboundSym "shen.double")) appl_18+                                                                                                                                                                                                                      case kl_if_19 of+                                                                                                                                                                                                                          Atom (B (True)) -> do return (Atom (B True))+                                                                                                                                                                                                                          Atom (B (False)) -> do do return (Atom (B False))+                                                                                                                                                                                                                          _ -> throwError "if: expected boolean"+                                                                                                                                                                                                Atom (B (False)) -> do do return (Atom (B False))+                                                                                                                                                                                                _ -> throwError "if: expected boolean"+                                                                                                                                                                               case kl_if_17 of+                                                                                                                                                                                   Atom (B (True)) -> do return (Atom (B True))+                                                                                                                                                                                   Atom (B (False)) -> do do return (Atom (B False))+                                                                                                                                                                                   _ -> throwError "if: expected boolean"+                                                                                                                                 pat_cond_20 = do do return (Atom (B False))+                                                                                                                              in case kl_V2502 of+                                                                                                                                     !(kl_V2502@(Cons (!kl_V2502h)+                                                                                                                                                      (!kl_V2502t))) -> pat_cond_15 kl_V2502 kl_V2502h kl_V2502t+                                                                                                                                     _ -> pat_cond_20+                                                                                                                case kl_if_14 of+                                                                                                                    Atom (B (True)) -> do !appl_21 <- kl_V2502 `pseq` hd kl_V2502+                                                                                                                                          !appl_22 <- appl_21 `pseq` kl_snd appl_21+                                                                                                                                          !appl_23 <- appl_22 `pseq` kl_shen_double_RBsingles appl_22+                                                                                                                                          !appl_24 <- kl_V2502 `pseq` tl kl_V2502+                                                                                                                                          !appl_25 <- appl_23 `pseq` (appl_24 `pseq` kl_append appl_23 appl_24)+                                                                                                                                          kl_V2501 `pseq` (appl_25 `pseq` kl_shen_rules_RBhorn_clauses kl_V2501 appl_25)+                                                                                                                    Atom (B (False)) -> do do let !aw_26 = Core.Types.Atom (Core.Types.UnboundSym "shen.f_error")+                                                                                                                                              applyWrapper aw_26 [ApplC (wrapNamed "shen.rules->horn-clauses" kl_shen_rules_RBhorn_clauses)]+                                                                                                                    _ -> throwError "if: expected boolean"+                                                                                         _ -> throwError "if: expected boolean"+                                                              _ -> throwError "if: expected boolean"++kl_shen_double_RBsingles :: Core.Types.KLValue ->+                            Core.Types.KLContext Core.Types.Env Core.Types.KLValue+kl_shen_double_RBsingles (!kl_V2504) = do !appl_0 <- kl_V2504 `pseq` kl_shen_right_rule kl_V2504+                                          !appl_1 <- kl_V2504 `pseq` kl_shen_left_rule kl_V2504+                                          let !appl_2 = Atom Nil+                                          !appl_3 <- appl_1 `pseq` (appl_2 `pseq` klCons appl_1 appl_2)+                                          appl_0 `pseq` (appl_3 `pseq` klCons appl_0 appl_3)++kl_shen_right_rule :: Core.Types.KLValue ->+                      Core.Types.KLContext Core.Types.Env Core.Types.KLValue+kl_shen_right_rule (!kl_V2506) = do kl_V2506 `pseq` kl_Atp (Core.Types.Atom (Core.Types.UnboundSym "shen.single")) kl_V2506++kl_shen_left_rule :: Core.Types.KLValue ->+                     Core.Types.KLContext Core.Types.Env Core.Types.KLValue+kl_shen_left_rule (!kl_V2508) = do !kl_if_0 <- let pat_cond_1 kl_V2508 kl_V2508h kl_V2508t = do !kl_if_2 <- let pat_cond_3 kl_V2508t kl_V2508th kl_V2508tt = do !kl_if_4 <- let pat_cond_5 kl_V2508tt kl_V2508tth kl_V2508ttt = do !kl_if_6 <- kl_V2508tth `pseq` kl_tupleP kl_V2508tth+                                                                                                                                                                                                                                   !kl_if_7 <- case kl_if_6 of+                                                                                                                                                                                                                                                   Atom (B (True)) -> do let !appl_8 = Atom Nil+                                                                                                                                                                                                                                                                         !appl_9 <- kl_V2508tth `pseq` kl_fst kl_V2508tth+                                                                                                                                                                                                                                                                         !kl_if_10 <- appl_8 `pseq` (appl_9 `pseq` eq appl_8 appl_9)+                                                                                                                                                                                                                                                                         !kl_if_11 <- case kl_if_10 of+                                                                                                                                                                                                                                                                                          Atom (B (True)) -> do let !appl_12 = Atom Nil+                                                                                                                                                                                                                                                                                                                !kl_if_13 <- appl_12 `pseq` (kl_V2508ttt `pseq` eq appl_12 kl_V2508ttt)+                                                                                                                                                                                                                                                                                                                case kl_if_13 of+                                                                                                                                                                                                                                                                                                                    Atom (B (True)) -> do return (Atom (B True))+                                                                                                                                                                                                                                                                                                                    Atom (B (False)) -> do do return (Atom (B False))+                                                                                                                                                                                                                                                                                                                    _ -> throwError "if: expected boolean"+                                                                                                                                                                                                                                                                                          Atom (B (False)) -> do do return (Atom (B False))+                                                                                                                                                                                                                                                                                          _ -> throwError "if: expected boolean"+                                                                                                                                                                                                                                                                         case kl_if_11 of+                                                                                                                                                                                                                                                                             Atom (B (True)) -> do return (Atom (B True))+                                                                                                                                                                                                                                                                             Atom (B (False)) -> do do return (Atom (B False))+                                                                                                                                                                                                                                                                             _ -> throwError "if: expected boolean"+                                                                                                                                                                                                                                                   Atom (B (False)) -> do do return (Atom (B False))+                                                                                                                                                                                                                                                   _ -> throwError "if: expected boolean"+                                                                                                                                                                                                                                   case kl_if_7 of+                                                                                                                                                                                                                                       Atom (B (True)) -> do return (Atom (B True))+                                                                                                                                                                                                                                       Atom (B (False)) -> do do return (Atom (B False))+                                                                                                                                                                                                                                       _ -> throwError "if: expected boolean"+                                                                                                                                                                                pat_cond_14 = do do return (Atom (B False))+                                                                                                                                                                             in case kl_V2508tt of+                                                                                                                                                                                    !(kl_V2508tt@(Cons (!kl_V2508tth)+                                                                                                                                                                                                       (!kl_V2508ttt))) -> pat_cond_5 kl_V2508tt kl_V2508tth kl_V2508ttt+                                                                                                                                                                                    _ -> pat_cond_14+                                                                                                                                                                case kl_if_4 of+                                                                                                                                                                    Atom (B (True)) -> do return (Atom (B True))+                                                                                                                                                                    Atom (B (False)) -> do do return (Atom (B False))+                                                                                                                                                                    _ -> throwError "if: expected boolean"+                                                                                                                pat_cond_15 = do do return (Atom (B False))+                                                                                                             in case kl_V2508t of+                                                                                                                    !(kl_V2508t@(Cons (!kl_V2508th)+                                                                                                                                      (!kl_V2508tt))) -> pat_cond_3 kl_V2508t kl_V2508th kl_V2508tt+                                                                                                                    _ -> pat_cond_15+                                                                                                case kl_if_2 of+                                                                                                    Atom (B (True)) -> do return (Atom (B True))+                                                                                                    Atom (B (False)) -> do do return (Atom (B False))+                                                                                                    _ -> throwError "if: expected boolean"+                                                   pat_cond_16 = do do return (Atom (B False))+                                                in case kl_V2508 of+                                                       !(kl_V2508@(Cons (!kl_V2508h)+                                                                        (!kl_V2508t))) -> pat_cond_1 kl_V2508 kl_V2508h kl_V2508t+                                                       _ -> pat_cond_16+                                   case kl_if_0 of+                                       Atom (B (True)) -> do let !appl_17 = ApplC (Func "lambda" (Context (\(!kl_Q) -> do let !appl_18 = ApplC (Func "lambda" (Context (\(!kl_NewConclusion) -> do let !appl_19 = ApplC (Func "lambda" (Context (\(!kl_NewPremises) -> do !appl_20 <- kl_V2508 `pseq` hd kl_V2508+                                                                                                                                                                                                                                                                          let !appl_21 = Atom Nil+                                                                                                                                                                                                                                                                          !appl_22 <- kl_NewConclusion `pseq` (appl_21 `pseq` klCons kl_NewConclusion appl_21)+                                                                                                                                                                                                                                                                          !appl_23 <- kl_NewPremises `pseq` (appl_22 `pseq` klCons kl_NewPremises appl_22)+                                                                                                                                                                                                                                                                          !appl_24 <- appl_20 `pseq` (appl_23 `pseq` klCons appl_20 appl_23)+                                                                                                                                                                                                                                                                          appl_24 `pseq` kl_Atp (Core.Types.Atom (Core.Types.UnboundSym "shen.single")) appl_24)))+                                                                                                                                                                                                   let !appl_25 = ApplC (Func "lambda" (Context (\(!kl_X) -> do kl_X `pseq` kl_shen_right_RBleft kl_X)))+                                                                                                                                                                                                   !appl_26 <- kl_V2508 `pseq` tl kl_V2508+                                                                                                                                                                                                   !appl_27 <- appl_26 `pseq` hd appl_26+                                                                                                                                                                                                   !appl_28 <- appl_25 `pseq` (appl_27 `pseq` kl_map appl_25 appl_27)+                                                                                                                                                                                                   !appl_29 <- appl_28 `pseq` (kl_Q `pseq` kl_Atp appl_28 kl_Q)+                                                                                                                                                                                                   let !appl_30 = Atom Nil+                                                                                                                                                                                                   !appl_31 <- appl_29 `pseq` (appl_30 `pseq` klCons appl_29 appl_30)+                                                                                                                                                                                                   appl_31 `pseq` applyWrapper appl_19 [appl_31])))+                                                                                                                          !appl_32 <- kl_V2508 `pseq` tl kl_V2508+                                                                                                                          !appl_33 <- appl_32 `pseq` tl appl_32+                                                                                                                          !appl_34 <- appl_33 `pseq` hd appl_33+                                                                                                                          !appl_35 <- appl_34 `pseq` kl_snd appl_34+                                                                                                                          let !appl_36 = Atom Nil+                                                                                                                          !appl_37 <- appl_35 `pseq` (appl_36 `pseq` klCons appl_35 appl_36)+                                                                                                                          !appl_38 <- appl_37 `pseq` (kl_Q `pseq` kl_Atp appl_37 kl_Q)+                                                                                                                          appl_38 `pseq` applyWrapper appl_18 [appl_38])))+                                                             !appl_39 <- kl_gensym (Core.Types.Atom (Core.Types.UnboundSym "Qv"))+                                                             appl_39 `pseq` applyWrapper appl_17 [appl_39]+                                       Atom (B (False)) -> do do let !aw_40 = Core.Types.Atom (Core.Types.UnboundSym "shen.f_error")+                                                                 applyWrapper aw_40 [ApplC (wrapNamed "shen.left-rule" kl_shen_left_rule)]+                                       _ -> throwError "if: expected boolean"++kl_shen_right_RBleft :: Core.Types.KLValue ->+                        Core.Types.KLContext Core.Types.Env Core.Types.KLValue+kl_shen_right_RBleft (!kl_V2514) = do !kl_if_0 <- kl_V2514 `pseq` kl_tupleP kl_V2514+                                      !kl_if_1 <- case kl_if_0 of+                                                      Atom (B (True)) -> do let !appl_2 = Atom Nil+                                                                            !appl_3 <- kl_V2514 `pseq` kl_fst kl_V2514+                                                                            !kl_if_4 <- appl_2 `pseq` (appl_3 `pseq` eq appl_2 appl_3)+                                                                            case kl_if_4 of+                                                                                Atom (B (True)) -> do return (Atom (B True))+                                                                                Atom (B (False)) -> do do return (Atom (B False))+                                                                                _ -> throwError "if: expected boolean"+                                                      Atom (B (False)) -> do do return (Atom (B False))+                                                      _ -> throwError "if: expected boolean"+                                      case kl_if_1 of+                                          Atom (B (True)) -> do kl_V2514 `pseq` kl_snd kl_V2514+                                          Atom (B (False)) -> do do simpleError (Core.Types.Atom (Core.Types.Str "syntax error with ==========\n"))+                                          _ -> throwError "if: expected boolean"++kl_shen_rule_RBhorn_clause :: Core.Types.KLValue ->+                              Core.Types.KLValue ->+                              Core.Types.KLContext Core.Types.Env Core.Types.KLValue+kl_shen_rule_RBhorn_clause (!kl_V2517) (!kl_V2518) = do !kl_if_0 <- let pat_cond_1 kl_V2518 kl_V2518h kl_V2518t = do !kl_if_2 <- let pat_cond_3 kl_V2518t kl_V2518th kl_V2518tt = do !kl_if_4 <- let pat_cond_5 kl_V2518tt kl_V2518tth kl_V2518ttt = do !kl_if_6 <- kl_V2518tth `pseq` kl_tupleP kl_V2518tth+                                                                                                                                                                                                                                                        !kl_if_7 <- case kl_if_6 of+                                                                                                                                                                                                                                                                        Atom (B (True)) -> do let !appl_8 = Atom Nil+                                                                                                                                                                                                                                                                                              !kl_if_9 <- appl_8 `pseq` (kl_V2518ttt `pseq` eq appl_8 kl_V2518ttt)+                                                                                                                                                                                                                                                                                              case kl_if_9 of+                                                                                                                                                                                                                                                                                                  Atom (B (True)) -> do return (Atom (B True))+                                                                                                                                                                                                                                                                                                  Atom (B (False)) -> do do return (Atom (B False))+                                                                                                                                                                                                                                                                                                  _ -> throwError "if: expected boolean"+                                                                                                                                                                                                                                                                        Atom (B (False)) -> do do return (Atom (B False))+                                                                                                                                                                                                                                                                        _ -> throwError "if: expected boolean"+                                                                                                                                                                                                                                                        case kl_if_7 of+                                                                                                                                                                                                                                                            Atom (B (True)) -> do return (Atom (B True))+                                                                                                                                                                                                                                                            Atom (B (False)) -> do do return (Atom (B False))+                                                                                                                                                                                                                                                            _ -> throwError "if: expected boolean"+                                                                                                                                                                                                     pat_cond_10 = do do return (Atom (B False))+                                                                                                                                                                                                  in case kl_V2518tt of+                                                                                                                                                                                                         !(kl_V2518tt@(Cons (!kl_V2518tth)+                                                                                                                                                                                                                            (!kl_V2518ttt))) -> pat_cond_5 kl_V2518tt kl_V2518tth kl_V2518ttt+                                                                                                                                                                                                         _ -> pat_cond_10+                                                                                                                                                                                     case kl_if_4 of+                                                                                                                                                                                         Atom (B (True)) -> do return (Atom (B True))+                                                                                                                                                                                         Atom (B (False)) -> do do return (Atom (B False))+                                                                                                                                                                                         _ -> throwError "if: expected boolean"+                                                                                                                                     pat_cond_11 = do do return (Atom (B False))+                                                                                                                                  in case kl_V2518t of+                                                                                                                                         !(kl_V2518t@(Cons (!kl_V2518th)+                                                                                                                                                           (!kl_V2518tt))) -> pat_cond_3 kl_V2518t kl_V2518th kl_V2518tt+                                                                                                                                         _ -> pat_cond_11+                                                                                                                     case kl_if_2 of+                                                                                                                         Atom (B (True)) -> do return (Atom (B True))+                                                                                                                         Atom (B (False)) -> do do return (Atom (B False))+                                                                                                                         _ -> throwError "if: expected boolean"+                                                                        pat_cond_12 = do do return (Atom (B False))+                                                                     in case kl_V2518 of+                                                                            !(kl_V2518@(Cons (!kl_V2518h)+                                                                                             (!kl_V2518t))) -> pat_cond_1 kl_V2518 kl_V2518h kl_V2518t+                                                                            _ -> pat_cond_12+                                                        case kl_if_0 of+                                                            Atom (B (True)) -> do !appl_13 <- kl_V2518 `pseq` tl kl_V2518+                                                                                  !appl_14 <- appl_13 `pseq` tl appl_13+                                                                                  !appl_15 <- appl_14 `pseq` hd appl_14+                                                                                  !appl_16 <- appl_15 `pseq` kl_snd appl_15+                                                                                  !appl_17 <- kl_V2517 `pseq` (appl_16 `pseq` kl_shen_rule_RBhorn_clause_head kl_V2517 appl_16)+                                                                                  !appl_18 <- kl_V2518 `pseq` hd kl_V2518+                                                                                  !appl_19 <- kl_V2518 `pseq` tl kl_V2518+                                                                                  !appl_20 <- appl_19 `pseq` hd appl_19+                                                                                  !appl_21 <- kl_V2518 `pseq` tl kl_V2518+                                                                                  !appl_22 <- appl_21 `pseq` tl appl_21+                                                                                  !appl_23 <- appl_22 `pseq` hd appl_22+                                                                                  !appl_24 <- appl_23 `pseq` kl_fst appl_23+                                                                                  !appl_25 <- appl_18 `pseq` (appl_20 `pseq` (appl_24 `pseq` kl_shen_rule_RBhorn_clause_body appl_18 appl_20 appl_24))+                                                                                  let !appl_26 = Atom Nil+                                                                                  !appl_27 <- appl_25 `pseq` (appl_26 `pseq` klCons appl_25 appl_26)+                                                                                  !appl_28 <- appl_27 `pseq` klCons (Core.Types.Atom (Core.Types.UnboundSym ":-")) appl_27+                                                                                  appl_17 `pseq` (appl_28 `pseq` klCons appl_17 appl_28)+                                                            Atom (B (False)) -> do do let !aw_29 = Core.Types.Atom (Core.Types.UnboundSym "shen.f_error")+                                                                                      applyWrapper aw_29 [ApplC (wrapNamed "shen.rule->horn-clause" kl_shen_rule_RBhorn_clause)]+                                                            _ -> throwError "if: expected boolean"++kl_shen_rule_RBhorn_clause_head :: Core.Types.KLValue ->+                                   Core.Types.KLValue ->+                                   Core.Types.KLContext Core.Types.Env Core.Types.KLValue+kl_shen_rule_RBhorn_clause_head (!kl_V2521) (!kl_V2522) = do !appl_0 <- kl_V2522 `pseq` kl_shen_mode_ify kl_V2522+                                                             let !appl_1 = Atom Nil+                                                             !appl_2 <- appl_1 `pseq` klCons (Core.Types.Atom (Core.Types.UnboundSym "Context_1957")) appl_1+                                                             !appl_3 <- appl_0 `pseq` (appl_2 `pseq` klCons appl_0 appl_2)+                                                             kl_V2521 `pseq` (appl_3 `pseq` klCons kl_V2521 appl_3)++kl_shen_mode_ify :: Core.Types.KLValue ->+                    Core.Types.KLContext Core.Types.Env Core.Types.KLValue+kl_shen_mode_ify (!kl_V2524) = do !kl_if_0 <- let pat_cond_1 kl_V2524 kl_V2524h kl_V2524t = do !kl_if_2 <- let pat_cond_3 kl_V2524t kl_V2524th kl_V2524tt = do !kl_if_4 <- let pat_cond_5 = do !kl_if_6 <- let pat_cond_7 kl_V2524tt kl_V2524tth kl_V2524ttt = do let !appl_8 = Atom Nil+                                                                                                                                                                                                                                                                  !kl_if_9 <- appl_8 `pseq` (kl_V2524ttt `pseq` eq appl_8 kl_V2524ttt)+                                                                                                                                                                                                                                                                  case kl_if_9 of+                                                                                                                                                                                                                                                                      Atom (B (True)) -> do return (Atom (B True))+                                                                                                                                                                                                                                                                      Atom (B (False)) -> do do return (Atom (B False))+                                                                                                                                                                                                                                                                      _ -> throwError "if: expected boolean"+                                                                                                                                                                                                               pat_cond_10 = do do return (Atom (B False))+                                                                                                                                                                                                            in case kl_V2524tt of+                                                                                                                                                                                                                   !(kl_V2524tt@(Cons (!kl_V2524tth)+                                                                                                                                                                                                                                      (!kl_V2524ttt))) -> pat_cond_7 kl_V2524tt kl_V2524tth kl_V2524ttt+                                                                                                                                                                                                                   _ -> pat_cond_10+                                                                                                                                                                                               case kl_if_6 of+                                                                                                                                                                                                   Atom (B (True)) -> do return (Atom (B True))+                                                                                                                                                                                                   Atom (B (False)) -> do do return (Atom (B False))+                                                                                                                                                                                                   _ -> throwError "if: expected boolean"+                                                                                                                                                                               pat_cond_11 = do do return (Atom (B False))+                                                                                                                                                                            in case kl_V2524th of+                                                                                                                                                                                   kl_V2524th@(Atom (UnboundSym ":")) -> pat_cond_5+                                                                                                                                                                                   kl_V2524th@(ApplC (PL ":"+                                                                                                                                                                                                         _)) -> pat_cond_5+                                                                                                                                                                                   kl_V2524th@(ApplC (Func ":"+                                                                                                                                                                                                           _)) -> pat_cond_5+                                                                                                                                                                                   _ -> pat_cond_11+                                                                                                                                                               case kl_if_4 of+                                                                                                                                                                   Atom (B (True)) -> do return (Atom (B True))+                                                                                                                                                                   Atom (B (False)) -> do do return (Atom (B False))+                                                                                                                                                                   _ -> throwError "if: expected boolean"+                                                                                                               pat_cond_12 = do do return (Atom (B False))+                                                                                                            in case kl_V2524t of+                                                                                                                   !(kl_V2524t@(Cons (!kl_V2524th)+                                                                                                                                     (!kl_V2524tt))) -> pat_cond_3 kl_V2524t kl_V2524th kl_V2524tt+                                                                                                                   _ -> pat_cond_12+                                                                                               case kl_if_2 of+                                                                                                   Atom (B (True)) -> do return (Atom (B True))+                                                                                                   Atom (B (False)) -> do do return (Atom (B False))+                                                                                                   _ -> throwError "if: expected boolean"+                                                  pat_cond_13 = do do return (Atom (B False))+                                               in case kl_V2524 of+                                                      !(kl_V2524@(Cons (!kl_V2524h)+                                                                       (!kl_V2524t))) -> pat_cond_1 kl_V2524 kl_V2524h kl_V2524t+                                                      _ -> pat_cond_13+                                  case kl_if_0 of+                                      Atom (B (True)) -> do !appl_14 <- kl_V2524 `pseq` hd kl_V2524+                                                            !appl_15 <- kl_V2524 `pseq` tl kl_V2524+                                                            !appl_16 <- appl_15 `pseq` tl appl_15+                                                            !appl_17 <- appl_16 `pseq` hd appl_16+                                                            let !appl_18 = Atom Nil+                                                            !appl_19 <- appl_18 `pseq` klCons (ApplC (wrapNamed "+" add)) appl_18+                                                            !appl_20 <- appl_17 `pseq` (appl_19 `pseq` klCons appl_17 appl_19)+                                                            !appl_21 <- appl_20 `pseq` klCons (Core.Types.Atom (Core.Types.UnboundSym "mode")) appl_20+                                                            let !appl_22 = Atom Nil+                                                            !appl_23 <- appl_21 `pseq` (appl_22 `pseq` klCons appl_21 appl_22)+                                                            !appl_24 <- appl_23 `pseq` klCons (Core.Types.Atom (Core.Types.UnboundSym ":")) appl_23+                                                            !appl_25 <- appl_14 `pseq` (appl_24 `pseq` klCons appl_14 appl_24)+                                                            let !appl_26 = Atom Nil+                                                            !appl_27 <- appl_26 `pseq` klCons (ApplC (wrapNamed "-" Primitives.subtract)) appl_26+                                                            !appl_28 <- appl_25 `pseq` (appl_27 `pseq` klCons appl_25 appl_27)+                                                            appl_28 `pseq` klCons (Core.Types.Atom (Core.Types.UnboundSym "mode")) appl_28+                                      Atom (B (False)) -> do do return kl_V2524+                                      _ -> throwError "if: expected boolean"++kl_shen_rule_RBhorn_clause_body :: Core.Types.KLValue ->+                                   Core.Types.KLValue ->+                                   Core.Types.KLValue ->+                                   Core.Types.KLContext Core.Types.Env Core.Types.KLValue+kl_shen_rule_RBhorn_clause_body (!kl_V2528) (!kl_V2529) (!kl_V2530) = do let !appl_0 = ApplC (Func "lambda" (Context (\(!kl_Variables) -> do let !appl_1 = ApplC (Func "lambda" (Context (\(!kl_Predicates) -> do let !appl_2 = ApplC (Func "lambda" (Context (\(!kl_SearchLiterals) -> do let !appl_3 = ApplC (Func "lambda" (Context (\(!kl_SearchClauses) -> do let !appl_4 = ApplC (Func "lambda" (Context (\(!kl_SideLiterals) -> do let !appl_5 = ApplC (Func "lambda" (Context (\(!kl_PremissLiterals) -> do !appl_6 <- kl_SideLiterals `pseq` (kl_PremissLiterals `pseq` kl_append kl_SideLiterals kl_PremissLiterals)+                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                    kl_SearchLiterals `pseq` (appl_6 `pseq` kl_append kl_SearchLiterals appl_6))))+                                                                                                                                                                                                                                                                                                                                                                                                                                          let !appl_7 = ApplC (Func "lambda" (Context (\(!kl_X) -> do !appl_8 <- kl_V2530 `pseq` kl_emptyP kl_V2530+                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                      kl_X `pseq` (appl_8 `pseq` kl_shen_construct_premiss_literal kl_X appl_8))))+                                                                                                                                                                                                                                                                                                                                                                                                                                          !appl_9 <- appl_7 `pseq` (kl_V2529 `pseq` kl_map appl_7 kl_V2529)+                                                                                                                                                                                                                                                                                                                                                                                                                                          appl_9 `pseq` applyWrapper appl_5 [appl_9])))+                                                                                                                                                                                                                                                                                                                                                                   !appl_10 <- kl_V2528 `pseq` kl_shen_construct_side_literals kl_V2528+                                                                                                                                                                                                                                                                                                                                                                   appl_10 `pseq` applyWrapper appl_4 [appl_10])))+                                                                                                                                                                                                                                                                                           !appl_11 <- kl_Predicates `pseq` (kl_V2530 `pseq` (kl_Variables `pseq` kl_shen_construct_search_clauses kl_Predicates kl_V2530 kl_Variables))+                                                                                                                                                                                                                                                                                           appl_11 `pseq` applyWrapper appl_3 [appl_11])))+                                                                                                                                                                                                                  !appl_12 <- kl_Predicates `pseq` (kl_Variables `pseq` kl_shen_construct_search_literals kl_Predicates kl_Variables (Core.Types.Atom (Core.Types.UnboundSym "Context_1957")) (Core.Types.Atom (Core.Types.UnboundSym "Context1_1957")))+                                                                                                                                                                                                                  appl_12 `pseq` applyWrapper appl_2 [appl_12])))+                                                                                                                                             let !appl_13 = ApplC (Func "lambda" (Context (\(!kl_X) -> do kl_gensym (Core.Types.Atom (Core.Types.UnboundSym "shen.cl")))))+                                                                                                                                             !appl_14 <- appl_13 `pseq` (kl_V2530 `pseq` kl_map appl_13 kl_V2530)+                                                                                                                                             appl_14 `pseq` applyWrapper appl_1 [appl_14])))+                                                                         let !appl_15 = ApplC (Func "lambda" (Context (\(!kl_X) -> do kl_X `pseq` kl_shen_extract_vars kl_X)))+                                                                         !appl_16 <- appl_15 `pseq` (kl_V2530 `pseq` kl_map appl_15 kl_V2530)+                                                                         appl_16 `pseq` applyWrapper appl_0 [appl_16]++kl_shen_construct_search_literals :: Core.Types.KLValue ->+                                     Core.Types.KLValue ->+                                     Core.Types.KLValue ->+                                     Core.Types.KLValue ->+                                     Core.Types.KLContext Core.Types.Env Core.Types.KLValue+kl_shen_construct_search_literals (!kl_V2539) (!kl_V2540) (!kl_V2541) (!kl_V2542) = do let !appl_0 = Atom Nil+                                                                                       !kl_if_1 <- appl_0 `pseq` (kl_V2539 `pseq` eq appl_0 kl_V2539)+                                                                                       !kl_if_2 <- case kl_if_1 of+                                                                                                       Atom (B (True)) -> do let !appl_3 = Atom Nil+                                                                                                                             !kl_if_4 <- appl_3 `pseq` (kl_V2540 `pseq` eq appl_3 kl_V2540)+                                                                                                                             case kl_if_4 of+                                                                                                                                 Atom (B (True)) -> do return (Atom (B True))+                                                                                                                                 Atom (B (False)) -> do do return (Atom (B False))+                                                                                                                                 _ -> throwError "if: expected boolean"+                                                                                                       Atom (B (False)) -> do do return (Atom (B False))+                                                                                                       _ -> throwError "if: expected boolean"+                                                                                       case kl_if_2 of+                                                                                           Atom (B (True)) -> do return (Atom Nil)+                                                                                           Atom (B (False)) -> do do kl_V2539 `pseq` (kl_V2540 `pseq` (kl_V2541 `pseq` (kl_V2542 `pseq` kl_shen_csl_help kl_V2539 kl_V2540 kl_V2541 kl_V2542)))+                                                                                           _ -> throwError "if: expected boolean"++kl_shen_csl_help :: Core.Types.KLValue ->+                    Core.Types.KLValue ->+                    Core.Types.KLValue ->+                    Core.Types.KLValue ->+                    Core.Types.KLContext Core.Types.Env Core.Types.KLValue+kl_shen_csl_help (!kl_V2549) (!kl_V2550) (!kl_V2551) (!kl_V2552) = do let !appl_0 = Atom Nil+                                                                      !kl_if_1 <- appl_0 `pseq` (kl_V2549 `pseq` eq appl_0 kl_V2549)+                                                                      !kl_if_2 <- case kl_if_1 of+                                                                                      Atom (B (True)) -> do let !appl_3 = Atom Nil+                                                                                                            !kl_if_4 <- appl_3 `pseq` (kl_V2550 `pseq` eq appl_3 kl_V2550)+                                                                                                            case kl_if_4 of+                                                                                                                Atom (B (True)) -> do return (Atom (B True))+                                                                                                                Atom (B (False)) -> do do return (Atom (B False))+                                                                                                                _ -> throwError "if: expected boolean"+                                                                                      Atom (B (False)) -> do do return (Atom (B False))+                                                                                      _ -> throwError "if: expected boolean"+                                                                      case kl_if_2 of+                                                                          Atom (B (True)) -> do let !appl_5 = Atom Nil+                                                                                                !appl_6 <- kl_V2551 `pseq` (appl_5 `pseq` klCons kl_V2551 appl_5)+                                                                                                !appl_7 <- appl_6 `pseq` klCons (Core.Types.Atom (Core.Types.UnboundSym "ContextOut_1957")) appl_6+                                                                                                !appl_8 <- appl_7 `pseq` klCons (Core.Types.Atom (Core.Types.UnboundSym "bind")) appl_7+                                                                                                let !appl_9 = Atom Nil+                                                                                                appl_8 `pseq` (appl_9 `pseq` klCons appl_8 appl_9)+                                                                          Atom (B (False)) -> do !kl_if_10 <- let pat_cond_11 kl_V2549 kl_V2549h kl_V2549t = do let pat_cond_12 kl_V2550 kl_V2550h kl_V2550t = do return (Atom (B True))+                                                                                                                                                                    pat_cond_13 = do do return (Atom (B False))+                                                                                                                                                                 in case kl_V2550 of+                                                                                                                                                                        !(kl_V2550@(Cons (!kl_V2550h)+                                                                                                                                                                                         (!kl_V2550t))) -> pat_cond_12 kl_V2550 kl_V2550h kl_V2550t+                                                                                                                                                                        _ -> pat_cond_13+                                                                                                                  pat_cond_14 = do do return (Atom (B False))+                                                                                                               in case kl_V2549 of+                                                                                                                      !(kl_V2549@(Cons (!kl_V2549h)+                                                                                                                                       (!kl_V2549t))) -> pat_cond_11 kl_V2549 kl_V2549h kl_V2549t+                                                                                                                      _ -> pat_cond_14+                                                                                                 case kl_if_10 of+                                                                                                     Atom (B (True)) -> do !appl_15 <- kl_V2549 `pseq` hd kl_V2549+                                                                                                                           !appl_16 <- kl_V2550 `pseq` hd kl_V2550+                                                                                                                           !appl_17 <- kl_V2552 `pseq` (appl_16 `pseq` klCons kl_V2552 appl_16)+                                                                                                                           !appl_18 <- kl_V2551 `pseq` (appl_17 `pseq` klCons kl_V2551 appl_17)+                                                                                                                           !appl_19 <- appl_15 `pseq` (appl_18 `pseq` klCons appl_15 appl_18)+                                                                                                                           !appl_20 <- kl_V2549 `pseq` tl kl_V2549+                                                                                                                           !appl_21 <- kl_V2550 `pseq` tl kl_V2550+                                                                                                                           !appl_22 <- kl_gensym (Core.Types.Atom (Core.Types.UnboundSym "Context"))+                                                                                                                           !appl_23 <- appl_20 `pseq` (appl_21 `pseq` (kl_V2552 `pseq` (appl_22 `pseq` kl_shen_csl_help appl_20 appl_21 kl_V2552 appl_22)))+                                                                                                                           appl_19 `pseq` (appl_23 `pseq` klCons appl_19 appl_23)+                                                                                                     Atom (B (False)) -> do do let !aw_24 = Core.Types.Atom (Core.Types.UnboundSym "shen.f_error")+                                                                                                                               applyWrapper aw_24 [ApplC (wrapNamed "shen.csl-help" kl_shen_csl_help)]+                                                                                                     _ -> throwError "if: expected boolean"+                                                                          _ -> throwError "if: expected boolean"++kl_shen_construct_search_clauses :: Core.Types.KLValue ->+                                    Core.Types.KLValue ->+                                    Core.Types.KLValue ->+                                    Core.Types.KLContext Core.Types.Env Core.Types.KLValue+kl_shen_construct_search_clauses (!kl_V2556) (!kl_V2557) (!kl_V2558) = do let !appl_0 = Atom Nil+                                                                          !kl_if_1 <- appl_0 `pseq` (kl_V2556 `pseq` eq appl_0 kl_V2556)+                                                                          !kl_if_2 <- case kl_if_1 of+                                                                                          Atom (B (True)) -> do let !appl_3 = Atom Nil+                                                                                                                !kl_if_4 <- appl_3 `pseq` (kl_V2557 `pseq` eq appl_3 kl_V2557)+                                                                                                                !kl_if_5 <- case kl_if_4 of+                                                                                                                                Atom (B (True)) -> do let !appl_6 = Atom Nil+                                                                                                                                                      !kl_if_7 <- appl_6 `pseq` (kl_V2558 `pseq` eq appl_6 kl_V2558)+                                                                                                                                                      case kl_if_7 of+                                                                                                                                                          Atom (B (True)) -> do return (Atom (B True))+                                                                                                                                                          Atom (B (False)) -> do do return (Atom (B False))+                                                                                                                                                          _ -> throwError "if: expected boolean"+                                                                                                                                Atom (B (False)) -> do do return (Atom (B False))+                                                                                                                                _ -> throwError "if: expected boolean"+                                                                                                                case kl_if_5 of+                                                                                                                    Atom (B (True)) -> do return (Atom (B True))+                                                                                                                    Atom (B (False)) -> do do return (Atom (B False))+                                                                                                                    _ -> throwError "if: expected boolean"+                                                                                          Atom (B (False)) -> do do return (Atom (B False))+                                                                                          _ -> throwError "if: expected boolean"+                                                                          case kl_if_2 of+                                                                              Atom (B (True)) -> do return (Core.Types.Atom (Core.Types.UnboundSym "shen.skip"))+                                                                              Atom (B (False)) -> do !kl_if_8 <- let pat_cond_9 kl_V2556 kl_V2556h kl_V2556t = do !kl_if_10 <- let pat_cond_11 kl_V2557 kl_V2557h kl_V2557t = do let pat_cond_12 kl_V2558 kl_V2558h kl_V2558t = do return (Atom (B True))+                                                                                                                                                                                                                                     pat_cond_13 = do do return (Atom (B False))+                                                                                                                                                                                                                                  in case kl_V2558 of+                                                                                                                                                                                                                                         !(kl_V2558@(Cons (!kl_V2558h)+                                                                                                                                                                                                                                                          (!kl_V2558t))) -> pat_cond_12 kl_V2558 kl_V2558h kl_V2558t+                                                                                                                                                                                                                                         _ -> pat_cond_13+                                                                                                                                                                                   pat_cond_14 = do do return (Atom (B False))+                                                                                                                                                                                in case kl_V2557 of+                                                                                                                                                                                       !(kl_V2557@(Cons (!kl_V2557h)+                                                                                                                                                                                                        (!kl_V2557t))) -> pat_cond_11 kl_V2557 kl_V2557h kl_V2557t+                                                                                                                                                                                       _ -> pat_cond_14+                                                                                                                                                                  case kl_if_10 of+                                                                                                                                                                      Atom (B (True)) -> do return (Atom (B True))+                                                                                                                                                                      Atom (B (False)) -> do do return (Atom (B False))+                                                                                                                                                                      _ -> throwError "if: expected boolean"+                                                                                                                     pat_cond_15 = do do return (Atom (B False))+                                                                                                                  in case kl_V2556 of+                                                                                                                         !(kl_V2556@(Cons (!kl_V2556h)+                                                                                                                                          (!kl_V2556t))) -> pat_cond_9 kl_V2556 kl_V2556h kl_V2556t+                                                                                                                         _ -> pat_cond_15+                                                                                                     case kl_if_8 of+                                                                                                         Atom (B (True)) -> do !appl_16 <- kl_V2556 `pseq` hd kl_V2556+                                                                                                                               !appl_17 <- kl_V2557 `pseq` hd kl_V2557+                                                                                                                               !appl_18 <- kl_V2558 `pseq` hd kl_V2558+                                                                                                                               !appl_19 <- appl_16 `pseq` (appl_17 `pseq` (appl_18 `pseq` kl_shen_construct_search_clause appl_16 appl_17 appl_18))+                                                                                                                               !appl_20 <- kl_V2556 `pseq` tl kl_V2556+                                                                                                                               !appl_21 <- kl_V2557 `pseq` tl kl_V2557+                                                                                                                               !appl_22 <- kl_V2558 `pseq` tl kl_V2558+                                                                                                                               !appl_23 <- appl_20 `pseq` (appl_21 `pseq` (appl_22 `pseq` kl_shen_construct_search_clauses appl_20 appl_21 appl_22))+                                                                                                                               appl_19 `pseq` (appl_23 `pseq` kl_do appl_19 appl_23)+                                                                                                         Atom (B (False)) -> do do let !aw_24 = Core.Types.Atom (Core.Types.UnboundSym "shen.f_error")+                                                                                                                                   applyWrapper aw_24 [ApplC (wrapNamed "shen.construct-search-clauses" kl_shen_construct_search_clauses)]+                                                                                                         _ -> throwError "if: expected boolean"+                                                                              _ -> throwError "if: expected boolean"++kl_shen_construct_search_clause :: Core.Types.KLValue ->+                                   Core.Types.KLValue ->+                                   Core.Types.KLValue ->+                                   Core.Types.KLContext Core.Types.Env Core.Types.KLValue+kl_shen_construct_search_clause (!kl_V2562) (!kl_V2563) (!kl_V2564) = do !appl_0 <- kl_V2562 `pseq` (kl_V2563 `pseq` (kl_V2564 `pseq` kl_shen_construct_base_search_clause kl_V2562 kl_V2563 kl_V2564))+                                                                         !appl_1 <- kl_V2562 `pseq` (kl_V2563 `pseq` (kl_V2564 `pseq` kl_shen_construct_recursive_search_clause kl_V2562 kl_V2563 kl_V2564))+                                                                         let !appl_2 = Atom Nil+                                                                         !appl_3 <- appl_1 `pseq` (appl_2 `pseq` klCons appl_1 appl_2)+                                                                         !appl_4 <- appl_0 `pseq` (appl_3 `pseq` klCons appl_0 appl_3)+                                                                         let !aw_5 = Core.Types.Atom (Core.Types.UnboundSym "shen.s-prolog")+                                                                         appl_4 `pseq` applyWrapper aw_5 [appl_4]++kl_shen_construct_base_search_clause :: Core.Types.KLValue ->+                                        Core.Types.KLValue ->+                                        Core.Types.KLValue ->+                                        Core.Types.KLContext Core.Types.Env Core.Types.KLValue+kl_shen_construct_base_search_clause (!kl_V2568) (!kl_V2569) (!kl_V2570) = do !appl_0 <- kl_V2569 `pseq` kl_shen_mode_ify kl_V2569+                                                                              !appl_1 <- appl_0 `pseq` klCons appl_0 (Core.Types.Atom (Core.Types.UnboundSym "In_1957"))+                                                                              !appl_2 <- kl_V2570 `pseq` klCons (Core.Types.Atom (Core.Types.UnboundSym "In_1957")) kl_V2570+                                                                              !appl_3 <- appl_1 `pseq` (appl_2 `pseq` klCons appl_1 appl_2)+                                                                              !appl_4 <- kl_V2568 `pseq` (appl_3 `pseq` klCons kl_V2568 appl_3)+                                                                              let !appl_5 = Atom Nil+                                                                              let !appl_6 = Atom Nil+                                                                              !appl_7 <- appl_5 `pseq` (appl_6 `pseq` klCons appl_5 appl_6)+                                                                              !appl_8 <- appl_7 `pseq` klCons (Core.Types.Atom (Core.Types.UnboundSym ":-")) appl_7+                                                                              appl_4 `pseq` (appl_8 `pseq` klCons appl_4 appl_8)++kl_shen_construct_recursive_search_clause :: Core.Types.KLValue ->+                                             Core.Types.KLValue ->+                                             Core.Types.KLValue ->+                                             Core.Types.KLContext Core.Types.Env Core.Types.KLValue+kl_shen_construct_recursive_search_clause (!kl_V2574) (!kl_V2575) (!kl_V2576) = do !appl_0 <- klCons (Core.Types.Atom (Core.Types.UnboundSym "Assumption_1957")) (Core.Types.Atom (Core.Types.UnboundSym "Assumptions_1957"))+                                                                                   !appl_1 <- klCons (Core.Types.Atom (Core.Types.UnboundSym "Assumption_1957")) (Core.Types.Atom (Core.Types.UnboundSym "Out_1957"))+                                                                                   !appl_2 <- appl_1 `pseq` (kl_V2576 `pseq` klCons appl_1 kl_V2576)+                                                                                   !appl_3 <- appl_0 `pseq` (appl_2 `pseq` klCons appl_0 appl_2)+                                                                                   !appl_4 <- kl_V2574 `pseq` (appl_3 `pseq` klCons kl_V2574 appl_3)+                                                                                   !appl_5 <- kl_V2576 `pseq` klCons (Core.Types.Atom (Core.Types.UnboundSym "Out_1957")) kl_V2576+                                                                                   !appl_6 <- appl_5 `pseq` klCons (Core.Types.Atom (Core.Types.UnboundSym "Assumptions_1957")) appl_5+                                                                                   !appl_7 <- kl_V2574 `pseq` (appl_6 `pseq` klCons kl_V2574 appl_6)+                                                                                   let !appl_8 = Atom Nil+                                                                                   !appl_9 <- appl_7 `pseq` (appl_8 `pseq` klCons appl_7 appl_8)+                                                                                   let !appl_10 = Atom Nil+                                                                                   !appl_11 <- appl_9 `pseq` (appl_10 `pseq` klCons appl_9 appl_10)+                                                                                   !appl_12 <- appl_11 `pseq` klCons (Core.Types.Atom (Core.Types.UnboundSym ":-")) appl_11+                                                                                   appl_4 `pseq` (appl_12 `pseq` klCons appl_4 appl_12)++kl_shen_construct_side_literals :: Core.Types.KLValue ->+                                   Core.Types.KLContext Core.Types.Env Core.Types.KLValue+kl_shen_construct_side_literals (!kl_V2582) = do let !appl_0 = Atom Nil+                                                 !kl_if_1 <- appl_0 `pseq` (kl_V2582 `pseq` eq appl_0 kl_V2582)+                                                 case kl_if_1 of+                                                     Atom (B (True)) -> do return (Atom Nil)+                                                     Atom (B (False)) -> do !kl_if_2 <- let pat_cond_3 kl_V2582 kl_V2582h kl_V2582t = do !kl_if_4 <- let pat_cond_5 kl_V2582h kl_V2582hh kl_V2582ht = do !kl_if_6 <- let pat_cond_7 = do !kl_if_8 <- let pat_cond_9 kl_V2582ht kl_V2582hth kl_V2582htt = do let !appl_10 = Atom Nil+                                                                                                                                                                                                                                                                                                            !kl_if_11 <- appl_10 `pseq` (kl_V2582htt `pseq` eq appl_10 kl_V2582htt)+                                                                                                                                                                                                                                                                                                            case kl_if_11 of+                                                                                                                                                                                                                                                                                                                Atom (B (True)) -> do return (Atom (B True))+                                                                                                                                                                                                                                                                                                                Atom (B (False)) -> do do return (Atom (B False))+                                                                                                                                                                                                                                                                                                                _ -> throwError "if: expected boolean"+                                                                                                                                                                                                                                                         pat_cond_12 = do do return (Atom (B False))+                                                                                                                                                                                                                                                      in case kl_V2582ht of+                                                                                                                                                                                                                                                             !(kl_V2582ht@(Cons (!kl_V2582hth)+                                                                                                                                                                                                                                                                                (!kl_V2582htt))) -> pat_cond_9 kl_V2582ht kl_V2582hth kl_V2582htt+                                                                                                                                                                                                                                                             _ -> pat_cond_12+                                                                                                                                                                                                                                         case kl_if_8 of+                                                                                                                                                                                                                                             Atom (B (True)) -> do return (Atom (B True))+                                                                                                                                                                                                                                             Atom (B (False)) -> do do return (Atom (B False))+                                                                                                                                                                                                                                             _ -> throwError "if: expected boolean"+                                                                                                                                                                                                                         pat_cond_13 = do do return (Atom (B False))+                                                                                                                                                                                                                      in case kl_V2582hh of+                                                                                                                                                                                                                             kl_V2582hh@(Atom (UnboundSym "if")) -> pat_cond_7+                                                                                                                                                                                                                             kl_V2582hh@(ApplC (PL "if"+                                                                                                                                                                                                                                                   _)) -> pat_cond_7+                                                                                                                                                                                                                             kl_V2582hh@(ApplC (Func "if"+                                                                                                                                                                                                                                                     _)) -> pat_cond_7+                                                                                                                                                                                                                             _ -> pat_cond_13+                                                                                                                                                                                                         case kl_if_6 of+                                                                                                                                                                                                             Atom (B (True)) -> do return (Atom (B True))+                                                                                                                                                                                                             Atom (B (False)) -> do do return (Atom (B False))+                                                                                                                                                                                                             _ -> throwError "if: expected boolean"+                                                                                                                                                         pat_cond_14 = do do return (Atom (B False))+                                                                                                                                                      in case kl_V2582h of+                                                                                                                                                             !(kl_V2582h@(Cons (!kl_V2582hh)+                                                                                                                                                                               (!kl_V2582ht))) -> pat_cond_5 kl_V2582h kl_V2582hh kl_V2582ht+                                                                                                                                                             _ -> pat_cond_14+                                                                                                                                         case kl_if_4 of+                                                                                                                                             Atom (B (True)) -> do return (Atom (B True))+                                                                                                                                             Atom (B (False)) -> do do return (Atom (B False))+                                                                                                                                             _ -> throwError "if: expected boolean"+                                                                                            pat_cond_15 = do do return (Atom (B False))+                                                                                         in case kl_V2582 of+                                                                                                !(kl_V2582@(Cons (!kl_V2582h)+                                                                                                                 (!kl_V2582t))) -> pat_cond_3 kl_V2582 kl_V2582h kl_V2582t+                                                                                                _ -> pat_cond_15+                                                                            case kl_if_2 of+                                                                                Atom (B (True)) -> do !appl_16 <- kl_V2582 `pseq` hd kl_V2582+                                                                                                      !appl_17 <- appl_16 `pseq` tl appl_16+                                                                                                      !appl_18 <- appl_17 `pseq` klCons (Core.Types.Atom (Core.Types.UnboundSym "when")) appl_17+                                                                                                      !appl_19 <- kl_V2582 `pseq` tl kl_V2582+                                                                                                      !appl_20 <- appl_19 `pseq` kl_shen_construct_side_literals appl_19+                                                                                                      appl_18 `pseq` (appl_20 `pseq` klCons appl_18 appl_20)+                                                                                Atom (B (False)) -> do !kl_if_21 <- let pat_cond_22 kl_V2582 kl_V2582h kl_V2582t = do !kl_if_23 <- let pat_cond_24 kl_V2582h kl_V2582hh kl_V2582ht = do !kl_if_25 <- let pat_cond_26 = do !kl_if_27 <- let pat_cond_28 kl_V2582ht kl_V2582hth kl_V2582htt = do !kl_if_29 <- let pat_cond_30 kl_V2582htt kl_V2582htth kl_V2582httt = do let !appl_31 = Atom Nil+                                                                                                                                                                                                                                                                                                                                                                                                                       !kl_if_32 <- appl_31 `pseq` (kl_V2582httt `pseq` eq appl_31 kl_V2582httt)+                                                                                                                                                                                                                                                                                                                                                                                                                       case kl_if_32 of+                                                                                                                                                                                                                                                                                                                                                                                                                           Atom (B (True)) -> do return (Atom (B True))+                                                                                                                                                                                                                                                                                                                                                                                                                           Atom (B (False)) -> do do return (Atom (B False))+                                                                                                                                                                                                                                                                                                                                                                                                                           _ -> throwError "if: expected boolean"+                                                                                                                                                                                                                                                                                                                                                                pat_cond_33 = do do return (Atom (B False))+                                                                                                                                                                                                                                                                                                                                                             in case kl_V2582htt of+                                                                                                                                                                                                                                                                                                                                                                    !(kl_V2582htt@(Cons (!kl_V2582htth)+                                                                                                                                                                                                                                                                                                                                                                                        (!kl_V2582httt))) -> pat_cond_30 kl_V2582htt kl_V2582htth kl_V2582httt+                                                                                                                                                                                                                                                                                                                                                                    _ -> pat_cond_33+                                                                                                                                                                                                                                                                                                                                               case kl_if_29 of+                                                                                                                                                                                                                                                                                                                                                   Atom (B (True)) -> do return (Atom (B True))+                                                                                                                                                                                                                                                                                                                                                   Atom (B (False)) -> do do return (Atom (B False))+                                                                                                                                                                                                                                                                                                                                                   _ -> throwError "if: expected boolean"+                                                                                                                                                                                                                                                                                           pat_cond_34 = do do return (Atom (B False))+                                                                                                                                                                                                                                                                                        in case kl_V2582ht of+                                                                                                                                                                                                                                                                                               !(kl_V2582ht@(Cons (!kl_V2582hth)+                                                                                                                                                                                                                                                                                                                  (!kl_V2582htt))) -> pat_cond_28 kl_V2582ht kl_V2582hth kl_V2582htt+                                                                                                                                                                                                                                                                                               _ -> pat_cond_34+                                                                                                                                                                                                                                                                          case kl_if_27 of+                                                                                                                                                                                                                                                                              Atom (B (True)) -> do return (Atom (B True))+                                                                                                                                                                                                                                                                              Atom (B (False)) -> do do return (Atom (B False))+                                                                                                                                                                                                                                                                              _ -> throwError "if: expected boolean"+                                                                                                                                                                                                                                                         pat_cond_35 = do do return (Atom (B False))+                                                                                                                                                                                                                                                      in case kl_V2582hh of+                                                                                                                                                                                                                                                             kl_V2582hh@(Atom (UnboundSym "let")) -> pat_cond_26+                                                                                                                                                                                                                                                             kl_V2582hh@(ApplC (PL "let"+                                                                                                                                                                                                                                                                                   _)) -> pat_cond_26+                                                                                                                                                                                                                                                             kl_V2582hh@(ApplC (Func "let"+                                                                                                                                                                                                                                                                                     _)) -> pat_cond_26+                                                                                                                                                                                                                                                             _ -> pat_cond_35+                                                                                                                                                                                                                                        case kl_if_25 of+                                                                                                                                                                                                                                            Atom (B (True)) -> do return (Atom (B True))+                                                                                                                                                                                                                                            Atom (B (False)) -> do do return (Atom (B False))+                                                                                                                                                                                                                                            _ -> throwError "if: expected boolean"+                                                                                                                                                                                       pat_cond_36 = do do return (Atom (B False))+                                                                                                                                                                                    in case kl_V2582h of+                                                                                                                                                                                           !(kl_V2582h@(Cons (!kl_V2582hh)+                                                                                                                                                                                                             (!kl_V2582ht))) -> pat_cond_24 kl_V2582h kl_V2582hh kl_V2582ht+                                                                                                                                                                                           _ -> pat_cond_36+                                                                                                                                                                      case kl_if_23 of+                                                                                                                                                                          Atom (B (True)) -> do return (Atom (B True))+                                                                                                                                                                          Atom (B (False)) -> do do return (Atom (B False))+                                                                                                                                                                          _ -> throwError "if: expected boolean"+                                                                                                                        pat_cond_37 = do do return (Atom (B False))+                                                                                                                     in case kl_V2582 of+                                                                                                                            !(kl_V2582@(Cons (!kl_V2582h)+                                                                                                                                             (!kl_V2582t))) -> pat_cond_22 kl_V2582 kl_V2582h kl_V2582t+                                                                                                                            _ -> pat_cond_37+                                                                                                       case kl_if_21 of+                                                                                                           Atom (B (True)) -> do !appl_38 <- kl_V2582 `pseq` hd kl_V2582+                                                                                                                                 !appl_39 <- appl_38 `pseq` tl appl_38+                                                                                                                                 !appl_40 <- appl_39 `pseq` klCons (Core.Types.Atom (Core.Types.UnboundSym "is")) appl_39+                                                                                                                                 !appl_41 <- kl_V2582 `pseq` tl kl_V2582+                                                                                                                                 !appl_42 <- appl_41 `pseq` kl_shen_construct_side_literals appl_41+                                                                                                                                 appl_40 `pseq` (appl_42 `pseq` klCons appl_40 appl_42)+                                                                                                           Atom (B (False)) -> do let pat_cond_43 kl_V2582 kl_V2582h kl_V2582t = do kl_V2582t `pseq` kl_shen_construct_side_literals kl_V2582t+                                                                                                                                      pat_cond_44 = do do let !aw_45 = Core.Types.Atom (Core.Types.UnboundSym "shen.f_error")+                                                                                                                                                          applyWrapper aw_45 [ApplC (wrapNamed "shen.construct-side-literals" kl_shen_construct_side_literals)]+                                                                                                                                   in case kl_V2582 of+                                                                                                                                          !(kl_V2582@(Cons (!kl_V2582h)+                                                                                                                                                           (!kl_V2582t))) -> pat_cond_43 kl_V2582 kl_V2582h kl_V2582t+                                                                                                                                          _ -> pat_cond_44+                                                                                                           _ -> throwError "if: expected boolean"+                                                                                _ -> throwError "if: expected boolean"+                                                     _ -> throwError "if: expected boolean"++kl_shen_construct_premiss_literal :: Core.Types.KLValue ->+                                     Core.Types.KLValue ->+                                     Core.Types.KLContext Core.Types.Env Core.Types.KLValue+kl_shen_construct_premiss_literal (!kl_V2589) (!kl_V2590) = do !kl_if_0 <- kl_V2589 `pseq` kl_tupleP kl_V2589+                                                               case kl_if_0 of+                                                                   Atom (B (True)) -> do !appl_1 <- kl_V2589 `pseq` kl_snd kl_V2589+                                                                                         !appl_2 <- appl_1 `pseq` kl_shen_recursive_cons_form appl_1+                                                                                         !appl_3 <- kl_V2589 `pseq` kl_fst kl_V2589+                                                                                         !appl_4 <- kl_V2590 `pseq` (appl_3 `pseq` kl_shen_construct_context kl_V2590 appl_3)+                                                                                         let !appl_5 = Atom Nil+                                                                                         !appl_6 <- appl_4 `pseq` (appl_5 `pseq` klCons appl_4 appl_5)+                                                                                         !appl_7 <- appl_2 `pseq` (appl_6 `pseq` klCons appl_2 appl_6)+                                                                                         appl_7 `pseq` klCons (Core.Types.Atom (Core.Types.UnboundSym "shen.t*")) appl_7+                                                                   Atom (B (False)) -> do let pat_cond_8 = do let !appl_9 = Atom Nil+                                                                                                              !appl_10 <- appl_9 `pseq` klCons (Core.Types.Atom (Core.Types.UnboundSym "Throwcontrol")) appl_9+                                                                                                              appl_10 `pseq` klCons (Core.Types.Atom (Core.Types.UnboundSym "cut")) appl_10+                                                                                              pat_cond_11 = do do let !aw_12 = Core.Types.Atom (Core.Types.UnboundSym "shen.f_error")+                                                                                                                  applyWrapper aw_12 [ApplC (wrapNamed "shen.construct-premiss-literal" kl_shen_construct_premiss_literal)]+                                                                                           in case kl_V2589 of+                                                                                                  kl_V2589@(Atom (UnboundSym "!")) -> pat_cond_8+                                                                                                  kl_V2589@(ApplC (PL "!"+                                                                                                                      _)) -> pat_cond_8+                                                                                                  kl_V2589@(ApplC (Func "!"+                                                                                                                        _)) -> pat_cond_8+                                                                                                  _ -> pat_cond_11+                                                                   _ -> throwError "if: expected boolean"++kl_shen_construct_context :: Core.Types.KLValue ->+                             Core.Types.KLValue ->+                             Core.Types.KLContext Core.Types.Env Core.Types.KLValue+kl_shen_construct_context (!kl_V2593) (!kl_V2594) = do !kl_if_0 <- let pat_cond_1 = do let !appl_2 = Atom Nil+                                                                                       !kl_if_3 <- appl_2 `pseq` (kl_V2594 `pseq` eq appl_2 kl_V2594)+                                                                                       case kl_if_3 of+                                                                                           Atom (B (True)) -> do return (Atom (B True))+                                                                                           Atom (B (False)) -> do do return (Atom (B False))+                                                                                           _ -> throwError "if: expected boolean"+                                                                       pat_cond_4 = do do return (Atom (B False))+                                                                    in case kl_V2593 of+                                                                           kl_V2593@(Atom (UnboundSym "true")) -> pat_cond_1+                                                                           kl_V2593@(Atom (B (True))) -> pat_cond_1+                                                                           _ -> pat_cond_4+                                                       case kl_if_0 of+                                                           Atom (B (True)) -> do return (Core.Types.Atom (Core.Types.UnboundSym "Context_1957"))+                                                           Atom (B (False)) -> do !kl_if_5 <- let pat_cond_6 = do let !appl_7 = Atom Nil+                                                                                                                  !kl_if_8 <- appl_7 `pseq` (kl_V2594 `pseq` eq appl_7 kl_V2594)+                                                                                                                  case kl_if_8 of+                                                                                                                      Atom (B (True)) -> do return (Atom (B True))+                                                                                                                      Atom (B (False)) -> do do return (Atom (B False))+                                                                                                                      _ -> throwError "if: expected boolean"+                                                                                                  pat_cond_9 = do do return (Atom (B False))+                                                                                               in case kl_V2593 of+                                                                                                      kl_V2593@(Atom (UnboundSym "false")) -> pat_cond_6+                                                                                                      kl_V2593@(Atom (B (False))) -> pat_cond_6+                                                                                                      _ -> pat_cond_9+                                                                                  case kl_if_5 of+                                                                                      Atom (B (True)) -> do return (Core.Types.Atom (Core.Types.UnboundSym "ContextOut_1957"))+                                                                                      Atom (B (False)) -> do let pat_cond_10 kl_V2594 kl_V2594h kl_V2594t = do !appl_11 <- kl_V2594h `pseq` kl_shen_recursive_cons_form kl_V2594h+                                                                                                                                                               !appl_12 <- kl_V2593 `pseq` (kl_V2594t `pseq` kl_shen_construct_context kl_V2593 kl_V2594t)+                                                                                                                                                               let !appl_13 = Atom Nil+                                                                                                                                                               !appl_14 <- appl_12 `pseq` (appl_13 `pseq` klCons appl_12 appl_13)+                                                                                                                                                               !appl_15 <- appl_11 `pseq` (appl_14 `pseq` klCons appl_11 appl_14)+                                                                                                                                                               appl_15 `pseq` klCons (ApplC (wrapNamed "cons" klCons)) appl_15+                                                                                                                 pat_cond_16 = do do let !aw_17 = Core.Types.Atom (Core.Types.UnboundSym "shen.f_error")+                                                                                                                                     applyWrapper aw_17 [ApplC (wrapNamed "shen.construct-context" kl_shen_construct_context)]+                                                                                                              in case kl_V2594 of+                                                                                                                     !(kl_V2594@(Cons (!kl_V2594h)+                                                                                                                                      (!kl_V2594t))) -> pat_cond_10 kl_V2594 kl_V2594h kl_V2594t+                                                                                                                     _ -> pat_cond_16+                                                                                      _ -> throwError "if: expected boolean"+                                                           _ -> throwError "if: expected boolean"++kl_shen_recursive_cons_form :: Core.Types.KLValue ->+                               Core.Types.KLContext Core.Types.Env Core.Types.KLValue+kl_shen_recursive_cons_form (!kl_V2596) = do let pat_cond_0 kl_V2596 kl_V2596h kl_V2596t = do !appl_1 <- kl_V2596h `pseq` kl_shen_recursive_cons_form kl_V2596h+                                                                                              !appl_2 <- kl_V2596t `pseq` kl_shen_recursive_cons_form kl_V2596t+                                                                                              let !appl_3 = Atom Nil+                                                                                              !appl_4 <- appl_2 `pseq` (appl_3 `pseq` klCons appl_2 appl_3)+                                                                                              !appl_5 <- appl_1 `pseq` (appl_4 `pseq` klCons appl_1 appl_4)+                                                                                              appl_5 `pseq` klCons (ApplC (wrapNamed "cons" klCons)) appl_5+                                                 pat_cond_6 = do do return kl_V2596+                                              in case kl_V2596 of+                                                     !(kl_V2596@(Cons (!kl_V2596h)+                                                                      (!kl_V2596t))) -> pat_cond_0 kl_V2596 kl_V2596h kl_V2596t+                                                     _ -> pat_cond_6++kl_preclude :: Core.Types.KLValue ->+               Core.Types.KLContext Core.Types.Env Core.Types.KLValue+kl_preclude (!kl_V2598) = do let !appl_0 = ApplC (Func "lambda" (Context (\(!kl_X) -> do let !aw_1 = Core.Types.Atom (Core.Types.UnboundSym "shen.intern-type")+                                                                                         kl_X `pseq` applyWrapper aw_1 [kl_X])))+                             !appl_2 <- appl_0 `pseq` (kl_V2598 `pseq` kl_map appl_0 kl_V2598)+                             appl_2 `pseq` kl_shen_preclude_h appl_2++kl_shen_preclude_h :: Core.Types.KLValue ->+                      Core.Types.KLContext Core.Types.Env Core.Types.KLValue+kl_shen_preclude_h (!kl_V2600) = do let !appl_0 = ApplC (Func "lambda" (Context (\(!kl_FilterDatatypes) -> do value (Core.Types.Atom (Core.Types.UnboundSym "shen.*datatypes*")))))+                                    !appl_1 <- value (Core.Types.Atom (Core.Types.UnboundSym "shen.*datatypes*"))+                                    !appl_2 <- appl_1 `pseq` (kl_V2600 `pseq` kl_difference appl_1 kl_V2600)+                                    !appl_3 <- appl_2 `pseq` klSet (Core.Types.Atom (Core.Types.UnboundSym "shen.*datatypes*")) appl_2+                                    appl_3 `pseq` applyWrapper appl_0 [appl_3]++kl_include :: Core.Types.KLValue ->+              Core.Types.KLContext Core.Types.Env Core.Types.KLValue+kl_include (!kl_V2602) = do let !appl_0 = ApplC (Func "lambda" (Context (\(!kl_X) -> do let !aw_1 = Core.Types.Atom (Core.Types.UnboundSym "shen.intern-type")+                                                                                        kl_X `pseq` applyWrapper aw_1 [kl_X])))+                            !appl_2 <- appl_0 `pseq` (kl_V2602 `pseq` kl_map appl_0 kl_V2602)+                            appl_2 `pseq` kl_shen_include_h appl_2++kl_shen_include_h :: Core.Types.KLValue ->+                     Core.Types.KLContext Core.Types.Env Core.Types.KLValue+kl_shen_include_h (!kl_V2604) = do let !appl_0 = ApplC (Func "lambda" (Context (\(!kl_ValidTypes) -> do let !appl_1 = ApplC (Func "lambda" (Context (\(!kl_NewDatatypes) -> do value (Core.Types.Atom (Core.Types.UnboundSym "shen.*datatypes*")))))+                                                                                                        !appl_2 <- value (Core.Types.Atom (Core.Types.UnboundSym "shen.*datatypes*"))+                                                                                                        !appl_3 <- kl_ValidTypes `pseq` (appl_2 `pseq` kl_union kl_ValidTypes appl_2)+                                                                                                        !appl_4 <- appl_3 `pseq` klSet (Core.Types.Atom (Core.Types.UnboundSym "shen.*datatypes*")) appl_3+                                                                                                        appl_4 `pseq` applyWrapper appl_1 [appl_4])))+                                   !appl_5 <- value (Core.Types.Atom (Core.Types.UnboundSym "shen.*alldatatypes*"))+                                   !appl_6 <- kl_V2604 `pseq` (appl_5 `pseq` kl_intersection kl_V2604 appl_5)+                                   appl_6 `pseq` applyWrapper appl_0 [appl_6]++kl_preclude_all_but :: Core.Types.KLValue ->+                       Core.Types.KLContext Core.Types.Env Core.Types.KLValue+kl_preclude_all_but (!kl_V2606) = do !appl_0 <- value (Core.Types.Atom (Core.Types.UnboundSym "shen.*alldatatypes*"))+                                     let !appl_1 = ApplC (Func "lambda" (Context (\(!kl_X) -> do let !aw_2 = Core.Types.Atom (Core.Types.UnboundSym "shen.intern-type")+                                                                                                 kl_X `pseq` applyWrapper aw_2 [kl_X])))+                                     !appl_3 <- appl_1 `pseq` (kl_V2606 `pseq` kl_map appl_1 kl_V2606)+                                     !appl_4 <- appl_0 `pseq` (appl_3 `pseq` kl_difference appl_0 appl_3)+                                     appl_4 `pseq` kl_shen_preclude_h appl_4++kl_include_all_but :: Core.Types.KLValue ->+                      Core.Types.KLContext Core.Types.Env Core.Types.KLValue+kl_include_all_but (!kl_V2608) = do !appl_0 <- value (Core.Types.Atom (Core.Types.UnboundSym "shen.*alldatatypes*"))+                                    let !appl_1 = ApplC (Func "lambda" (Context (\(!kl_X) -> do let !aw_2 = Core.Types.Atom (Core.Types.UnboundSym "shen.intern-type")+                                                                                                kl_X `pseq` applyWrapper aw_2 [kl_X])))+                                    !appl_3 <- appl_1 `pseq` (kl_V2608 `pseq` kl_map appl_1 kl_V2608)+                                    !appl_4 <- appl_0 `pseq` (appl_3 `pseq` kl_difference appl_0 appl_3)+                                    appl_4 `pseq` kl_shen_include_h appl_4++kl_shen_synonyms_help :: Core.Types.KLValue ->+                         Core.Types.KLContext Core.Types.Env Core.Types.KLValue+kl_shen_synonyms_help (!kl_V2614) = do let !appl_0 = Atom Nil+                                       !kl_if_1 <- appl_0 `pseq` (kl_V2614 `pseq` eq appl_0 kl_V2614)+                                       case kl_if_1 of+                                           Atom (B (True)) -> do !appl_2 <- value (Core.Types.Atom (Core.Types.UnboundSym "shen.*tc*"))+                                                                 let !appl_3 = ApplC (Func "lambda" (Context (\(!kl_X) -> do kl_X `pseq` kl_shen_demod_rule kl_X)))+                                                                 !appl_4 <- value (Core.Types.Atom (Core.Types.UnboundSym "shen.*synonyms*"))+                                                                 !appl_5 <- appl_3 `pseq` (appl_4 `pseq` kl_mapcan appl_3 appl_4)+                                                                 appl_2 `pseq` (appl_5 `pseq` kl_shen_update_demodulation_function appl_2 appl_5)+                                           Atom (B (False)) -> do let pat_cond_6 kl_V2614 kl_V2614h kl_V2614t kl_V2614th kl_V2614tt = do let !appl_7 = ApplC (Func "lambda" (Context (\(!kl_Vs) -> do !kl_if_8 <- kl_Vs `pseq` kl_emptyP kl_Vs+                                                                                                                                                                                                      case kl_if_8 of+                                                                                                                                                                                                          Atom (B (True)) -> do let !appl_9 = Atom Nil+                                                                                                                                                                                                                                !appl_10 <- kl_V2614th `pseq` (appl_9 `pseq` klCons kl_V2614th appl_9)+                                                                                                                                                                                                                                !appl_11 <- kl_V2614h `pseq` (appl_10 `pseq` klCons kl_V2614h appl_10)+                                                                                                                                                                                                                                !appl_12 <- appl_11 `pseq` kl_shen_pushnew appl_11 (Core.Types.Atom (Core.Types.UnboundSym "shen.*synonyms*"))+                                                                                                                                                                                                                                !appl_13 <- kl_V2614tt `pseq` kl_shen_synonyms_help kl_V2614tt+                                                                                                                                                                                                                                appl_12 `pseq` (appl_13 `pseq` kl_do appl_12 appl_13)+                                                                                                                                                                                                          Atom (B (False)) -> do do kl_V2614th `pseq` (kl_Vs `pseq` kl_shen_free_variable_warnings kl_V2614th kl_Vs)+                                                                                                                                                                                                          _ -> throwError "if: expected boolean")))+                                                                                                                                         !appl_14 <- kl_V2614th `pseq` kl_shen_extract_vars kl_V2614th+                                                                                                                                         !appl_15 <- kl_V2614h `pseq` kl_shen_extract_vars kl_V2614h+                                                                                                                                         !appl_16 <- appl_14 `pseq` (appl_15 `pseq` kl_difference appl_14 appl_15)+                                                                                                                                         appl_16 `pseq` applyWrapper appl_7 [appl_16]+                                                                      pat_cond_17 = do do simpleError (Core.Types.Atom (Core.Types.Str "odd number of synonyms\n"))+                                                                   in case kl_V2614 of+                                                                          !(kl_V2614@(Cons (!kl_V2614h)+                                                                                           (!(kl_V2614t@(Cons (!kl_V2614th)+                                                                                                              (!kl_V2614tt)))))) -> pat_cond_6 kl_V2614 kl_V2614h kl_V2614t kl_V2614th kl_V2614tt+                                                                          _ -> pat_cond_17+                                           _ -> throwError "if: expected boolean"++kl_shen_pushnew :: Core.Types.KLValue ->+                   Core.Types.KLValue ->+                   Core.Types.KLContext Core.Types.Env Core.Types.KLValue+kl_shen_pushnew (!kl_V2617) (!kl_V2618) = do !appl_0 <- kl_V2618 `pseq` value kl_V2618+                                             !kl_if_1 <- kl_V2617 `pseq` (appl_0 `pseq` kl_elementP kl_V2617 appl_0)+                                             case kl_if_1 of+                                                 Atom (B (True)) -> do kl_V2618 `pseq` value kl_V2618+                                                 Atom (B (False)) -> do do !appl_2 <- kl_V2618 `pseq` value kl_V2618+                                                                           !appl_3 <- kl_V2617 `pseq` (appl_2 `pseq` klCons kl_V2617 appl_2)+                                                                           kl_V2618 `pseq` (appl_3 `pseq` klSet kl_V2618 appl_3)+                                                 _ -> throwError "if: expected boolean"++kl_shen_demod_rule :: Core.Types.KLValue ->+                      Core.Types.KLContext Core.Types.Env Core.Types.KLValue+kl_shen_demod_rule (!kl_V2620) = do !kl_if_0 <- let pat_cond_1 kl_V2620 kl_V2620h kl_V2620t = do !kl_if_2 <- let pat_cond_3 kl_V2620t kl_V2620th kl_V2620tt = do let !appl_4 = Atom Nil+                                                                                                                                                                 !kl_if_5 <- appl_4 `pseq` (kl_V2620tt `pseq` eq appl_4 kl_V2620tt)+                                                                                                                                                                 case kl_if_5 of+                                                                                                                                                                     Atom (B (True)) -> do return (Atom (B True))+                                                                                                                                                                     Atom (B (False)) -> do do return (Atom (B False))+                                                                                                                                                                     _ -> throwError "if: expected boolean"+                                                                                                                 pat_cond_6 = do do return (Atom (B False))+                                                                                                              in case kl_V2620t of+                                                                                                                     !(kl_V2620t@(Cons (!kl_V2620th)+                                                                                                                                       (!kl_V2620tt))) -> pat_cond_3 kl_V2620t kl_V2620th kl_V2620tt+                                                                                                                     _ -> pat_cond_6+                                                                                                 case kl_if_2 of+                                                                                                     Atom (B (True)) -> do return (Atom (B True))+                                                                                                     Atom (B (False)) -> do do return (Atom (B False))+                                                                                                     _ -> throwError "if: expected boolean"+                                                    pat_cond_7 = do do return (Atom (B False))+                                                 in case kl_V2620 of+                                                        !(kl_V2620@(Cons (!kl_V2620h)+                                                                         (!kl_V2620t))) -> pat_cond_1 kl_V2620 kl_V2620h kl_V2620t+                                                        _ -> pat_cond_7+                                    case kl_if_0 of+                                        Atom (B (True)) -> do !appl_8 <- kl_V2620 `pseq` hd kl_V2620+                                                              let !aw_9 = Core.Types.Atom (Core.Types.UnboundSym "shen.rcons_form")+                                                              !appl_10 <- appl_8 `pseq` applyWrapper aw_9 [appl_8]+                                                              !appl_11 <- kl_V2620 `pseq` tl kl_V2620+                                                              !appl_12 <- appl_11 `pseq` hd appl_11+                                                              let !aw_13 = Core.Types.Atom (Core.Types.UnboundSym "shen.rcons_form")+                                                              !appl_14 <- appl_12 `pseq` applyWrapper aw_13 [appl_12]+                                                              let !appl_15 = Atom Nil+                                                              !appl_16 <- appl_14 `pseq` (appl_15 `pseq` klCons appl_14 appl_15)+                                                              !appl_17 <- appl_16 `pseq` klCons (Core.Types.Atom (Core.Types.UnboundSym "->")) appl_16+                                                              appl_10 `pseq` (appl_17 `pseq` klCons appl_10 appl_17)+                                        Atom (B (False)) -> do do let !aw_18 = Core.Types.Atom (Core.Types.UnboundSym "shen.f_error")+                                                                  applyWrapper aw_18 [ApplC (wrapNamed "shen.demod-rule" kl_shen_demod_rule)]+                                        _ -> throwError "if: expected boolean"++kl_shen_lambda_of_defun :: Core.Types.KLValue ->+                           Core.Types.KLContext Core.Types.Env Core.Types.KLValue+kl_shen_lambda_of_defun (!kl_V2626) = do !kl_if_0 <- let pat_cond_1 kl_V2626 kl_V2626h kl_V2626t = do !kl_if_2 <- let pat_cond_3 = do !kl_if_4 <- let pat_cond_5 kl_V2626t kl_V2626th kl_V2626tt = do !kl_if_6 <- let pat_cond_7 kl_V2626tt kl_V2626tth kl_V2626ttt = do !kl_if_8 <- let pat_cond_9 kl_V2626tth kl_V2626tthh kl_V2626ttht = do let !appl_10 = Atom Nil+                                                                                                                                                                                                                                                                                                                                               !kl_if_11 <- appl_10 `pseq` (kl_V2626ttht `pseq` eq appl_10 kl_V2626ttht)+                                                                                                                                                                                                                                                                                                                                               !kl_if_12 <- case kl_if_11 of+                                                                                                                                                                                                                                                                                                                                                                Atom (B (True)) -> do !kl_if_13 <- let pat_cond_14 kl_V2626ttt kl_V2626ttth kl_V2626tttt = do let !appl_15 = Atom Nil+                                                                                                                                                                                                                                                                                                                                                                                                                                                              !kl_if_16 <- appl_15 `pseq` (kl_V2626tttt `pseq` eq appl_15 kl_V2626tttt)+                                                                                                                                                                                                                                                                                                                                                                                                                                                              case kl_if_16 of+                                                                                                                                                                                                                                                                                                                                                                                                                                                                  Atom (B (True)) -> do return (Atom (B True))+                                                                                                                                                                                                                                                                                                                                                                                                                                                                  Atom (B (False)) -> do do return (Atom (B False))+                                                                                                                                                                                                                                                                                                                                                                                                                                                                  _ -> throwError "if: expected boolean"+                                                                                                                                                                                                                                                                                                                                                                                                       pat_cond_17 = do do return (Atom (B False))+                                                                                                                                                                                                                                                                                                                                                                                                    in case kl_V2626ttt of+                                                                                                                                                                                                                                                                                                                                                                                                           !(kl_V2626ttt@(Cons (!kl_V2626ttth)+                                                                                                                                                                                                                                                                                                                                                                                                                               (!kl_V2626tttt))) -> pat_cond_14 kl_V2626ttt kl_V2626ttth kl_V2626tttt+                                                                                                                                                                                                                                                                                                                                                                                                           _ -> pat_cond_17+                                                                                                                                                                                                                                                                                                                                                                                      case kl_if_13 of+                                                                                                                                                                                                                                                                                                                                                                                          Atom (B (True)) -> do return (Atom (B True))+                                                                                                                                                                                                                                                                                                                                                                                          Atom (B (False)) -> do do return (Atom (B False))+                                                                                                                                                                                                                                                                                                                                                                                          _ -> throwError "if: expected boolean"+                                                                                                                                                                                                                                                                                                                                                                Atom (B (False)) -> do do return (Atom (B False))+                                                                                                                                                                                                                                                                                                                                                                _ -> throwError "if: expected boolean"+                                                                                                                                                                                                                                                                                                                                               case kl_if_12 of+                                                                                                                                                                                                                                                                                                                                                   Atom (B (True)) -> do return (Atom (B True))+                                                                                                                                                                                                                                                                                                                                                   Atom (B (False)) -> do do return (Atom (B False))+                                                                                                                                                                                                                                                                                                                                                   _ -> throwError "if: expected boolean"+                                                                                                                                                                                                                                                                                         pat_cond_18 = do do return (Atom (B False))+                                                                                                                                                                                                                                                                                      in case kl_V2626tth of+                                                                                                                                                                                                                                                                                             !(kl_V2626tth@(Cons (!kl_V2626tthh)+                                                                                                                                                                                                                                                                                                                 (!kl_V2626ttht))) -> pat_cond_9 kl_V2626tth kl_V2626tthh kl_V2626ttht+                                                                                                                                                                                                                                                                                             _ -> pat_cond_18+                                                                                                                                                                                                                                                                         case kl_if_8 of+                                                                                                                                                                                                                                                                             Atom (B (True)) -> do return (Atom (B True))+                                                                                                                                                                                                                                                                             Atom (B (False)) -> do do return (Atom (B False))+                                                                                                                                                                                                                                                                             _ -> throwError "if: expected boolean"+                                                                                                                                                                                                                      pat_cond_19 = do do return (Atom (B False))+                                                                                                                                                                                                                   in case kl_V2626tt of+                                                                                                                                                                                                                          !(kl_V2626tt@(Cons (!kl_V2626tth)+                                                                                                                                                                                                                                             (!kl_V2626ttt))) -> pat_cond_7 kl_V2626tt kl_V2626tth kl_V2626ttt+                                                                                                                                                                                                                          _ -> pat_cond_19+                                                                                                                                                                                                      case kl_if_6 of+                                                                                                                                                                                                          Atom (B (True)) -> do return (Atom (B True))+                                                                                                                                                                                                          Atom (B (False)) -> do do return (Atom (B False))+                                                                                                                                                                                                          _ -> throwError "if: expected boolean"+                                                                                                                                                      pat_cond_20 = do do return (Atom (B False))+                                                                                                                                                   in case kl_V2626t of+                                                                                                                                                          !(kl_V2626t@(Cons (!kl_V2626th)+                                                                                                                                                                            (!kl_V2626tt))) -> pat_cond_5 kl_V2626t kl_V2626th kl_V2626tt+                                                                                                                                                          _ -> pat_cond_20+                                                                                                                                      case kl_if_4 of+                                                                                                                                          Atom (B (True)) -> do return (Atom (B True))+                                                                                                                                          Atom (B (False)) -> do do return (Atom (B False))+                                                                                                                                          _ -> throwError "if: expected boolean"+                                                                                                                      pat_cond_21 = do do return (Atom (B False))+                                                                                                                   in case kl_V2626h of+                                                                                                                          kl_V2626h@(Atom (UnboundSym "defun")) -> pat_cond_3+                                                                                                                          kl_V2626h@(ApplC (PL "defun"+                                                                                                                                               _)) -> pat_cond_3+                                                                                                                          kl_V2626h@(ApplC (Func "defun"+                                                                                                                                                 _)) -> pat_cond_3+                                                                                                                          _ -> pat_cond_21+                                                                                                      case kl_if_2 of+                                                                                                          Atom (B (True)) -> do return (Atom (B True))+                                                                                                          Atom (B (False)) -> do do return (Atom (B False))+                                                                                                          _ -> throwError "if: expected boolean"+                                                         pat_cond_22 = do do return (Atom (B False))+                                                      in case kl_V2626 of+                                                             !(kl_V2626@(Cons (!kl_V2626h)+                                                                              (!kl_V2626t))) -> pat_cond_1 kl_V2626 kl_V2626h kl_V2626t+                                                             _ -> pat_cond_22+                                         case kl_if_0 of+                                             Atom (B (True)) -> do !appl_23 <- kl_V2626 `pseq` tl kl_V2626+                                                                   !appl_24 <- appl_23 `pseq` tl appl_23+                                                                   !appl_25 <- appl_24 `pseq` hd appl_24+                                                                   !appl_26 <- appl_25 `pseq` hd appl_25+                                                                   !appl_27 <- kl_V2626 `pseq` tl kl_V2626+                                                                   !appl_28 <- appl_27 `pseq` tl appl_27+                                                                   !appl_29 <- appl_28 `pseq` tl appl_28+                                                                   !appl_30 <- appl_26 `pseq` (appl_29 `pseq` klCons appl_26 appl_29)+                                                                   !appl_31 <- appl_30 `pseq` klCons (Core.Types.Atom (Core.Types.UnboundSym "/.")) appl_30+                                                                   appl_31 `pseq` kl_eval appl_31+                                             Atom (B (False)) -> do do let !aw_32 = Core.Types.Atom (Core.Types.UnboundSym "shen.f_error")+                                                                       applyWrapper aw_32 [ApplC (wrapNamed "shen.lambda-of-defun" kl_shen_lambda_of_defun)]+                                             _ -> throwError "if: expected boolean"++kl_shen_update_demodulation_function :: Core.Types.KLValue ->+                                        Core.Types.KLValue ->+                                        Core.Types.KLContext Core.Types.Env Core.Types.KLValue+kl_shen_update_demodulation_function (!kl_V2629) (!kl_V2630) = do !appl_0 <- kl_tc (ApplC (wrapNamed "-" Primitives.subtract))+                                                                  !appl_1 <- kl_shen_default_rule+                                                                  !appl_2 <- kl_V2630 `pseq` (appl_1 `pseq` kl_append kl_V2630 appl_1)+                                                                  !appl_3 <- appl_2 `pseq` klCons (Core.Types.Atom (Core.Types.UnboundSym "shen.demod")) appl_2+                                                                  !appl_4 <- appl_3 `pseq` klCons (Core.Types.Atom (Core.Types.UnboundSym "define")) appl_3+                                                                  !appl_5 <- appl_4 `pseq` kl_shen_elim_def appl_4+                                                                  !appl_6 <- appl_5 `pseq` kl_shen_lambda_of_defun appl_5+                                                                  !appl_7 <- appl_6 `pseq` klSet (Core.Types.Atom (Core.Types.UnboundSym "shen.*demodulation-function*")) appl_6+                                                                  !appl_8 <- case kl_V2629 of+                                                                                 Atom (B (True)) -> do kl_tc (ApplC (wrapNamed "+" add))+                                                                                 Atom (B (False)) -> do do return (Core.Types.Atom (Core.Types.UnboundSym "shen.skip"))+                                                                                 _ -> throwError "if: expected boolean"+                                                                  !appl_9 <- appl_8 `pseq` kl_do appl_8 (Core.Types.Atom (Core.Types.UnboundSym "synonyms"))+                                                                  !appl_10 <- appl_7 `pseq` (appl_9 `pseq` kl_do appl_7 appl_9)+                                                                  appl_0 `pseq` (appl_10 `pseq` kl_do appl_0 appl_10)++kl_shen_default_rule :: Core.Types.KLContext Core.Types.Env+                                             Core.Types.KLValue+kl_shen_default_rule = do let !appl_0 = Atom Nil+                          !appl_1 <- appl_0 `pseq` klCons (Core.Types.Atom (Core.Types.UnboundSym "X")) appl_0+                          !appl_2 <- appl_1 `pseq` klCons (Core.Types.Atom (Core.Types.UnboundSym "->")) appl_1+                          appl_2 `pseq` klCons (Core.Types.Atom (Core.Types.UnboundSym "X")) appl_2++expr3 :: Core.Types.KLContext Core.Types.Env Core.Types.KLValue+expr3 = do (do return (Core.Types.Atom (Core.Types.Str "Copyright (c) 2015, Mark Tarver\n\nAll rights reserved.\n\nRedistribution and use in source and binary forms, with or without\nmodification, are permitted provided that the following conditions are met:\n1. Redistributions of source code must retain the above copyright\n   notice, this list of conditions and the following disclaimer.\n2. Redistributions in binary form must reproduce the above copyright\n   notice, this list of conditions and the following disclaimer in the\n   documentation and/or other materials provided with the distribution.\n3. The name of Mark Tarver may not be used to endorse or promote products\n   derived from this software without specific prior written permission.\n\nTHIS SOFTWARE IS PROVIDED BY Mark Tarver ''AS IS'' AND ANY\nEXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED\nWARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE\nDISCLAIMED. IN NO EVENT SHALL Mark Tarver BE LIABLE FOR ANY\nDIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES\n(INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;\nLOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND\nON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT\n(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS\nSOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE."))) `catchError` (\(!kl_E) -> do return (Core.Types.Atom (Core.Types.Str "E")))
Shentong/Backend/Sys.hs view
@@ -1,1572 +1,2021 @@-{-# LANGUAGE BangPatterns #-}
-{-# LANGUAGE OverloadedStrings #-}
-{-# LANGUAGE Strict #-}
-{-# LANGUAGE StrictData #-}
-{-# LANGUAGE ViewPatterns #-}
-
-module Backend.Sys where
-
-import Control.Monad.Except
-import Control.Parallel
-import Environment
-import Primitives
-import Backend.Utils
-import Types
-import Utils
-import Wrap
-import Backend.Toplevel
-import Backend.Core
-
-{-
-Copyright (c) 2015, Mark Tarver
-All rights reserved.
-
-Redistribution and use in source and binary forms, with or without
-modification, are permitted provided that the following conditions are met:
-
-1. Redistributions of source code must retain the above copyright
-   notice, this list of conditions and the following disclaimer.
-2. Redistributions in binary form must reproduce the above copyright
-   notice, this list of conditions and the following disclaimer in the
-   documentation and/or other materials provided with the distribution.
-3. The name of Mark Tarver may not be used to endorse or promote products
-   derived from this software without specific prior written permission.
-
-THIS SOFTWARE IS PROVIDED BY Mark Tarver ''AS IS'' AND ANY
-EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
-WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
-DISCLAIMED. IN NO EVENT SHALL Mark Tarver BE LIABLE FOR ANY
-DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
-(INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
-LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND
-ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
-(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
-SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
--}
-
-kl_thaw :: Types.KLValue -> Types.KLContext Types.Env Types.KLValue
-kl_thaw (!kl_V2614) = do applyWrapper kl_V2614 []
-
-kl_eval :: Types.KLValue -> Types.KLContext Types.Env Types.KLValue
-kl_eval (!kl_V2616) = do let !appl_0 = ApplC (Func "lambda" (Context (\(!kl_Macroexpand) -> do !kl_if_1 <- kl_Macroexpand `pseq` kl_shen_packagedP kl_Macroexpand
-                                                                                               case kl_if_1 of
-                                                                                                   Atom (B (True)) -> do let !appl_2 = ApplC (Func "lambda" (Context (\(!kl_Z) -> do kl_Z `pseq` kl_shen_eval_without_macros kl_Z)))
-                                                                                                                         !appl_3 <- kl_Macroexpand `pseq` kl_shen_package_contents kl_Macroexpand
-                                                                                                                         appl_2 `pseq` (appl_3 `pseq` kl_map appl_2 appl_3)
-                                                                                                   Atom (B (False)) -> do do kl_Macroexpand `pseq` kl_shen_eval_without_macros kl_Macroexpand
-                                                                                                   _ -> throwError "if: expected boolean")))
-                         let !appl_4 = ApplC (Func "lambda" (Context (\(!kl_Y) -> do let !aw_5 = Types.Atom (Types.UnboundSym "macroexpand")
-                                                                                     kl_Y `pseq` applyWrapper aw_5 [kl_Y])))
-                         !appl_6 <- appl_4 `pseq` (kl_V2616 `pseq` kl_shen_walk appl_4 kl_V2616)
-                         appl_6 `pseq` applyWrapper appl_0 [appl_6]
-
-kl_shen_eval_without_macros :: Types.KLValue ->
-                               Types.KLContext Types.Env Types.KLValue
-kl_shen_eval_without_macros (!kl_V2618) = do !appl_0 <- kl_V2618 `pseq` kl_shen_proc_inputPlus kl_V2618
-                                             !appl_1 <- appl_0 `pseq` kl_shen_elim_def appl_0
-                                             appl_1 `pseq` evalKL appl_1
-
-kl_shen_proc_inputPlus :: Types.KLValue ->
-                          Types.KLContext Types.Env Types.KLValue
-kl_shen_proc_inputPlus (!kl_V2620) = do let pat_cond_0 kl_V2620 kl_V2620t kl_V2620th kl_V2620tt kl_V2620tth = do let !aw_1 = Types.Atom (Types.UnboundSym "shen.rcons_form")
-                                                                                                                 !appl_2 <- kl_V2620th `pseq` applyWrapper aw_1 [kl_V2620th]
-                                                                                                                 !appl_3 <- appl_2 `pseq` (kl_V2620tt `pseq` klCons appl_2 kl_V2620tt)
-                                                                                                                 appl_3 `pseq` klCons (Types.Atom (Types.UnboundSym "input+")) appl_3
-                                            pat_cond_4 kl_V2620 kl_V2620t kl_V2620th kl_V2620tt kl_V2620tth = do let !aw_5 = Types.Atom (Types.UnboundSym "shen.rcons_form")
-                                                                                                                 !appl_6 <- kl_V2620th `pseq` applyWrapper aw_5 [kl_V2620th]
-                                                                                                                 !appl_7 <- appl_6 `pseq` (kl_V2620tt `pseq` klCons appl_6 kl_V2620tt)
-                                                                                                                 appl_7 `pseq` klCons (Types.Atom (Types.UnboundSym "shen.read+")) appl_7
-                                            pat_cond_8 kl_V2620 kl_V2620h kl_V2620t = do let !appl_9 = ApplC (Func "lambda" (Context (\(!kl_Z) -> do kl_Z `pseq` kl_shen_proc_inputPlus kl_Z)))
-                                                                                         appl_9 `pseq` (kl_V2620 `pseq` kl_map appl_9 kl_V2620)
-                                            pat_cond_10 = do do return kl_V2620
-                                         in case kl_V2620 of
-                                                !(kl_V2620@(Cons (Atom (UnboundSym "input+"))
-                                                                 (!(kl_V2620t@(Cons (!kl_V2620th)
-                                                                                    (!(kl_V2620tt@(Cons (!kl_V2620tth)
-                                                                                                        (Atom (Nil)))))))))) -> pat_cond_0 kl_V2620 kl_V2620t kl_V2620th kl_V2620tt kl_V2620tth
-                                                !(kl_V2620@(Cons (ApplC (PL "input+" _))
-                                                                 (!(kl_V2620t@(Cons (!kl_V2620th)
-                                                                                    (!(kl_V2620tt@(Cons (!kl_V2620tth)
-                                                                                                        (Atom (Nil)))))))))) -> pat_cond_0 kl_V2620 kl_V2620t kl_V2620th kl_V2620tt kl_V2620tth
-                                                !(kl_V2620@(Cons (ApplC (Func "input+" _))
-                                                                 (!(kl_V2620t@(Cons (!kl_V2620th)
-                                                                                    (!(kl_V2620tt@(Cons (!kl_V2620tth)
-                                                                                                        (Atom (Nil)))))))))) -> pat_cond_0 kl_V2620 kl_V2620t kl_V2620th kl_V2620tt kl_V2620tth
-                                                !(kl_V2620@(Cons (Atom (UnboundSym "shen.read+"))
-                                                                 (!(kl_V2620t@(Cons (!kl_V2620th)
-                                                                                    (!(kl_V2620tt@(Cons (!kl_V2620tth)
-                                                                                                        (Atom (Nil)))))))))) -> pat_cond_4 kl_V2620 kl_V2620t kl_V2620th kl_V2620tt kl_V2620tth
-                                                !(kl_V2620@(Cons (ApplC (PL "shen.read+" _))
-                                                                 (!(kl_V2620t@(Cons (!kl_V2620th)
-                                                                                    (!(kl_V2620tt@(Cons (!kl_V2620tth)
-                                                                                                        (Atom (Nil)))))))))) -> pat_cond_4 kl_V2620 kl_V2620t kl_V2620th kl_V2620tt kl_V2620tth
-                                                !(kl_V2620@(Cons (ApplC (Func "shen.read+" _))
-                                                                 (!(kl_V2620t@(Cons (!kl_V2620th)
-                                                                                    (!(kl_V2620tt@(Cons (!kl_V2620tth)
-                                                                                                        (Atom (Nil)))))))))) -> pat_cond_4 kl_V2620 kl_V2620t kl_V2620th kl_V2620tt kl_V2620tth
-                                                !(kl_V2620@(Cons (!kl_V2620h)
-                                                                 (!kl_V2620t))) -> pat_cond_8 kl_V2620 kl_V2620h kl_V2620t
-                                                _ -> pat_cond_10
-
-kl_shen_elim_def :: Types.KLValue ->
-                    Types.KLContext Types.Env Types.KLValue
-kl_shen_elim_def (!kl_V2622) = do let pat_cond_0 kl_V2622 kl_V2622t kl_V2622th kl_V2622tt = do kl_V2622th `pseq` (kl_V2622tt `pseq` kl_shen_shen_RBkl kl_V2622th kl_V2622tt)
-                                      pat_cond_1 kl_V2622 kl_V2622t kl_V2622th kl_V2622tt = do let !appl_2 = ApplC (Func "lambda" (Context (\(!kl_Default) -> do let !appl_3 = ApplC (Func "lambda" (Context (\(!kl_Def) -> do let !appl_4 = ApplC (Func "lambda" (Context (\(!kl_MacroAdd) -> do return kl_Def)))
-                                                                                                                                                                                                                               !appl_5 <- kl_V2622th `pseq` kl_shen_add_macro kl_V2622th
-                                                                                                                                                                                                                               appl_5 `pseq` applyWrapper appl_4 [appl_5])))
-                                                                                                                                                                 !appl_6 <- kl_V2622tt `pseq` (kl_Default `pseq` kl_append kl_V2622tt kl_Default)
-                                                                                                                                                                 !appl_7 <- kl_V2622th `pseq` (appl_6 `pseq` klCons kl_V2622th appl_6)
-                                                                                                                                                                 !appl_8 <- appl_7 `pseq` klCons (Types.Atom (Types.UnboundSym "define")) appl_7
-                                                                                                                                                                 !appl_9 <- appl_8 `pseq` kl_shen_elim_def appl_8
-                                                                                                                                                                 appl_9 `pseq` applyWrapper appl_3 [appl_9])))
-                                                                                               !appl_10 <- klCons (Types.Atom (Types.UnboundSym "X")) (Types.Atom Types.Nil)
-                                                                                               !appl_11 <- appl_10 `pseq` klCons (Types.Atom (Types.UnboundSym "->")) appl_10
-                                                                                               !appl_12 <- appl_11 `pseq` klCons (Types.Atom (Types.UnboundSym "X")) appl_11
-                                                                                               appl_12 `pseq` applyWrapper appl_2 [appl_12]
-                                      pat_cond_13 kl_V2622 kl_V2622t kl_V2622th kl_V2622tt = do let !aw_14 = Types.Atom (Types.UnboundSym "shen.yacc")
-                                                                                                !appl_15 <- kl_V2622 `pseq` applyWrapper aw_14 [kl_V2622]
-                                                                                                appl_15 `pseq` kl_shen_elim_def appl_15
-                                      pat_cond_16 kl_V2622 kl_V2622h kl_V2622t = do let !appl_17 = ApplC (Func "lambda" (Context (\(!kl_Z) -> do kl_Z `pseq` kl_shen_elim_def kl_Z)))
-                                                                                    appl_17 `pseq` (kl_V2622 `pseq` kl_map appl_17 kl_V2622)
-                                      pat_cond_18 = do do return kl_V2622
-                                   in case kl_V2622 of
-                                          !(kl_V2622@(Cons (Atom (UnboundSym "define"))
-                                                           (!(kl_V2622t@(Cons (!kl_V2622th)
-                                                                              (!kl_V2622tt)))))) -> pat_cond_0 kl_V2622 kl_V2622t kl_V2622th kl_V2622tt
-                                          !(kl_V2622@(Cons (ApplC (PL "define" _))
-                                                           (!(kl_V2622t@(Cons (!kl_V2622th)
-                                                                              (!kl_V2622tt)))))) -> pat_cond_0 kl_V2622 kl_V2622t kl_V2622th kl_V2622tt
-                                          !(kl_V2622@(Cons (ApplC (Func "define" _))
-                                                           (!(kl_V2622t@(Cons (!kl_V2622th)
-                                                                              (!kl_V2622tt)))))) -> pat_cond_0 kl_V2622 kl_V2622t kl_V2622th kl_V2622tt
-                                          !(kl_V2622@(Cons (Atom (UnboundSym "defmacro"))
-                                                           (!(kl_V2622t@(Cons (!kl_V2622th)
-                                                                              (!kl_V2622tt)))))) -> pat_cond_1 kl_V2622 kl_V2622t kl_V2622th kl_V2622tt
-                                          !(kl_V2622@(Cons (ApplC (PL "defmacro" _))
-                                                           (!(kl_V2622t@(Cons (!kl_V2622th)
-                                                                              (!kl_V2622tt)))))) -> pat_cond_1 kl_V2622 kl_V2622t kl_V2622th kl_V2622tt
-                                          !(kl_V2622@(Cons (ApplC (Func "defmacro" _))
-                                                           (!(kl_V2622t@(Cons (!kl_V2622th)
-                                                                              (!kl_V2622tt)))))) -> pat_cond_1 kl_V2622 kl_V2622t kl_V2622th kl_V2622tt
-                                          !(kl_V2622@(Cons (Atom (UnboundSym "defcc"))
-                                                           (!(kl_V2622t@(Cons (!kl_V2622th)
-                                                                              (!kl_V2622tt)))))) -> pat_cond_13 kl_V2622 kl_V2622t kl_V2622th kl_V2622tt
-                                          !(kl_V2622@(Cons (ApplC (PL "defcc" _))
-                                                           (!(kl_V2622t@(Cons (!kl_V2622th)
-                                                                              (!kl_V2622tt)))))) -> pat_cond_13 kl_V2622 kl_V2622t kl_V2622th kl_V2622tt
-                                          !(kl_V2622@(Cons (ApplC (Func "defcc" _))
-                                                           (!(kl_V2622t@(Cons (!kl_V2622th)
-                                                                              (!kl_V2622tt)))))) -> pat_cond_13 kl_V2622 kl_V2622t kl_V2622th kl_V2622tt
-                                          !(kl_V2622@(Cons (!kl_V2622h)
-                                                           (!kl_V2622t))) -> pat_cond_16 kl_V2622 kl_V2622h kl_V2622t
-                                          _ -> pat_cond_18
-
-kl_shen_add_macro :: Types.KLValue ->
-                     Types.KLContext Types.Env Types.KLValue
-kl_shen_add_macro (!kl_V2624) = do let !appl_0 = ApplC (Func "lambda" (Context (\(!kl_MacroReg) -> do let !appl_1 = ApplC (Func "lambda" (Context (\(!kl_NewMacroReg) -> do !kl_if_2 <- kl_MacroReg `pseq` (kl_NewMacroReg `pseq` eq kl_MacroReg kl_NewMacroReg)
-                                                                                                                                                                            case kl_if_2 of
-                                                                                                                                                                                Atom (B (True)) -> do return (Types.Atom (Types.UnboundSym "shen.skip"))
-                                                                                                                                                                                Atom (B (False)) -> do do !appl_3 <- kl_V2624 `pseq` kl_function kl_V2624
-                                                                                                                                                                                                          !appl_4 <- value (Types.Atom (Types.UnboundSym "*macros*"))
-                                                                                                                                                                                                          !appl_5 <- appl_3 `pseq` (appl_4 `pseq` klCons appl_3 appl_4)
-                                                                                                                                                                                                          appl_5 `pseq` klSet (Types.Atom (Types.UnboundSym "*macros*")) appl_5
-                                                                                                                                                                                _ -> throwError "if: expected boolean")))
-                                                                                                      !appl_6 <- value (Types.Atom (Types.UnboundSym "shen.*macroreg*"))
-                                                                                                      let !aw_7 = Types.Atom (Types.UnboundSym "adjoin")
-                                                                                                      !appl_8 <- kl_V2624 `pseq` (appl_6 `pseq` applyWrapper aw_7 [kl_V2624,
-                                                                                                                                                                   appl_6])
-                                                                                                      !appl_9 <- appl_8 `pseq` klSet (Types.Atom (Types.UnboundSym "shen.*macroreg*")) appl_8
-                                                                                                      appl_9 `pseq` applyWrapper appl_1 [appl_9])))
-                                   !appl_10 <- value (Types.Atom (Types.UnboundSym "shen.*macroreg*"))
-                                   appl_10 `pseq` applyWrapper appl_0 [appl_10]
-
-kl_shen_packagedP :: Types.KLValue ->
-                     Types.KLContext Types.Env Types.KLValue
-kl_shen_packagedP (!kl_V2632) = do let pat_cond_0 kl_V2632 kl_V2632t kl_V2632th kl_V2632tt kl_V2632tth kl_V2632ttt = do return (Atom (B True))
-                                       pat_cond_1 = do do return (Atom (B False))
-                                    in case kl_V2632 of
-                                           !(kl_V2632@(Cons (Atom (UnboundSym "package"))
-                                                            (!(kl_V2632t@(Cons (!kl_V2632th)
-                                                                               (!(kl_V2632tt@(Cons (!kl_V2632tth)
-                                                                                                   (!kl_V2632ttt))))))))) -> pat_cond_0 kl_V2632 kl_V2632t kl_V2632th kl_V2632tt kl_V2632tth kl_V2632ttt
-                                           !(kl_V2632@(Cons (ApplC (PL "package" _))
-                                                            (!(kl_V2632t@(Cons (!kl_V2632th)
-                                                                               (!(kl_V2632tt@(Cons (!kl_V2632tth)
-                                                                                                   (!kl_V2632ttt))))))))) -> pat_cond_0 kl_V2632 kl_V2632t kl_V2632th kl_V2632tt kl_V2632tth kl_V2632ttt
-                                           !(kl_V2632@(Cons (ApplC (Func "package" _))
-                                                            (!(kl_V2632t@(Cons (!kl_V2632th)
-                                                                               (!(kl_V2632tt@(Cons (!kl_V2632tth)
-                                                                                                   (!kl_V2632ttt))))))))) -> pat_cond_0 kl_V2632 kl_V2632t kl_V2632th kl_V2632tt kl_V2632tth kl_V2632ttt
-                                           _ -> pat_cond_1
-
-kl_external :: Types.KLValue ->
-               Types.KLContext Types.Env Types.KLValue
-kl_external (!kl_V2634) = do (do !appl_0 <- value (Types.Atom (Types.UnboundSym "*property-vector*"))
-                                 kl_V2634 `pseq` (appl_0 `pseq` kl_get kl_V2634 (Types.Atom (Types.UnboundSym "shen.external-symbols")) appl_0)) `catchError` (\(!kl_E) -> do let !aw_1 = Types.Atom (Types.UnboundSym "shen.app")
-                                                                                                                                                                              !appl_2 <- kl_V2634 `pseq` applyWrapper aw_1 [kl_V2634,
-                                                                                                                                                                                                                            Types.Atom (Types.Str " has not been used.\n"),
-                                                                                                                                                                                                                            Types.Atom (Types.UnboundSym "shen.a")]
-                                                                                                                                                                              !appl_3 <- appl_2 `pseq` cn (Types.Atom (Types.Str "package ")) appl_2
-                                                                                                                                                                              appl_3 `pseq` simpleError appl_3)
-
-kl_internal :: Types.KLValue ->
-               Types.KLContext Types.Env Types.KLValue
-kl_internal (!kl_V2636) = do (do !appl_0 <- value (Types.Atom (Types.UnboundSym "*property-vector*"))
-                                 kl_V2636 `pseq` (appl_0 `pseq` kl_get kl_V2636 (Types.Atom (Types.UnboundSym "shen.internal-symbols")) appl_0)) `catchError` (\(!kl_E) -> do let !aw_1 = Types.Atom (Types.UnboundSym "shen.app")
-                                                                                                                                                                              !appl_2 <- kl_V2636 `pseq` applyWrapper aw_1 [kl_V2636,
-                                                                                                                                                                                                                            Types.Atom (Types.Str " has not been used.\n"),
-                                                                                                                                                                                                                            Types.Atom (Types.UnboundSym "shen.a")]
-                                                                                                                                                                              !appl_3 <- appl_2 `pseq` cn (Types.Atom (Types.Str "package ")) appl_2
-                                                                                                                                                                              appl_3 `pseq` simpleError appl_3)
-
-kl_shen_package_contents :: Types.KLValue ->
-                            Types.KLContext Types.Env Types.KLValue
-kl_shen_package_contents (!kl_V2640) = do let pat_cond_0 kl_V2640 kl_V2640t kl_V2640tt kl_V2640tth kl_V2640ttt = do return kl_V2640ttt
-                                              pat_cond_1 kl_V2640 kl_V2640t kl_V2640th kl_V2640tt kl_V2640tth kl_V2640ttt = do let !aw_2 = Types.Atom (Types.UnboundSym "shen.packageh")
-                                                                                                                               kl_V2640th `pseq` (kl_V2640tth `pseq` (kl_V2640ttt `pseq` applyWrapper aw_2 [kl_V2640th,
-                                                                                                                                                                                                            kl_V2640tth,
-                                                                                                                                                                                                            kl_V2640ttt]))
-                                              pat_cond_3 = do do let !aw_4 = Types.Atom (Types.UnboundSym "shen.f_error")
-                                                                 applyWrapper aw_4 [ApplC (wrapNamed "shen.package-contents" kl_shen_package_contents)]
-                                           in case kl_V2640 of
-                                                  !(kl_V2640@(Cons (Atom (UnboundSym "package"))
-                                                                   (!(kl_V2640t@(Cons (Atom (UnboundSym "null"))
-                                                                                      (!(kl_V2640tt@(Cons (!kl_V2640tth)
-                                                                                                          (!kl_V2640ttt))))))))) -> pat_cond_0 kl_V2640 kl_V2640t kl_V2640tt kl_V2640tth kl_V2640ttt
-                                                  !(kl_V2640@(Cons (Atom (UnboundSym "package"))
-                                                                   (!(kl_V2640t@(Cons (ApplC (PL "null"
-                                                                                                 _))
-                                                                                      (!(kl_V2640tt@(Cons (!kl_V2640tth)
-                                                                                                          (!kl_V2640ttt))))))))) -> pat_cond_0 kl_V2640 kl_V2640t kl_V2640tt kl_V2640tth kl_V2640ttt
-                                                  !(kl_V2640@(Cons (Atom (UnboundSym "package"))
-                                                                   (!(kl_V2640t@(Cons (ApplC (Func "null"
-                                                                                                   _))
-                                                                                      (!(kl_V2640tt@(Cons (!kl_V2640tth)
-                                                                                                          (!kl_V2640ttt))))))))) -> pat_cond_0 kl_V2640 kl_V2640t kl_V2640tt kl_V2640tth kl_V2640ttt
-                                                  !(kl_V2640@(Cons (ApplC (PL "package" _))
-                                                                   (!(kl_V2640t@(Cons (Atom (UnboundSym "null"))
-                                                                                      (!(kl_V2640tt@(Cons (!kl_V2640tth)
-                                                                                                          (!kl_V2640ttt))))))))) -> pat_cond_0 kl_V2640 kl_V2640t kl_V2640tt kl_V2640tth kl_V2640ttt
-                                                  !(kl_V2640@(Cons (ApplC (PL "package" _))
-                                                                   (!(kl_V2640t@(Cons (ApplC (PL "null"
-                                                                                                 _))
-                                                                                      (!(kl_V2640tt@(Cons (!kl_V2640tth)
-                                                                                                          (!kl_V2640ttt))))))))) -> pat_cond_0 kl_V2640 kl_V2640t kl_V2640tt kl_V2640tth kl_V2640ttt
-                                                  !(kl_V2640@(Cons (ApplC (PL "package" _))
-                                                                   (!(kl_V2640t@(Cons (ApplC (Func "null"
-                                                                                                   _))
-                                                                                      (!(kl_V2640tt@(Cons (!kl_V2640tth)
-                                                                                                          (!kl_V2640ttt))))))))) -> pat_cond_0 kl_V2640 kl_V2640t kl_V2640tt kl_V2640tth kl_V2640ttt
-                                                  !(kl_V2640@(Cons (ApplC (Func "package" _))
-                                                                   (!(kl_V2640t@(Cons (Atom (UnboundSym "null"))
-                                                                                      (!(kl_V2640tt@(Cons (!kl_V2640tth)
-                                                                                                          (!kl_V2640ttt))))))))) -> pat_cond_0 kl_V2640 kl_V2640t kl_V2640tt kl_V2640tth kl_V2640ttt
-                                                  !(kl_V2640@(Cons (ApplC (Func "package" _))
-                                                                   (!(kl_V2640t@(Cons (ApplC (PL "null"
-                                                                                                 _))
-                                                                                      (!(kl_V2640tt@(Cons (!kl_V2640tth)
-                                                                                                          (!kl_V2640ttt))))))))) -> pat_cond_0 kl_V2640 kl_V2640t kl_V2640tt kl_V2640tth kl_V2640ttt
-                                                  !(kl_V2640@(Cons (ApplC (Func "package" _))
-                                                                   (!(kl_V2640t@(Cons (ApplC (Func "null"
-                                                                                                   _))
-                                                                                      (!(kl_V2640tt@(Cons (!kl_V2640tth)
-                                                                                                          (!kl_V2640ttt))))))))) -> pat_cond_0 kl_V2640 kl_V2640t kl_V2640tt kl_V2640tth kl_V2640ttt
-                                                  !(kl_V2640@(Cons (Atom (UnboundSym "package"))
-                                                                   (!(kl_V2640t@(Cons (!kl_V2640th)
-                                                                                      (!(kl_V2640tt@(Cons (!kl_V2640tth)
-                                                                                                          (!kl_V2640ttt))))))))) -> pat_cond_1 kl_V2640 kl_V2640t kl_V2640th kl_V2640tt kl_V2640tth kl_V2640ttt
-                                                  !(kl_V2640@(Cons (ApplC (PL "package" _))
-                                                                   (!(kl_V2640t@(Cons (!kl_V2640th)
-                                                                                      (!(kl_V2640tt@(Cons (!kl_V2640tth)
-                                                                                                          (!kl_V2640ttt))))))))) -> pat_cond_1 kl_V2640 kl_V2640t kl_V2640th kl_V2640tt kl_V2640tth kl_V2640ttt
-                                                  !(kl_V2640@(Cons (ApplC (Func "package" _))
-                                                                   (!(kl_V2640t@(Cons (!kl_V2640th)
-                                                                                      (!(kl_V2640tt@(Cons (!kl_V2640tth)
-                                                                                                          (!kl_V2640ttt))))))))) -> pat_cond_1 kl_V2640 kl_V2640t kl_V2640th kl_V2640tt kl_V2640tth kl_V2640ttt
-                                                  _ -> pat_cond_3
-
-kl_shen_walk :: Types.KLValue ->
-                Types.KLValue -> Types.KLContext Types.Env Types.KLValue
-kl_shen_walk (!kl_V2643) (!kl_V2644) = do let pat_cond_0 kl_V2644 kl_V2644h kl_V2644t = do let !appl_1 = ApplC (Func "lambda" (Context (\(!kl_Z) -> do kl_V2643 `pseq` (kl_Z `pseq` kl_shen_walk kl_V2643 kl_Z))))
-                                                                                           !appl_2 <- appl_1 `pseq` (kl_V2644 `pseq` kl_map appl_1 kl_V2644)
-                                                                                           appl_2 `pseq` applyWrapper kl_V2643 [appl_2]
-                                              pat_cond_3 = do do kl_V2644 `pseq` applyWrapper kl_V2643 [kl_V2644]
-                                           in case kl_V2644 of
-                                                  !(kl_V2644@(Cons (!kl_V2644h)
-                                                                   (!kl_V2644t))) -> pat_cond_0 kl_V2644 kl_V2644h kl_V2644t
-                                                  _ -> pat_cond_3
-
-kl_compile :: Types.KLValue ->
-              Types.KLValue ->
-              Types.KLValue -> Types.KLContext Types.Env Types.KLValue
-kl_compile (!kl_V2648) (!kl_V2649) (!kl_V2650) = do let !appl_0 = ApplC (Func "lambda" (Context (\(!kl_O) -> do let !aw_1 = Types.Atom (Types.UnboundSym "fail")
-                                                                                                                !appl_2 <- applyWrapper aw_1 []
-                                                                                                                !kl_if_3 <- appl_2 `pseq` (kl_O `pseq` eq appl_2 kl_O)
-                                                                                                                !kl_if_4 <- case kl_if_3 of
-                                                                                                                                Atom (B (True)) -> do return (Atom (B True))
-                                                                                                                                Atom (B (False)) -> do do !appl_5 <- kl_O `pseq` hd kl_O
-                                                                                                                                                          !appl_6 <- appl_5 `pseq` kl_emptyP appl_5
-                                                                                                                                                          !kl_if_7 <- appl_6 `pseq` kl_not appl_6
-                                                                                                                                                          case kl_if_7 of
-                                                                                                                                                              Atom (B (True)) -> do return (Atom (B True))
-                                                                                                                                                              Atom (B (False)) -> do do return (Atom (B False))
-                                                                                                                                                              _ -> throwError "if: expected boolean"
-                                                                                                                                _ -> throwError "if: expected boolean"
-                                                                                                                case kl_if_4 of
-                                                                                                                    Atom (B (True)) -> do kl_O `pseq` applyWrapper kl_V2650 [kl_O]
-                                                                                                                    Atom (B (False)) -> do do let !aw_8 = Types.Atom (Types.UnboundSym "shen.hdtl")
-                                                                                                                                              kl_O `pseq` applyWrapper aw_8 [kl_O]
-                                                                                                                    _ -> throwError "if: expected boolean")))
-                                                    !appl_9 <- klCons (Types.Atom Types.Nil) (Types.Atom Types.Nil)
-                                                    !appl_10 <- kl_V2649 `pseq` (appl_9 `pseq` klCons kl_V2649 appl_9)
-                                                    !appl_11 <- appl_10 `pseq` applyWrapper kl_V2648 [appl_10]
-                                                    appl_11 `pseq` applyWrapper appl_0 [appl_11]
-
-kl_fail_if :: Types.KLValue ->
-              Types.KLValue -> Types.KLContext Types.Env Types.KLValue
-kl_fail_if (!kl_V2653) (!kl_V2654) = do !kl_if_0 <- kl_V2654 `pseq` applyWrapper kl_V2653 [kl_V2654]
-                                        case kl_if_0 of
-                                            Atom (B (True)) -> do let !aw_1 = Types.Atom (Types.UnboundSym "fail")
-                                                                  applyWrapper aw_1 []
-                                            Atom (B (False)) -> do do return kl_V2654
-                                            _ -> throwError "if: expected boolean"
-
-kl_Ats :: Types.KLValue ->
-          Types.KLValue -> Types.KLContext Types.Env Types.KLValue
-kl_Ats (!kl_V2657) (!kl_V2658) = do kl_V2657 `pseq` (kl_V2658 `pseq` cn kl_V2657 kl_V2658)
-
-kl_tcP :: Types.KLContext Types.Env Types.KLValue
-kl_tcP = do value (Types.Atom (Types.UnboundSym "shen.*tc*"))
-
-kl_ps :: Types.KLValue -> Types.KLContext Types.Env Types.KLValue
-kl_ps (!kl_V2660) = do (do !appl_0 <- value (Types.Atom (Types.UnboundSym "*property-vector*"))
-                           kl_V2660 `pseq` (appl_0 `pseq` kl_get kl_V2660 (Types.Atom (Types.UnboundSym "shen.source")) appl_0)) `catchError` (\(!kl_E) -> do let !aw_1 = Types.Atom (Types.UnboundSym "shen.app")
-                                                                                                                                                              !appl_2 <- kl_V2660 `pseq` applyWrapper aw_1 [kl_V2660,
-                                                                                                                                                                                                            Types.Atom (Types.Str " not found.\n"),
-                                                                                                                                                                                                            Types.Atom (Types.UnboundSym "shen.a")]
-                                                                                                                                                              appl_2 `pseq` simpleError appl_2)
-
-kl_stinput :: Types.KLContext Types.Env Types.KLValue
-kl_stinput = do value (Types.Atom (Types.UnboundSym "*stinput*"))
-
-kl_shen_PlusvectorP :: Types.KLValue ->
-                       Types.KLContext Types.Env Types.KLValue
-kl_shen_PlusvectorP (!kl_V2662) = do !kl_if_0 <- kl_V2662 `pseq` absvectorP kl_V2662
-                                     case kl_if_0 of
-                                         Atom (B (True)) -> do !appl_1 <- kl_V2662 `pseq` addressFrom kl_V2662 (Types.Atom (Types.N (Types.KI 0)))
-                                                               !kl_if_2 <- appl_1 `pseq` greaterThan appl_1 (Types.Atom (Types.N (Types.KI 0)))
-                                                               case kl_if_2 of
-                                                                   Atom (B (True)) -> do return (Atom (B True))
-                                                                   Atom (B (False)) -> do do return (Atom (B False))
-                                                                   _ -> throwError "if: expected boolean"
-                                         Atom (B (False)) -> do do return (Atom (B False))
-                                         _ -> throwError "if: expected boolean"
-
-kl_vector :: Types.KLValue ->
-             Types.KLContext Types.Env Types.KLValue
-kl_vector (!kl_V2664) = do let !appl_0 = ApplC (Func "lambda" (Context (\(!kl_Vector) -> do let !appl_1 = ApplC (Func "lambda" (Context (\(!kl_ZeroStamp) -> do let !appl_2 = ApplC (Func "lambda" (Context (\(!kl_Standard) -> do return kl_Standard)))
-                                                                                                                                                                !appl_3 <- let pat_cond_4 = do return kl_ZeroStamp
-                                                                                                                                                                               pat_cond_5 = do do let !aw_6 = Types.Atom (Types.UnboundSym "fail")
-                                                                                                                                                                                                  !appl_7 <- applyWrapper aw_6 []
-                                                                                                                                                                                                  kl_ZeroStamp `pseq` (kl_V2664 `pseq` (appl_7 `pseq` kl_shen_fillvector kl_ZeroStamp (Types.Atom (Types.N (Types.KI 1))) kl_V2664 appl_7))
-                                                                                                                                                                            in case kl_V2664 of
-                                                                                                                                                                                   kl_V2664@(Atom (N (KI 0))) -> pat_cond_4
-                                                                                                                                                                                   _ -> pat_cond_5
-                                                                                                                                                                appl_3 `pseq` applyWrapper appl_2 [appl_3])))
-                                                                                            !appl_8 <- kl_Vector `pseq` (kl_V2664 `pseq` addressTo kl_Vector (Types.Atom (Types.N (Types.KI 0))) kl_V2664)
-                                                                                            appl_8 `pseq` applyWrapper appl_1 [appl_8])))
-                           !appl_9 <- kl_V2664 `pseq` add kl_V2664 (Types.Atom (Types.N (Types.KI 1)))
-                           !appl_10 <- appl_9 `pseq` absvector appl_9
-                           appl_10 `pseq` applyWrapper appl_0 [appl_10]
-
-kl_shen_fillvector :: Types.KLValue ->
-                      Types.KLValue ->
-                      Types.KLValue ->
-                      Types.KLValue -> Types.KLContext Types.Env Types.KLValue
-kl_shen_fillvector (!kl_V2670) (!kl_V2671) (!kl_V2672) (!kl_V2673) = do !kl_if_0 <- kl_V2672 `pseq` (kl_V2671 `pseq` eq kl_V2672 kl_V2671)
-                                                                        case kl_if_0 of
-                                                                            Atom (B (True)) -> do kl_V2670 `pseq` (kl_V2672 `pseq` (kl_V2673 `pseq` addressTo kl_V2670 kl_V2672 kl_V2673))
-                                                                            Atom (B (False)) -> do do !appl_1 <- kl_V2670 `pseq` (kl_V2671 `pseq` (kl_V2673 `pseq` addressTo kl_V2670 kl_V2671 kl_V2673))
-                                                                                                      !appl_2 <- kl_V2671 `pseq` add (Types.Atom (Types.N (Types.KI 1))) kl_V2671
-                                                                                                      appl_1 `pseq` (appl_2 `pseq` (kl_V2672 `pseq` (kl_V2673 `pseq` kl_shen_fillvector appl_1 appl_2 kl_V2672 kl_V2673)))
-                                                                            _ -> throwError "if: expected boolean"
-
-kl_vectorP :: Types.KLValue ->
-              Types.KLContext Types.Env Types.KLValue
-kl_vectorP (!kl_V2675) = do !kl_if_0 <- kl_V2675 `pseq` absvectorP kl_V2675
-                            case kl_if_0 of
-                                Atom (B (True)) -> do !kl_if_1 <- (do !appl_2 <- kl_V2675 `pseq` addressFrom kl_V2675 (Types.Atom (Types.N (Types.KI 0)))
-                                                                      appl_2 `pseq` greaterThanOrEqualTo appl_2 (Types.Atom (Types.N (Types.KI 0)))) `catchError` (\(!kl_E) -> do return (Atom (B False)))
-                                                      case kl_if_1 of
-                                                          Atom (B (True)) -> do return (Atom (B True))
-                                                          Atom (B (False)) -> do do return (Atom (B False))
-                                                          _ -> throwError "if: expected boolean"
-                                Atom (B (False)) -> do do return (Atom (B False))
-                                _ -> throwError "if: expected boolean"
-
-kl_vector_RB :: Types.KLValue ->
-                Types.KLValue ->
-                Types.KLValue -> Types.KLContext Types.Env Types.KLValue
-kl_vector_RB (!kl_V2679) (!kl_V2680) (!kl_V2681) = do let pat_cond_0 = do simpleError (Types.Atom (Types.Str "cannot access 0th element of a vector\n"))
-                                                          pat_cond_1 = do do kl_V2679 `pseq` (kl_V2680 `pseq` (kl_V2681 `pseq` addressTo kl_V2679 kl_V2680 kl_V2681))
-                                                       in case kl_V2680 of
-                                                              kl_V2680@(Atom (N (KI 0))) -> pat_cond_0
-                                                              _ -> pat_cond_1
-
-kl_LB_vector :: Types.KLValue ->
-                Types.KLValue -> Types.KLContext Types.Env Types.KLValue
-kl_LB_vector (!kl_V2684) (!kl_V2685) = do let pat_cond_0 = do simpleError (Types.Atom (Types.Str "cannot access 0th element of a vector\n"))
-                                              pat_cond_1 = do do let !appl_2 = ApplC (Func "lambda" (Context (\(!kl_VectorElement) -> do let !aw_3 = Types.Atom (Types.UnboundSym "fail")
-                                                                                                                                         !appl_4 <- applyWrapper aw_3 []
-                                                                                                                                         !kl_if_5 <- kl_VectorElement `pseq` (appl_4 `pseq` eq kl_VectorElement appl_4)
-                                                                                                                                         case kl_if_5 of
-                                                                                                                                             Atom (B (True)) -> do simpleError (Types.Atom (Types.Str "vector element not found\n"))
-                                                                                                                                             Atom (B (False)) -> do do return kl_VectorElement
-                                                                                                                                             _ -> throwError "if: expected boolean")))
-                                                                 !appl_6 <- kl_V2684 `pseq` (kl_V2685 `pseq` addressFrom kl_V2684 kl_V2685)
-                                                                 appl_6 `pseq` applyWrapper appl_2 [appl_6]
-                                           in case kl_V2685 of
-                                                  kl_V2685@(Atom (N (KI 0))) -> pat_cond_0
-                                                  _ -> pat_cond_1
-
-kl_shen_posintP :: Types.KLValue ->
-                   Types.KLContext Types.Env Types.KLValue
-kl_shen_posintP (!kl_V2687) = do !kl_if_0 <- kl_V2687 `pseq` kl_integerP kl_V2687
-                                 case kl_if_0 of
-                                     Atom (B (True)) -> do !kl_if_1 <- kl_V2687 `pseq` greaterThanOrEqualTo kl_V2687 (Types.Atom (Types.N (Types.KI 0)))
-                                                           case kl_if_1 of
-                                                               Atom (B (True)) -> do return (Atom (B True))
-                                                               Atom (B (False)) -> do do return (Atom (B False))
-                                                               _ -> throwError "if: expected boolean"
-                                     Atom (B (False)) -> do do return (Atom (B False))
-                                     _ -> throwError "if: expected boolean"
-
-kl_limit :: Types.KLValue ->
-            Types.KLContext Types.Env Types.KLValue
-kl_limit (!kl_V2689) = do kl_V2689 `pseq` addressFrom kl_V2689 (Types.Atom (Types.N (Types.KI 0)))
-
-kl_symbolP :: Types.KLValue ->
-              Types.KLContext Types.Env Types.KLValue
-kl_symbolP (!kl_V2691) = do !kl_if_0 <- kl_V2691 `pseq` kl_booleanP kl_V2691
-                            !kl_if_1 <- case kl_if_0 of
-                                            Atom (B (True)) -> do return (Atom (B True))
-                                            Atom (B (False)) -> do do !kl_if_2 <- kl_V2691 `pseq` numberP kl_V2691
-                                                                      !kl_if_3 <- case kl_if_2 of
-                                                                                      Atom (B (True)) -> do return (Atom (B True))
-                                                                                      Atom (B (False)) -> do do !kl_if_4 <- kl_V2691 `pseq` stringP kl_V2691
-                                                                                                                case kl_if_4 of
-                                                                                                                    Atom (B (True)) -> do return (Atom (B True))
-                                                                                                                    Atom (B (False)) -> do do return (Atom (B False))
-                                                                                                                    _ -> throwError "if: expected boolean"
-                                                                                      _ -> throwError "if: expected boolean"
-                                                                      case kl_if_3 of
-                                                                          Atom (B (True)) -> do return (Atom (B True))
-                                                                          Atom (B (False)) -> do do return (Atom (B False))
-                                                                          _ -> throwError "if: expected boolean"
-                                            _ -> throwError "if: expected boolean"
-                            case kl_if_1 of
-                                Atom (B (True)) -> do return (Atom (B False))
-                                Atom (B (False)) -> do do (do let !appl_5 = ApplC (Func "lambda" (Context (\(!kl_String) -> do kl_String `pseq` kl_shen_analyse_symbolP kl_String)))
-                                                              !appl_6 <- kl_V2691 `pseq` str kl_V2691
-                                                              appl_6 `pseq` applyWrapper appl_5 [appl_6]) `catchError` (\(!kl_E) -> do return (Atom (B False)))
-                                _ -> throwError "if: expected boolean"
-
-kl_shen_analyse_symbolP :: Types.KLValue ->
-                           Types.KLContext Types.Env Types.KLValue
-kl_shen_analyse_symbolP (!kl_V2693) = do !kl_if_0 <- kl_V2693 `pseq` kl_shen_PlusstringP kl_V2693
-                                         case kl_if_0 of
-                                             Atom (B (True)) -> do !appl_1 <- kl_V2693 `pseq` pos kl_V2693 (Types.Atom (Types.N (Types.KI 0)))
-                                                                   !kl_if_2 <- appl_1 `pseq` kl_shen_alphaP appl_1
-                                                                   case kl_if_2 of
-                                                                       Atom (B (True)) -> do !appl_3 <- kl_V2693 `pseq` tlstr kl_V2693
-                                                                                             !kl_if_4 <- appl_3 `pseq` kl_shen_alphanumsP appl_3
-                                                                                             case kl_if_4 of
-                                                                                                 Atom (B (True)) -> do return (Atom (B True))
-                                                                                                 Atom (B (False)) -> do do return (Atom (B False))
-                                                                                                 _ -> throwError "if: expected boolean"
-                                                                       Atom (B (False)) -> do do return (Atom (B False))
-                                                                       _ -> throwError "if: expected boolean"
-                                             Atom (B (False)) -> do do let !aw_5 = Types.Atom (Types.UnboundSym "shen.f_error")
-                                                                       applyWrapper aw_5 [ApplC (wrapNamed "shen.analyse-symbol?" kl_shen_analyse_symbolP)]
-                                             _ -> throwError "if: expected boolean"
-
-kl_shen_alphaP :: Types.KLValue ->
-                  Types.KLContext Types.Env Types.KLValue
-kl_shen_alphaP (!kl_V2695) = do !appl_0 <- klCons (Types.Atom (Types.Str ".")) (Types.Atom Types.Nil)
-                                !appl_1 <- appl_0 `pseq` klCons (Types.Atom (Types.Str "'")) appl_0
-                                !appl_2 <- appl_1 `pseq` klCons (Types.Atom (Types.Str "#")) appl_1
-                                !appl_3 <- appl_2 `pseq` klCons (Types.Atom (Types.Str "`")) appl_2
-                                !appl_4 <- appl_3 `pseq` klCons (Types.Atom (Types.Str ";")) appl_3
-                                !appl_5 <- appl_4 `pseq` klCons (Types.Atom (Types.Str ":")) appl_4
-                                !appl_6 <- appl_5 `pseq` klCons (Types.Atom (Types.Str "}")) appl_5
-                                !appl_7 <- appl_6 `pseq` klCons (Types.Atom (Types.Str "{")) appl_6
-                                !appl_8 <- appl_7 `pseq` klCons (Types.Atom (Types.Str "%")) appl_7
-                                !appl_9 <- appl_8 `pseq` klCons (Types.Atom (Types.Str "&")) appl_8
-                                !appl_10 <- appl_9 `pseq` klCons (Types.Atom (Types.Str "<")) appl_9
-                                !appl_11 <- appl_10 `pseq` klCons (Types.Atom (Types.Str ">")) appl_10
-                                !appl_12 <- appl_11 `pseq` klCons (Types.Atom (Types.Str "~")) appl_11
-                                !appl_13 <- appl_12 `pseq` klCons (Types.Atom (Types.Str "@")) appl_12
-                                !appl_14 <- appl_13 `pseq` klCons (Types.Atom (Types.Str "!")) appl_13
-                                !appl_15 <- appl_14 `pseq` klCons (Types.Atom (Types.Str "$")) appl_14
-                                !appl_16 <- appl_15 `pseq` klCons (Types.Atom (Types.Str "?")) appl_15
-                                !appl_17 <- appl_16 `pseq` klCons (Types.Atom (Types.Str "_")) appl_16
-                                !appl_18 <- appl_17 `pseq` klCons (Types.Atom (Types.Str "-")) appl_17
-                                !appl_19 <- appl_18 `pseq` klCons (Types.Atom (Types.Str "+")) appl_18
-                                !appl_20 <- appl_19 `pseq` klCons (Types.Atom (Types.Str "/")) appl_19
-                                !appl_21 <- appl_20 `pseq` klCons (Types.Atom (Types.Str "*")) appl_20
-                                !appl_22 <- appl_21 `pseq` klCons (Types.Atom (Types.Str "=")) appl_21
-                                !appl_23 <- appl_22 `pseq` klCons (Types.Atom (Types.Str "z")) appl_22
-                                !appl_24 <- appl_23 `pseq` klCons (Types.Atom (Types.Str "y")) appl_23
-                                !appl_25 <- appl_24 `pseq` klCons (Types.Atom (Types.Str "x")) appl_24
-                                !appl_26 <- appl_25 `pseq` klCons (Types.Atom (Types.Str "w")) appl_25
-                                !appl_27 <- appl_26 `pseq` klCons (Types.Atom (Types.Str "v")) appl_26
-                                !appl_28 <- appl_27 `pseq` klCons (Types.Atom (Types.Str "u")) appl_27
-                                !appl_29 <- appl_28 `pseq` klCons (Types.Atom (Types.Str "t")) appl_28
-                                !appl_30 <- appl_29 `pseq` klCons (Types.Atom (Types.Str "s")) appl_29
-                                !appl_31 <- appl_30 `pseq` klCons (Types.Atom (Types.Str "r")) appl_30
-                                !appl_32 <- appl_31 `pseq` klCons (Types.Atom (Types.Str "q")) appl_31
-                                !appl_33 <- appl_32 `pseq` klCons (Types.Atom (Types.Str "p")) appl_32
-                                !appl_34 <- appl_33 `pseq` klCons (Types.Atom (Types.Str "o")) appl_33
-                                !appl_35 <- appl_34 `pseq` klCons (Types.Atom (Types.Str "n")) appl_34
-                                !appl_36 <- appl_35 `pseq` klCons (Types.Atom (Types.Str "m")) appl_35
-                                !appl_37 <- appl_36 `pseq` klCons (Types.Atom (Types.Str "l")) appl_36
-                                !appl_38 <- appl_37 `pseq` klCons (Types.Atom (Types.Str "k")) appl_37
-                                !appl_39 <- appl_38 `pseq` klCons (Types.Atom (Types.Str "j")) appl_38
-                                !appl_40 <- appl_39 `pseq` klCons (Types.Atom (Types.Str "i")) appl_39
-                                !appl_41 <- appl_40 `pseq` klCons (Types.Atom (Types.Str "h")) appl_40
-                                !appl_42 <- appl_41 `pseq` klCons (Types.Atom (Types.Str "g")) appl_41
-                                !appl_43 <- appl_42 `pseq` klCons (Types.Atom (Types.Str "f")) appl_42
-                                !appl_44 <- appl_43 `pseq` klCons (Types.Atom (Types.Str "e")) appl_43
-                                !appl_45 <- appl_44 `pseq` klCons (Types.Atom (Types.Str "d")) appl_44
-                                !appl_46 <- appl_45 `pseq` klCons (Types.Atom (Types.Str "c")) appl_45
-                                !appl_47 <- appl_46 `pseq` klCons (Types.Atom (Types.Str "b")) appl_46
-                                !appl_48 <- appl_47 `pseq` klCons (Types.Atom (Types.Str "a")) appl_47
-                                !appl_49 <- appl_48 `pseq` klCons (Types.Atom (Types.Str "Z")) appl_48
-                                !appl_50 <- appl_49 `pseq` klCons (Types.Atom (Types.Str "Y")) appl_49
-                                !appl_51 <- appl_50 `pseq` klCons (Types.Atom (Types.Str "X")) appl_50
-                                !appl_52 <- appl_51 `pseq` klCons (Types.Atom (Types.Str "W")) appl_51
-                                !appl_53 <- appl_52 `pseq` klCons (Types.Atom (Types.Str "V")) appl_52
-                                !appl_54 <- appl_53 `pseq` klCons (Types.Atom (Types.Str "U")) appl_53
-                                !appl_55 <- appl_54 `pseq` klCons (Types.Atom (Types.Str "T")) appl_54
-                                !appl_56 <- appl_55 `pseq` klCons (Types.Atom (Types.Str "S")) appl_55
-                                !appl_57 <- appl_56 `pseq` klCons (Types.Atom (Types.Str "R")) appl_56
-                                !appl_58 <- appl_57 `pseq` klCons (Types.Atom (Types.Str "Q")) appl_57
-                                !appl_59 <- appl_58 `pseq` klCons (Types.Atom (Types.Str "P")) appl_58
-                                !appl_60 <- appl_59 `pseq` klCons (Types.Atom (Types.Str "O")) appl_59
-                                !appl_61 <- appl_60 `pseq` klCons (Types.Atom (Types.Str "N")) appl_60
-                                !appl_62 <- appl_61 `pseq` klCons (Types.Atom (Types.Str "M")) appl_61
-                                !appl_63 <- appl_62 `pseq` klCons (Types.Atom (Types.Str "L")) appl_62
-                                !appl_64 <- appl_63 `pseq` klCons (Types.Atom (Types.Str "K")) appl_63
-                                !appl_65 <- appl_64 `pseq` klCons (Types.Atom (Types.Str "J")) appl_64
-                                !appl_66 <- appl_65 `pseq` klCons (Types.Atom (Types.Str "I")) appl_65
-                                !appl_67 <- appl_66 `pseq` klCons (Types.Atom (Types.Str "H")) appl_66
-                                !appl_68 <- appl_67 `pseq` klCons (Types.Atom (Types.Str "G")) appl_67
-                                !appl_69 <- appl_68 `pseq` klCons (Types.Atom (Types.Str "F")) appl_68
-                                !appl_70 <- appl_69 `pseq` klCons (Types.Atom (Types.Str "E")) appl_69
-                                !appl_71 <- appl_70 `pseq` klCons (Types.Atom (Types.Str "D")) appl_70
-                                !appl_72 <- appl_71 `pseq` klCons (Types.Atom (Types.Str "C")) appl_71
-                                !appl_73 <- appl_72 `pseq` klCons (Types.Atom (Types.Str "B")) appl_72
-                                !appl_74 <- appl_73 `pseq` klCons (Types.Atom (Types.Str "A")) appl_73
-                                kl_V2695 `pseq` (appl_74 `pseq` kl_elementP kl_V2695 appl_74)
-
-kl_shen_alphanumsP :: Types.KLValue ->
-                      Types.KLContext Types.Env Types.KLValue
-kl_shen_alphanumsP (!kl_V2697) = do let pat_cond_0 = do return (Atom (B True))
-                                        pat_cond_1 = do !kl_if_2 <- kl_V2697 `pseq` kl_shen_PlusstringP kl_V2697
-                                                        case kl_if_2 of
-                                                            Atom (B (True)) -> do !appl_3 <- kl_V2697 `pseq` pos kl_V2697 (Types.Atom (Types.N (Types.KI 0)))
-                                                                                  !kl_if_4 <- appl_3 `pseq` kl_shen_alphanumP appl_3
-                                                                                  case kl_if_4 of
-                                                                                      Atom (B (True)) -> do !appl_5 <- kl_V2697 `pseq` tlstr kl_V2697
-                                                                                                            !kl_if_6 <- appl_5 `pseq` kl_shen_alphanumsP appl_5
-                                                                                                            case kl_if_6 of
-                                                                                                                Atom (B (True)) -> do return (Atom (B True))
-                                                                                                                Atom (B (False)) -> do do return (Atom (B False))
-                                                                                                                _ -> throwError "if: expected boolean"
-                                                                                      Atom (B (False)) -> do do return (Atom (B False))
-                                                                                      _ -> throwError "if: expected boolean"
-                                                            Atom (B (False)) -> do do let !aw_7 = Types.Atom (Types.UnboundSym "shen.f_error")
-                                                                                      applyWrapper aw_7 [ApplC (wrapNamed "shen.alphanums?" kl_shen_alphanumsP)]
-                                                            _ -> throwError "if: expected boolean"
-                                     in case kl_V2697 of
-                                            kl_V2697@(Atom (Str "")) -> pat_cond_0
-                                            _ -> pat_cond_1
-
-kl_shen_alphanumP :: Types.KLValue ->
-                     Types.KLContext Types.Env Types.KLValue
-kl_shen_alphanumP (!kl_V2699) = do !kl_if_0 <- kl_V2699 `pseq` kl_shen_alphaP kl_V2699
-                                   case kl_if_0 of
-                                       Atom (B (True)) -> do return (Atom (B True))
-                                       Atom (B (False)) -> do do !kl_if_1 <- kl_V2699 `pseq` kl_shen_digitP kl_V2699
-                                                                 case kl_if_1 of
-                                                                     Atom (B (True)) -> do return (Atom (B True))
-                                                                     Atom (B (False)) -> do do return (Atom (B False))
-                                                                     _ -> throwError "if: expected boolean"
-                                       _ -> throwError "if: expected boolean"
-
-kl_shen_digitP :: Types.KLValue ->
-                  Types.KLContext Types.Env Types.KLValue
-kl_shen_digitP (!kl_V2701) = do !appl_0 <- klCons (Types.Atom (Types.Str "0")) (Types.Atom Types.Nil)
-                                !appl_1 <- appl_0 `pseq` klCons (Types.Atom (Types.Str "9")) appl_0
-                                !appl_2 <- appl_1 `pseq` klCons (Types.Atom (Types.Str "8")) appl_1
-                                !appl_3 <- appl_2 `pseq` klCons (Types.Atom (Types.Str "7")) appl_2
-                                !appl_4 <- appl_3 `pseq` klCons (Types.Atom (Types.Str "6")) appl_3
-                                !appl_5 <- appl_4 `pseq` klCons (Types.Atom (Types.Str "5")) appl_4
-                                !appl_6 <- appl_5 `pseq` klCons (Types.Atom (Types.Str "4")) appl_5
-                                !appl_7 <- appl_6 `pseq` klCons (Types.Atom (Types.Str "3")) appl_6
-                                !appl_8 <- appl_7 `pseq` klCons (Types.Atom (Types.Str "2")) appl_7
-                                !appl_9 <- appl_8 `pseq` klCons (Types.Atom (Types.Str "1")) appl_8
-                                kl_V2701 `pseq` (appl_9 `pseq` kl_elementP kl_V2701 appl_9)
-
-kl_variableP :: Types.KLValue ->
-                Types.KLContext Types.Env Types.KLValue
-kl_variableP (!kl_V2703) = do !kl_if_0 <- kl_V2703 `pseq` kl_booleanP kl_V2703
-                              !kl_if_1 <- case kl_if_0 of
-                                              Atom (B (True)) -> do return (Atom (B True))
-                                              Atom (B (False)) -> do do !kl_if_2 <- kl_V2703 `pseq` numberP kl_V2703
-                                                                        !kl_if_3 <- case kl_if_2 of
-                                                                                        Atom (B (True)) -> do return (Atom (B True))
-                                                                                        Atom (B (False)) -> do do !kl_if_4 <- kl_V2703 `pseq` stringP kl_V2703
-                                                                                                                  case kl_if_4 of
-                                                                                                                      Atom (B (True)) -> do return (Atom (B True))
-                                                                                                                      Atom (B (False)) -> do do return (Atom (B False))
-                                                                                                                      _ -> throwError "if: expected boolean"
-                                                                                        _ -> throwError "if: expected boolean"
-                                                                        case kl_if_3 of
-                                                                            Atom (B (True)) -> do return (Atom (B True))
-                                                                            Atom (B (False)) -> do do return (Atom (B False))
-                                                                            _ -> throwError "if: expected boolean"
-                                              _ -> throwError "if: expected boolean"
-                              case kl_if_1 of
-                                  Atom (B (True)) -> do return (Atom (B False))
-                                  Atom (B (False)) -> do do (do let !appl_5 = ApplC (Func "lambda" (Context (\(!kl_String) -> do kl_String `pseq` kl_shen_analyse_variableP kl_String)))
-                                                                !appl_6 <- kl_V2703 `pseq` str kl_V2703
-                                                                appl_6 `pseq` applyWrapper appl_5 [appl_6]) `catchError` (\(!kl_E) -> do return (Atom (B False)))
-                                  _ -> throwError "if: expected boolean"
-
-kl_shen_analyse_variableP :: Types.KLValue ->
-                             Types.KLContext Types.Env Types.KLValue
-kl_shen_analyse_variableP (!kl_V2705) = do !kl_if_0 <- kl_V2705 `pseq` kl_shen_PlusstringP kl_V2705
-                                           case kl_if_0 of
-                                               Atom (B (True)) -> do !appl_1 <- kl_V2705 `pseq` pos kl_V2705 (Types.Atom (Types.N (Types.KI 0)))
-                                                                     !kl_if_2 <- appl_1 `pseq` kl_shen_uppercaseP appl_1
-                                                                     case kl_if_2 of
-                                                                         Atom (B (True)) -> do !appl_3 <- kl_V2705 `pseq` tlstr kl_V2705
-                                                                                               !kl_if_4 <- appl_3 `pseq` kl_shen_alphanumsP appl_3
-                                                                                               case kl_if_4 of
-                                                                                                   Atom (B (True)) -> do return (Atom (B True))
-                                                                                                   Atom (B (False)) -> do do return (Atom (B False))
-                                                                                                   _ -> throwError "if: expected boolean"
-                                                                         Atom (B (False)) -> do do return (Atom (B False))
-                                                                         _ -> throwError "if: expected boolean"
-                                               Atom (B (False)) -> do do let !aw_5 = Types.Atom (Types.UnboundSym "shen.f_error")
-                                                                         applyWrapper aw_5 [ApplC (wrapNamed "shen.analyse-variable?" kl_shen_analyse_variableP)]
-                                               _ -> throwError "if: expected boolean"
-
-kl_shen_uppercaseP :: Types.KLValue ->
-                      Types.KLContext Types.Env Types.KLValue
-kl_shen_uppercaseP (!kl_V2707) = do !appl_0 <- klCons (Types.Atom (Types.Str "Z")) (Types.Atom Types.Nil)
-                                    !appl_1 <- appl_0 `pseq` klCons (Types.Atom (Types.Str "Y")) appl_0
-                                    !appl_2 <- appl_1 `pseq` klCons (Types.Atom (Types.Str "X")) appl_1
-                                    !appl_3 <- appl_2 `pseq` klCons (Types.Atom (Types.Str "W")) appl_2
-                                    !appl_4 <- appl_3 `pseq` klCons (Types.Atom (Types.Str "V")) appl_3
-                                    !appl_5 <- appl_4 `pseq` klCons (Types.Atom (Types.Str "U")) appl_4
-                                    !appl_6 <- appl_5 `pseq` klCons (Types.Atom (Types.Str "T")) appl_5
-                                    !appl_7 <- appl_6 `pseq` klCons (Types.Atom (Types.Str "S")) appl_6
-                                    !appl_8 <- appl_7 `pseq` klCons (Types.Atom (Types.Str "R")) appl_7
-                                    !appl_9 <- appl_8 `pseq` klCons (Types.Atom (Types.Str "Q")) appl_8
-                                    !appl_10 <- appl_9 `pseq` klCons (Types.Atom (Types.Str "P")) appl_9
-                                    !appl_11 <- appl_10 `pseq` klCons (Types.Atom (Types.Str "O")) appl_10
-                                    !appl_12 <- appl_11 `pseq` klCons (Types.Atom (Types.Str "N")) appl_11
-                                    !appl_13 <- appl_12 `pseq` klCons (Types.Atom (Types.Str "M")) appl_12
-                                    !appl_14 <- appl_13 `pseq` klCons (Types.Atom (Types.Str "L")) appl_13
-                                    !appl_15 <- appl_14 `pseq` klCons (Types.Atom (Types.Str "K")) appl_14
-                                    !appl_16 <- appl_15 `pseq` klCons (Types.Atom (Types.Str "J")) appl_15
-                                    !appl_17 <- appl_16 `pseq` klCons (Types.Atom (Types.Str "I")) appl_16
-                                    !appl_18 <- appl_17 `pseq` klCons (Types.Atom (Types.Str "H")) appl_17
-                                    !appl_19 <- appl_18 `pseq` klCons (Types.Atom (Types.Str "G")) appl_18
-                                    !appl_20 <- appl_19 `pseq` klCons (Types.Atom (Types.Str "F")) appl_19
-                                    !appl_21 <- appl_20 `pseq` klCons (Types.Atom (Types.Str "E")) appl_20
-                                    !appl_22 <- appl_21 `pseq` klCons (Types.Atom (Types.Str "D")) appl_21
-                                    !appl_23 <- appl_22 `pseq` klCons (Types.Atom (Types.Str "C")) appl_22
-                                    !appl_24 <- appl_23 `pseq` klCons (Types.Atom (Types.Str "B")) appl_23
-                                    !appl_25 <- appl_24 `pseq` klCons (Types.Atom (Types.Str "A")) appl_24
-                                    kl_V2707 `pseq` (appl_25 `pseq` kl_elementP kl_V2707 appl_25)
-
-kl_gensym :: Types.KLValue ->
-             Types.KLContext Types.Env Types.KLValue
-kl_gensym (!kl_V2709) = do !appl_0 <- value (Types.Atom (Types.UnboundSym "shen.*gensym*"))
-                           !appl_1 <- appl_0 `pseq` add (Types.Atom (Types.N (Types.KI 1))) appl_0
-                           !appl_2 <- appl_1 `pseq` klSet (Types.Atom (Types.UnboundSym "shen.*gensym*")) appl_1
-                           kl_V2709 `pseq` (appl_2 `pseq` kl_concat kl_V2709 appl_2)
-
-kl_concat :: Types.KLValue ->
-             Types.KLValue -> Types.KLContext Types.Env Types.KLValue
-kl_concat (!kl_V2712) (!kl_V2713) = do !appl_0 <- kl_V2712 `pseq` str kl_V2712
-                                       !appl_1 <- kl_V2713 `pseq` str kl_V2713
-                                       !appl_2 <- appl_0 `pseq` (appl_1 `pseq` cn appl_0 appl_1)
-                                       appl_2 `pseq` intern appl_2
-
-kl_Atp :: Types.KLValue ->
-          Types.KLValue -> Types.KLContext Types.Env Types.KLValue
-kl_Atp (!kl_V2716) (!kl_V2717) = do let !appl_0 = ApplC (Func "lambda" (Context (\(!kl_Vector) -> do let !appl_1 = ApplC (Func "lambda" (Context (\(!kl_Tag) -> do let !appl_2 = ApplC (Func "lambda" (Context (\(!kl_Fst) -> do let !appl_3 = ApplC (Func "lambda" (Context (\(!kl_Snd) -> do return kl_Vector)))
-                                                                                                                                                                                                                                 !appl_4 <- kl_Vector `pseq` (kl_V2717 `pseq` addressTo kl_Vector (Types.Atom (Types.N (Types.KI 2))) kl_V2717)
-                                                                                                                                                                                                                                 appl_4 `pseq` applyWrapper appl_3 [appl_4])))
-                                                                                                                                                                   !appl_5 <- kl_Vector `pseq` (kl_V2716 `pseq` addressTo kl_Vector (Types.Atom (Types.N (Types.KI 1))) kl_V2716)
-                                                                                                                                                                   appl_5 `pseq` applyWrapper appl_2 [appl_5])))
-                                                                                                     !appl_6 <- kl_Vector `pseq` addressTo kl_Vector (Types.Atom (Types.N (Types.KI 0))) (Types.Atom (Types.UnboundSym "shen.tuple"))
-                                                                                                     appl_6 `pseq` applyWrapper appl_1 [appl_6])))
-                                    !appl_7 <- absvector (Types.Atom (Types.N (Types.KI 3)))
-                                    appl_7 `pseq` applyWrapper appl_0 [appl_7]
-
-kl_fst :: Types.KLValue -> Types.KLContext Types.Env Types.KLValue
-kl_fst (!kl_V2719) = do kl_V2719 `pseq` addressFrom kl_V2719 (Types.Atom (Types.N (Types.KI 1)))
-
-kl_snd :: Types.KLValue -> Types.KLContext Types.Env Types.KLValue
-kl_snd (!kl_V2721) = do kl_V2721 `pseq` addressFrom kl_V2721 (Types.Atom (Types.N (Types.KI 2)))
-
-kl_tupleP :: Types.KLValue ->
-             Types.KLContext Types.Env Types.KLValue
-kl_tupleP (!kl_V2723) = do (do !kl_if_0 <- kl_V2723 `pseq` absvectorP kl_V2723
-                               case kl_if_0 of
-                                   Atom (B (True)) -> do !appl_1 <- kl_V2723 `pseq` addressFrom kl_V2723 (Types.Atom (Types.N (Types.KI 0)))
-                                                         !kl_if_2 <- appl_1 `pseq` eq (Types.Atom (Types.UnboundSym "shen.tuple")) appl_1
-                                                         case kl_if_2 of
-                                                             Atom (B (True)) -> do return (Atom (B True))
-                                                             Atom (B (False)) -> do do return (Atom (B False))
-                                                             _ -> throwError "if: expected boolean"
-                                   Atom (B (False)) -> do do return (Atom (B False))
-                                   _ -> throwError "if: expected boolean") `catchError` (\(!kl_E) -> do return (Atom (B False)))
-
-kl_append :: Types.KLValue ->
-             Types.KLValue -> Types.KLContext Types.Env Types.KLValue
-kl_append (!kl_V2726) (!kl_V2727) = do let pat_cond_0 = do return kl_V2727
-                                           pat_cond_1 kl_V2726 kl_V2726h kl_V2726t = do !appl_2 <- kl_V2726t `pseq` (kl_V2727 `pseq` kl_append kl_V2726t kl_V2727)
-                                                                                        kl_V2726h `pseq` (appl_2 `pseq` klCons kl_V2726h appl_2)
-                                           pat_cond_3 = do do let !aw_4 = Types.Atom (Types.UnboundSym "shen.f_error")
-                                                              applyWrapper aw_4 [ApplC (wrapNamed "append" kl_append)]
-                                        in case kl_V2726 of
-                                               kl_V2726@(Atom (Nil)) -> pat_cond_0
-                                               !(kl_V2726@(Cons (!kl_V2726h)
-                                                                (!kl_V2726t))) -> pat_cond_1 kl_V2726 kl_V2726h kl_V2726t
-                                               _ -> pat_cond_3
-
-kl_Atv :: Types.KLValue ->
-          Types.KLValue -> Types.KLContext Types.Env Types.KLValue
-kl_Atv (!kl_V2730) (!kl_V2731) = do let !appl_0 = ApplC (Func "lambda" (Context (\(!kl_Limit) -> do let !appl_1 = ApplC (Func "lambda" (Context (\(!kl_NewVector) -> do let !appl_2 = ApplC (Func "lambda" (Context (\(!kl_XPlusNewVector) -> do let pat_cond_3 = do return kl_XPlusNewVector
-                                                                                                                                                                                                                                                     pat_cond_4 = do do kl_V2731 `pseq` (kl_Limit `pseq` (kl_XPlusNewVector `pseq` kl_shen_Atv_help kl_V2731 (Types.Atom (Types.N (Types.KI 1))) kl_Limit kl_XPlusNewVector))
-                                                                                                                                                                                                                                                  in case kl_Limit of
-                                                                                                                                                                                                                                                         kl_Limit@(Atom (N (KI 0))) -> pat_cond_3
-                                                                                                                                                                                                                                                         _ -> pat_cond_4)))
-                                                                                                                                                                        !appl_5 <- kl_NewVector `pseq` (kl_V2730 `pseq` kl_vector_RB kl_NewVector (Types.Atom (Types.N (Types.KI 1))) kl_V2730)
-                                                                                                                                                                        appl_5 `pseq` applyWrapper appl_2 [appl_5])))
-                                                                                                    !appl_6 <- kl_Limit `pseq` add kl_Limit (Types.Atom (Types.N (Types.KI 1)))
-                                                                                                    !appl_7 <- appl_6 `pseq` kl_vector appl_6
-                                                                                                    appl_7 `pseq` applyWrapper appl_1 [appl_7])))
-                                    !appl_8 <- kl_V2731 `pseq` kl_limit kl_V2731
-                                    appl_8 `pseq` applyWrapper appl_0 [appl_8]
-
-kl_shen_Atv_help :: Types.KLValue ->
-                    Types.KLValue ->
-                    Types.KLValue ->
-                    Types.KLValue -> Types.KLContext Types.Env Types.KLValue
-kl_shen_Atv_help (!kl_V2737) (!kl_V2738) (!kl_V2739) (!kl_V2740) = do !kl_if_0 <- kl_V2739 `pseq` (kl_V2738 `pseq` eq kl_V2739 kl_V2738)
-                                                                      case kl_if_0 of
-                                                                          Atom (B (True)) -> do !appl_1 <- kl_V2739 `pseq` add kl_V2739 (Types.Atom (Types.N (Types.KI 1)))
-                                                                                                kl_V2737 `pseq` (kl_V2740 `pseq` (kl_V2739 `pseq` (appl_1 `pseq` kl_shen_copyfromvector kl_V2737 kl_V2740 kl_V2739 appl_1)))
-                                                                          Atom (B (False)) -> do do !appl_2 <- kl_V2738 `pseq` add kl_V2738 (Types.Atom (Types.N (Types.KI 1)))
-                                                                                                    !appl_3 <- kl_V2738 `pseq` add kl_V2738 (Types.Atom (Types.N (Types.KI 1)))
-                                                                                                    !appl_4 <- kl_V2737 `pseq` (kl_V2740 `pseq` (kl_V2738 `pseq` (appl_3 `pseq` kl_shen_copyfromvector kl_V2737 kl_V2740 kl_V2738 appl_3)))
-                                                                                                    kl_V2737 `pseq` (appl_2 `pseq` (kl_V2739 `pseq` (appl_4 `pseq` kl_shen_Atv_help kl_V2737 appl_2 kl_V2739 appl_4)))
-                                                                          _ -> throwError "if: expected boolean"
-
-kl_shen_copyfromvector :: Types.KLValue ->
-                          Types.KLValue ->
-                          Types.KLValue ->
-                          Types.KLValue -> Types.KLContext Types.Env Types.KLValue
-kl_shen_copyfromvector (!kl_V2745) (!kl_V2746) (!kl_V2747) (!kl_V2748) = do (do !appl_0 <- kl_V2745 `pseq` (kl_V2747 `pseq` kl_LB_vector kl_V2745 kl_V2747)
-                                                                                kl_V2746 `pseq` (kl_V2748 `pseq` (appl_0 `pseq` kl_vector_RB kl_V2746 kl_V2748 appl_0))) `catchError` (\(!kl_E) -> do return kl_V2746)
-
-kl_hdv :: Types.KLValue -> Types.KLContext Types.Env Types.KLValue
-kl_hdv (!kl_V2750) = do (do kl_V2750 `pseq` kl_LB_vector kl_V2750 (Types.Atom (Types.N (Types.KI 1)))) `catchError` (\(!kl_E) -> do let !aw_0 = Types.Atom (Types.UnboundSym "shen.app")
-                                                                                                                                    !appl_1 <- kl_V2750 `pseq` applyWrapper aw_0 [kl_V2750,
-                                                                                                                                                                                  Types.Atom (Types.Str "\n"),
-                                                                                                                                                                                  Types.Atom (Types.UnboundSym "shen.s")]
-                                                                                                                                    !appl_2 <- appl_1 `pseq` cn (Types.Atom (Types.Str "hdv needs a non-empty vector as an argument; not ")) appl_1
-                                                                                                                                    appl_2 `pseq` simpleError appl_2)
-
-kl_tlv :: Types.KLValue -> Types.KLContext Types.Env Types.KLValue
-kl_tlv (!kl_V2752) = do let !appl_0 = ApplC (Func "lambda" (Context (\(!kl_Limit) -> do let pat_cond_1 = do simpleError (Types.Atom (Types.Str "cannot take the tail of the empty vector\n"))
-                                                                                            pat_cond_2 = do do let pat_cond_3 = do kl_vector (Types.Atom (Types.N (Types.KI 0)))
-                                                                                                                   pat_cond_4 = do do let !appl_5 = ApplC (Func "lambda" (Context (\(!kl_NewVector) -> do !appl_6 <- kl_Limit `pseq` Primitives.subtract kl_Limit (Types.Atom (Types.N (Types.KI 1)))
-                                                                                                                                                                                                          !appl_7 <- appl_6 `pseq` kl_vector appl_6
-                                                                                                                                                                                                          kl_V2752 `pseq` (kl_Limit `pseq` (appl_7 `pseq` kl_shen_tlv_help kl_V2752 (Types.Atom (Types.N (Types.KI 2))) kl_Limit appl_7)))))
-                                                                                                                                      !appl_8 <- kl_Limit `pseq` Primitives.subtract kl_Limit (Types.Atom (Types.N (Types.KI 1)))
-                                                                                                                                      !appl_9 <- appl_8 `pseq` kl_vector appl_8
-                                                                                                                                      appl_9 `pseq` applyWrapper appl_5 [appl_9]
-                                                                                                                in case kl_Limit of
-                                                                                                                       kl_Limit@(Atom (N (KI 1))) -> pat_cond_3
-                                                                                                                       _ -> pat_cond_4
-                                                                                         in case kl_Limit of
-                                                                                                kl_Limit@(Atom (N (KI 0))) -> pat_cond_1
-                                                                                                _ -> pat_cond_2)))
-                        !appl_10 <- kl_V2752 `pseq` kl_limit kl_V2752
-                        appl_10 `pseq` applyWrapper appl_0 [appl_10]
-
-kl_shen_tlv_help :: Types.KLValue ->
-                    Types.KLValue ->
-                    Types.KLValue ->
-                    Types.KLValue -> Types.KLContext Types.Env Types.KLValue
-kl_shen_tlv_help (!kl_V2758) (!kl_V2759) (!kl_V2760) (!kl_V2761) = do !kl_if_0 <- kl_V2760 `pseq` (kl_V2759 `pseq` eq kl_V2760 kl_V2759)
-                                                                      case kl_if_0 of
-                                                                          Atom (B (True)) -> do !appl_1 <- kl_V2760 `pseq` Primitives.subtract kl_V2760 (Types.Atom (Types.N (Types.KI 1)))
-                                                                                                kl_V2758 `pseq` (kl_V2761 `pseq` (kl_V2760 `pseq` (appl_1 `pseq` kl_shen_copyfromvector kl_V2758 kl_V2761 kl_V2760 appl_1)))
-                                                                          Atom (B (False)) -> do do !appl_2 <- kl_V2759 `pseq` add kl_V2759 (Types.Atom (Types.N (Types.KI 1)))
-                                                                                                    !appl_3 <- kl_V2759 `pseq` Primitives.subtract kl_V2759 (Types.Atom (Types.N (Types.KI 1)))
-                                                                                                    !appl_4 <- kl_V2758 `pseq` (kl_V2761 `pseq` (kl_V2759 `pseq` (appl_3 `pseq` kl_shen_copyfromvector kl_V2758 kl_V2761 kl_V2759 appl_3)))
-                                                                                                    kl_V2758 `pseq` (appl_2 `pseq` (kl_V2760 `pseq` (appl_4 `pseq` kl_shen_tlv_help kl_V2758 appl_2 kl_V2760 appl_4)))
-                                                                          _ -> throwError "if: expected boolean"
-
-kl_assoc :: Types.KLValue ->
-            Types.KLValue -> Types.KLContext Types.Env Types.KLValue
-kl_assoc (!kl_V2773) (!kl_V2774) = do let pat_cond_0 = do return (Types.Atom Types.Nil)
-                                          pat_cond_1 kl_V2774 kl_V2774h kl_V2774hh kl_V2774ht kl_V2774t = do return kl_V2774h
-                                          pat_cond_2 kl_V2774 kl_V2774h kl_V2774t = do kl_V2773 `pseq` (kl_V2774t `pseq` kl_assoc kl_V2773 kl_V2774t)
-                                          pat_cond_3 = do do let !aw_4 = Types.Atom (Types.UnboundSym "shen.f_error")
-                                                             applyWrapper aw_4 [ApplC (wrapNamed "assoc" kl_assoc)]
-                                       in case kl_V2774 of
-                                              kl_V2774@(Atom (Nil)) -> pat_cond_0
-                                              !(kl_V2774@(Cons (!(kl_V2774h@(Cons (!kl_V2774hh)
-                                                                                  (!kl_V2774ht))))
-                                                               (!kl_V2774t))) | eqCore kl_V2774hh kl_V2773 -> pat_cond_1 kl_V2774 kl_V2774h kl_V2774hh kl_V2774ht kl_V2774t
-                                              !(kl_V2774@(Cons (!kl_V2774h)
-                                                               (!kl_V2774t))) -> pat_cond_2 kl_V2774 kl_V2774h kl_V2774t
-                                              _ -> pat_cond_3
-
-kl_booleanP :: Types.KLValue ->
-               Types.KLContext Types.Env Types.KLValue
-kl_booleanP (!kl_V2780) = do let pat_cond_0 = do return (Atom (B True))
-                                 pat_cond_1 = do return (Atom (B True))
-                                 pat_cond_2 = do do return (Atom (B False))
-                              in case kl_V2780 of
-                                     kl_V2780@(Atom (UnboundSym "true")) -> pat_cond_0
-                                     kl_V2780@(Atom (B (True))) -> pat_cond_0
-                                     kl_V2780@(Atom (UnboundSym "false")) -> pat_cond_1
-                                     kl_V2780@(Atom (B (False))) -> pat_cond_1
-                                     _ -> pat_cond_2
-
-kl_nl :: Types.KLValue -> Types.KLContext Types.Env Types.KLValue
-kl_nl (!kl_V2782) = do let pat_cond_0 = do return (Types.Atom (Types.N (Types.KI 0)))
-                           pat_cond_1 = do do !appl_2 <- kl_stoutput
-                                              let !aw_3 = Types.Atom (Types.UnboundSym "shen.prhush")
-                                              !appl_4 <- appl_2 `pseq` applyWrapper aw_3 [Types.Atom (Types.Str "\n"),
-                                                                                          appl_2]
-                                              !appl_5 <- kl_V2782 `pseq` Primitives.subtract kl_V2782 (Types.Atom (Types.N (Types.KI 1)))
-                                              !appl_6 <- appl_5 `pseq` kl_nl appl_5
-                                              appl_4 `pseq` (appl_6 `pseq` kl_do appl_4 appl_6)
-                        in case kl_V2782 of
-                               kl_V2782@(Atom (N (KI 0))) -> pat_cond_0
-                               _ -> pat_cond_1
-
-kl_difference :: Types.KLValue ->
-                 Types.KLValue -> Types.KLContext Types.Env Types.KLValue
-kl_difference (!kl_V2787) (!kl_V2788) = do let pat_cond_0 = do return (Types.Atom Types.Nil)
-                                               pat_cond_1 kl_V2787 kl_V2787h kl_V2787t = do !kl_if_2 <- kl_V2787h `pseq` (kl_V2788 `pseq` kl_elementP kl_V2787h kl_V2788)
-                                                                                            case kl_if_2 of
-                                                                                                Atom (B (True)) -> do kl_V2787t `pseq` (kl_V2788 `pseq` kl_difference kl_V2787t kl_V2788)
-                                                                                                Atom (B (False)) -> do do !appl_3 <- kl_V2787t `pseq` (kl_V2788 `pseq` kl_difference kl_V2787t kl_V2788)
-                                                                                                                          kl_V2787h `pseq` (appl_3 `pseq` klCons kl_V2787h appl_3)
-                                                                                                _ -> throwError "if: expected boolean"
-                                               pat_cond_4 = do do let !aw_5 = Types.Atom (Types.UnboundSym "shen.f_error")
-                                                                  applyWrapper aw_5 [ApplC (wrapNamed "difference" kl_difference)]
-                                            in case kl_V2787 of
-                                                   kl_V2787@(Atom (Nil)) -> pat_cond_0
-                                                   !(kl_V2787@(Cons (!kl_V2787h)
-                                                                    (!kl_V2787t))) -> pat_cond_1 kl_V2787 kl_V2787h kl_V2787t
-                                                   _ -> pat_cond_4
-
-kl_do :: Types.KLValue ->
-         Types.KLValue -> Types.KLContext Types.Env Types.KLValue
-kl_do (!kl_V2791) (!kl_V2792) = do return kl_V2792
-
-{-
-kl_elementP :: Types.KLValue ->
-               Types.KLValue -> Types.KLContext Types.Env Types.KLValue
-kl_elementP (!kl_V1594) (!kl_V1595) = do let !appl_0 = List []
-                                         !kl_if_1 <- appl_0 `pseq` (kl_V1595 `pseq` eq appl_0 kl_V1595)
-                                         klIf kl_if_1 (do return (Atom (B False))) (do !kl_if_2 <- kl_V1595 `pseq` consP kl_V1595
-                                                                                       !kl_if_3 <- klIf kl_if_2 (do !appl_4 <- kl_V1595 `pseq` hd kl_V1595
-                                                                                                                    appl_4 `pseq` (kl_V1594 `pseq` eq appl_4 kl_V1594)) (do return (Atom (B False)))
-                                                                                       klIf kl_if_3 (do return (Atom (B True))) (do !kl_if_5 <- kl_V1595 `pseq` consP kl_V1595
-                                                                                                                                    klIf kl_if_5 (do !appl_6 <- kl_V1595 `pseq` tl kl_V1595
-                                                                                                                                                     kl_V1594 `pseq` (appl_6 `pseq` kl_elementP kl_V1594 appl_6)) (do klIf (Atom (B True)) (do let !aw_7 = Types.Atom (Types.UnboundSym "shen.f_error")
-                                                                                                                                                                                                                                               applyWrapper aw_7 [ApplC (wrapNamed "element?" kl_elementP)]) (do return (List [])))))
--}
-
-kl_elementP :: Types.KLValue ->
-               Types.KLValue -> Types.KLContext Types.Env Types.KLValue
-kl_elementP !v (Atom Nil) = return (Atom (B False))
-kl_elementP !v (Cons h hs) = do
-  case eqCore h v of
-   True  -> return (Atom (B True))
-   False -> kl_elementP v hs
-kl_elementP _ _ = applyWrapper (Atom (UnboundSym "shen.f_error")) [ApplC (wrapNamed "element?" kl_elementP)]
-
-kl_emptyP :: Types.KLValue ->
-             Types.KLContext Types.Env Types.KLValue
-kl_emptyP (!kl_V2811) = do let pat_cond_0 = do return (Atom (B True))
-                               pat_cond_1 = do do return (Atom (B False))
-                            in case kl_V2811 of
-                                   kl_V2811@(Atom (Nil)) -> pat_cond_0
-                                   _ -> pat_cond_1
-
-kl_fix :: Types.KLValue ->
-          Types.KLValue -> Types.KLContext Types.Env Types.KLValue
-kl_fix (!kl_V2814) (!kl_V2815) = do !appl_0 <- kl_V2815 `pseq` applyWrapper kl_V2814 [kl_V2815]
-                                    kl_V2814 `pseq` (kl_V2815 `pseq` (appl_0 `pseq` kl_shen_fix_help kl_V2814 kl_V2815 appl_0))
-
-kl_shen_fix_help :: Types.KLValue ->
-                    Types.KLValue ->
-                    Types.KLValue -> Types.KLContext Types.Env Types.KLValue
-kl_shen_fix_help (!kl_V2826) (!kl_V2827) (!kl_V2828) = do !kl_if_0 <- kl_V2828 `pseq` (kl_V2827 `pseq` eq kl_V2828 kl_V2827)
-                                                          case kl_if_0 of
-                                                              Atom (B (True)) -> do return kl_V2828
-                                                              Atom (B (False)) -> do do !appl_1 <- kl_V2828 `pseq` applyWrapper kl_V2826 [kl_V2828]
-                                                                                        kl_V2826 `pseq` (kl_V2828 `pseq` (appl_1 `pseq` kl_shen_fix_help kl_V2826 kl_V2828 appl_1))
-                                                              _ -> throwError "if: expected boolean"
-
-kl_put :: Types.KLValue ->
-          Types.KLValue ->
-          Types.KLValue ->
-          Types.KLValue -> Types.KLContext Types.Env Types.KLValue
-kl_put (!kl_V2833) (!kl_V2834) (!kl_V2835) (!kl_V2836) = do let !appl_0 = ApplC (Func "lambda" (Context (\(!kl_N) -> do let !appl_1 = ApplC (Func "lambda" (Context (\(!kl_Entry) -> do let !appl_2 = ApplC (Func "lambda" (Context (\(!kl_Change) -> do return kl_V2835)))
-                                                                                                                                                                                        !appl_3 <- kl_V2833 `pseq` (kl_V2834 `pseq` (kl_V2835 `pseq` (kl_Entry `pseq` kl_shen_change_pointer_value kl_V2833 kl_V2834 kl_V2835 kl_Entry)))
-                                                                                                                                                                                        !appl_4 <- kl_V2836 `pseq` (kl_N `pseq` (appl_3 `pseq` kl_vector_RB kl_V2836 kl_N appl_3))
-                                                                                                                                                                                        appl_4 `pseq` applyWrapper appl_2 [appl_4])))
-                                                                                                                        !appl_5 <- (do kl_V2836 `pseq` (kl_N `pseq` kl_LB_vector kl_V2836 kl_N)) `catchError` (\(!kl_E) -> do return (Types.Atom Types.Nil))
-                                                                                                                        appl_5 `pseq` applyWrapper appl_1 [appl_5])))
-                                                            !appl_6 <- kl_V2836 `pseq` kl_limit kl_V2836
-                                                            !appl_7 <- kl_V2833 `pseq` (appl_6 `pseq` kl_hash kl_V2833 appl_6)
-                                                            appl_7 `pseq` applyWrapper appl_0 [appl_7]
-
-kl_unput :: Types.KLValue ->
-            Types.KLValue ->
-            Types.KLValue -> Types.KLContext Types.Env Types.KLValue
-kl_unput (!kl_V2840) (!kl_V2841) (!kl_V2842) = do let !appl_0 = ApplC (Func "lambda" (Context (\(!kl_N) -> do let !appl_1 = ApplC (Func "lambda" (Context (\(!kl_Entry) -> do let !appl_2 = ApplC (Func "lambda" (Context (\(!kl_Change) -> do return kl_V2840)))
-                                                                                                                                                                              !appl_3 <- kl_V2840 `pseq` (kl_V2841 `pseq` (kl_Entry `pseq` kl_shen_remove_pointer kl_V2840 kl_V2841 kl_Entry))
-                                                                                                                                                                              !appl_4 <- kl_V2842 `pseq` (kl_N `pseq` (appl_3 `pseq` kl_vector_RB kl_V2842 kl_N appl_3))
-                                                                                                                                                                              appl_4 `pseq` applyWrapper appl_2 [appl_4])))
-                                                                                                              !appl_5 <- (do kl_V2842 `pseq` (kl_N `pseq` kl_LB_vector kl_V2842 kl_N)) `catchError` (\(!kl_E) -> do return (Types.Atom Types.Nil))
-                                                                                                              appl_5 `pseq` applyWrapper appl_1 [appl_5])))
-                                                  !appl_6 <- kl_V2842 `pseq` kl_limit kl_V2842
-                                                  !appl_7 <- kl_V2840 `pseq` (appl_6 `pseq` kl_hash kl_V2840 appl_6)
-                                                  appl_7 `pseq` applyWrapper appl_0 [appl_7]
-
-kl_shen_remove_pointer :: Types.KLValue ->
-                          Types.KLValue ->
-                          Types.KLValue -> Types.KLContext Types.Env Types.KLValue
-kl_shen_remove_pointer (!kl_V2850) (!kl_V2851) (!kl_V2852) = do let pat_cond_0 = do return (Types.Atom Types.Nil)
-                                                                    pat_cond_1 kl_V2852 kl_V2852h kl_V2852hh kl_V2852hhh kl_V2852hht kl_V2852hhth kl_V2852ht kl_V2852t = do return kl_V2852t
-                                                                    pat_cond_2 kl_V2852 kl_V2852h kl_V2852t = do !appl_3 <- kl_V2850 `pseq` (kl_V2851 `pseq` (kl_V2852t `pseq` kl_shen_remove_pointer kl_V2850 kl_V2851 kl_V2852t))
-                                                                                                                 kl_V2852h `pseq` (appl_3 `pseq` klCons kl_V2852h appl_3)
-                                                                    pat_cond_4 = do do let !aw_5 = Types.Atom (Types.UnboundSym "shen.f_error")
-                                                                                       applyWrapper aw_5 [ApplC (wrapNamed "shen.remove-pointer" kl_shen_remove_pointer)]
-                                                                 in case kl_V2852 of
-                                                                        kl_V2852@(Atom (Nil)) -> pat_cond_0
-                                                                        !(kl_V2852@(Cons (!(kl_V2852h@(Cons (!(kl_V2852hh@(Cons (!kl_V2852hhh)
-                                                                                                                                (!(kl_V2852hht@(Cons (!kl_V2852hhth)
-                                                                                                                                                     (Atom (Nil))))))))
-                                                                                                            (!kl_V2852ht))))
-                                                                                         (!kl_V2852t))) | eqCore kl_V2852hhth kl_V2851 && eqCore kl_V2852hhh kl_V2850 -> pat_cond_1 kl_V2852 kl_V2852h kl_V2852hh kl_V2852hhh kl_V2852hht kl_V2852hhth kl_V2852ht kl_V2852t
-                                                                        !(kl_V2852@(Cons (!kl_V2852h)
-                                                                                         (!kl_V2852t))) -> pat_cond_2 kl_V2852 kl_V2852h kl_V2852t
-                                                                        _ -> pat_cond_4
-
-kl_shen_change_pointer_value :: Types.KLValue ->
-                                Types.KLValue ->
-                                Types.KLValue ->
-                                Types.KLValue -> Types.KLContext Types.Env Types.KLValue
-kl_shen_change_pointer_value (!kl_V2861) (!kl_V2862) (!kl_V2863) (!kl_V2864) = do let pat_cond_0 = do !appl_1 <- kl_V2862 `pseq` klCons kl_V2862 (Types.Atom Types.Nil)
-                                                                                                      !appl_2 <- kl_V2861 `pseq` (appl_1 `pseq` klCons kl_V2861 appl_1)
-                                                                                                      !appl_3 <- appl_2 `pseq` (kl_V2863 `pseq` klCons appl_2 kl_V2863)
-                                                                                                      appl_3 `pseq` klCons appl_3 (Types.Atom Types.Nil)
-                                                                                      pat_cond_4 kl_V2864 kl_V2864h kl_V2864hh kl_V2864hhh kl_V2864hht kl_V2864hhth kl_V2864ht kl_V2864t = do !appl_5 <- kl_V2864hh `pseq` (kl_V2863 `pseq` klCons kl_V2864hh kl_V2863)
-                                                                                                                                                                                              appl_5 `pseq` (kl_V2864t `pseq` klCons appl_5 kl_V2864t)
-                                                                                      pat_cond_6 kl_V2864 kl_V2864h kl_V2864t = do !appl_7 <- kl_V2861 `pseq` (kl_V2862 `pseq` (kl_V2863 `pseq` (kl_V2864t `pseq` kl_shen_change_pointer_value kl_V2861 kl_V2862 kl_V2863 kl_V2864t)))
-                                                                                                                                   kl_V2864h `pseq` (appl_7 `pseq` klCons kl_V2864h appl_7)
-                                                                                      pat_cond_8 = do do let !aw_9 = Types.Atom (Types.UnboundSym "shen.f_error")
-                                                                                                         applyWrapper aw_9 [ApplC (wrapNamed "shen.change-pointer-value" kl_shen_change_pointer_value)]
-                                                                                   in case kl_V2864 of
-                                                                                          kl_V2864@(Atom (Nil)) -> pat_cond_0
-                                                                                          !(kl_V2864@(Cons (!(kl_V2864h@(Cons (!(kl_V2864hh@(Cons (!kl_V2864hhh)
-                                                                                                                                                  (!(kl_V2864hht@(Cons (!kl_V2864hhth)
-                                                                                                                                                                       (Atom (Nil))))))))
-                                                                                                                              (!kl_V2864ht))))
-                                                                                                           (!kl_V2864t))) | eqCore kl_V2864hhth kl_V2862 && eqCore kl_V2864hhh kl_V2861 -> pat_cond_4 kl_V2864 kl_V2864h kl_V2864hh kl_V2864hhh kl_V2864hht kl_V2864hhth kl_V2864ht kl_V2864t
-                                                                                          !(kl_V2864@(Cons (!kl_V2864h)
-                                                                                                           (!kl_V2864t))) -> pat_cond_6 kl_V2864 kl_V2864h kl_V2864t
-                                                                                          _ -> pat_cond_8
-
-kl_get :: Types.KLValue ->
-          Types.KLValue ->
-          Types.KLValue -> Types.KLContext Types.Env Types.KLValue
-kl_get (!kl_V2868) (!kl_V2869) (!kl_V2870) = do let !appl_0 = ApplC (Func "lambda" (Context (\(!kl_N) -> do let !appl_1 = ApplC (Func "lambda" (Context (\(!kl_Entry) -> do let !appl_2 = ApplC (Func "lambda" (Context (\(!kl_Result) -> do !kl_if_3 <- kl_Result `pseq` kl_emptyP kl_Result
-                                                                                                                                                                                                                                             case kl_if_3 of
-                                                                                                                                                                                                                                                 Atom (B (True)) -> do simpleError (Types.Atom (Types.Str "value not found\n"))
-                                                                                                                                                                                                                                                 Atom (B (False)) -> do do kl_Result `pseq` tl kl_Result
-                                                                                                                                                                                                                                                 _ -> throwError "if: expected boolean")))
-                                                                                                                                                                            !appl_4 <- kl_V2869 `pseq` klCons kl_V2869 (Types.Atom Types.Nil)
-                                                                                                                                                                            !appl_5 <- kl_V2868 `pseq` (appl_4 `pseq` klCons kl_V2868 appl_4)
-                                                                                                                                                                            !appl_6 <- appl_5 `pseq` (kl_Entry `pseq` kl_assoc appl_5 kl_Entry)
-                                                                                                                                                                            appl_6 `pseq` applyWrapper appl_2 [appl_6])))
-                                                                                                            !appl_7 <- (do kl_V2870 `pseq` (kl_N `pseq` kl_LB_vector kl_V2870 kl_N)) `catchError` (\(!kl_E) -> do simpleError (Types.Atom (Types.Str "pointer not found\n")))
-                                                                                                            appl_7 `pseq` applyWrapper appl_1 [appl_7])))
-                                                !appl_8 <- kl_V2870 `pseq` kl_limit kl_V2870
-                                                !appl_9 <- kl_V2868 `pseq` (appl_8 `pseq` kl_hash kl_V2868 appl_8)
-                                                appl_9 `pseq` applyWrapper appl_0 [appl_9]
-
-kl_hash :: Types.KLValue ->
-           Types.KLValue -> Types.KLContext Types.Env Types.KLValue
-kl_hash (!kl_V2873) (!kl_V2874) = do let !appl_0 = ApplC (Func "lambda" (Context (\(!kl_Hash) -> do let pat_cond_1 = do return (Types.Atom (Types.N (Types.KI 1)))
-                                                                                                        pat_cond_2 = do do return kl_Hash
-                                                                                                     in case kl_Hash of
-                                                                                                            kl_Hash@(Atom (N (KI 0))) -> pat_cond_1
-                                                                                                            _ -> pat_cond_2)))
-                                     let !appl_3 = ApplC (Func "lambda" (Context (\(!kl_X) -> do kl_X `pseq` stringToN kl_X)))
-                                     !appl_4 <- kl_V2873 `pseq` kl_explode kl_V2873
-                                     !appl_5 <- appl_3 `pseq` (appl_4 `pseq` kl_map appl_3 appl_4)
-                                     !appl_6 <- appl_5 `pseq` kl_sum appl_5
-                                     !appl_7 <- appl_6 `pseq` (kl_V2874 `pseq` kl_shen_mod appl_6 kl_V2874)
-                                     appl_7 `pseq` applyWrapper appl_0 [appl_7]
-
-kl_shen_mod :: Types.KLValue ->
-               Types.KLValue -> Types.KLContext Types.Env Types.KLValue
-kl_shen_mod (!kl_V2877) (!kl_V2878) = do !appl_0 <- kl_V2878 `pseq` klCons kl_V2878 (Types.Atom Types.Nil)
-                                         !appl_1 <- kl_V2877 `pseq` (appl_0 `pseq` kl_shen_multiples kl_V2877 appl_0)
-                                         kl_V2877 `pseq` (appl_1 `pseq` kl_shen_modh kl_V2877 appl_1)
-
-kl_shen_multiples :: Types.KLValue ->
-                     Types.KLValue -> Types.KLContext Types.Env Types.KLValue
-kl_shen_multiples (!kl_V2881) (!kl_V2882) = do !kl_if_0 <- let pat_cond_1 kl_V2882 kl_V2882h kl_V2882t = do !kl_if_2 <- kl_V2882h `pseq` (kl_V2881 `pseq` greaterThan kl_V2882h kl_V2881)
-                                                                                                            case kl_if_2 of
-                                                                                                                Atom (B (True)) -> do return (Atom (B True))
-                                                                                                                Atom (B (False)) -> do do return (Atom (B False))
-                                                                                                                _ -> throwError "if: expected boolean"
-                                                               pat_cond_3 = do do return (Atom (B False))
-                                                            in case kl_V2882 of
-                                                                   !(kl_V2882@(Cons (!kl_V2882h)
-                                                                                    (!kl_V2882t))) -> pat_cond_1 kl_V2882 kl_V2882h kl_V2882t
-                                                                   _ -> pat_cond_3
-                                               case kl_if_0 of
-                                                   Atom (B (True)) -> do kl_V2882 `pseq` tl kl_V2882
-                                                   Atom (B (False)) -> do let pat_cond_4 kl_V2882 kl_V2882h kl_V2882t = do !appl_5 <- kl_V2882h `pseq` multiply (Types.Atom (Types.N (Types.KI 2))) kl_V2882h
-                                                                                                                           !appl_6 <- appl_5 `pseq` (kl_V2882 `pseq` klCons appl_5 kl_V2882)
-                                                                                                                           kl_V2881 `pseq` (appl_6 `pseq` kl_shen_multiples kl_V2881 appl_6)
-                                                                              pat_cond_7 = do do let !aw_8 = Types.Atom (Types.UnboundSym "shen.f_error")
-                                                                                                 applyWrapper aw_8 [ApplC (wrapNamed "shen.multiples" kl_shen_multiples)]
-                                                                           in case kl_V2882 of
-                                                                                  !(kl_V2882@(Cons (!kl_V2882h)
-                                                                                                   (!kl_V2882t))) -> pat_cond_4 kl_V2882 kl_V2882h kl_V2882t
-                                                                                  _ -> pat_cond_7
-                                                   _ -> throwError "if: expected boolean"
-
-kl_shen_modh :: Types.KLValue ->
-                Types.KLValue -> Types.KLContext Types.Env Types.KLValue
-kl_shen_modh (!kl_V2887) (!kl_V2888) = do let pat_cond_0 = do return (Types.Atom (Types.N (Types.KI 0)))
-                                              pat_cond_1 = do let pat_cond_2 = do return kl_V2887
-                                                                  pat_cond_3 = do !kl_if_4 <- let pat_cond_5 kl_V2888 kl_V2888h kl_V2888t = do !kl_if_6 <- kl_V2888h `pseq` (kl_V2887 `pseq` greaterThan kl_V2888h kl_V2887)
-                                                                                                                                               case kl_if_6 of
-                                                                                                                                                   Atom (B (True)) -> do return (Atom (B True))
-                                                                                                                                                   Atom (B (False)) -> do do return (Atom (B False))
-                                                                                                                                                   _ -> throwError "if: expected boolean"
-                                                                                                  pat_cond_7 = do do return (Atom (B False))
-                                                                                               in case kl_V2888 of
-                                                                                                      !(kl_V2888@(Cons (!kl_V2888h)
-                                                                                                                       (!kl_V2888t))) -> pat_cond_5 kl_V2888 kl_V2888h kl_V2888t
-                                                                                                      _ -> pat_cond_7
-                                                                                  case kl_if_4 of
-                                                                                      Atom (B (True)) -> do !appl_8 <- kl_V2888 `pseq` tl kl_V2888
-                                                                                                            !kl_if_9 <- appl_8 `pseq` kl_emptyP appl_8
-                                                                                                            case kl_if_9 of
-                                                                                                                Atom (B (True)) -> do return kl_V2887
-                                                                                                                Atom (B (False)) -> do do !appl_10 <- kl_V2888 `pseq` tl kl_V2888
-                                                                                                                                          kl_V2887 `pseq` (appl_10 `pseq` kl_shen_modh kl_V2887 appl_10)
-                                                                                                                _ -> throwError "if: expected boolean"
-                                                                                      Atom (B (False)) -> do let pat_cond_11 kl_V2888 kl_V2888h kl_V2888t = do !appl_12 <- kl_V2887 `pseq` (kl_V2888h `pseq` Primitives.subtract kl_V2887 kl_V2888h)
-                                                                                                                                                               appl_12 `pseq` (kl_V2888 `pseq` kl_shen_modh appl_12 kl_V2888)
-                                                                                                                 pat_cond_13 = do do let !aw_14 = Types.Atom (Types.UnboundSym "shen.f_error")
-                                                                                                                                     applyWrapper aw_14 [ApplC (wrapNamed "shen.modh" kl_shen_modh)]
-                                                                                                              in case kl_V2888 of
-                                                                                                                     !(kl_V2888@(Cons (!kl_V2888h)
-                                                                                                                                      (!kl_V2888t))) -> pat_cond_11 kl_V2888 kl_V2888h kl_V2888t
-                                                                                                                     _ -> pat_cond_13
-                                                                                      _ -> throwError "if: expected boolean"
-                                                               in case kl_V2888 of
-                                                                      kl_V2888@(Atom (Nil)) -> pat_cond_2
-                                                                      _ -> pat_cond_3
-                                           in case kl_V2887 of
-                                                  kl_V2887@(Atom (N (KI 0))) -> pat_cond_0
-                                                  _ -> pat_cond_1
-
-kl_sum :: Types.KLValue -> Types.KLContext Types.Env Types.KLValue
-kl_sum (!kl_V2890) = do let pat_cond_0 = do return (Types.Atom (Types.N (Types.KI 0)))
-                            pat_cond_1 kl_V2890 kl_V2890h kl_V2890t = do !appl_2 <- kl_V2890t `pseq` kl_sum kl_V2890t
-                                                                         kl_V2890h `pseq` (appl_2 `pseq` add kl_V2890h appl_2)
-                            pat_cond_3 = do do let !aw_4 = Types.Atom (Types.UnboundSym "shen.f_error")
-                                               applyWrapper aw_4 [ApplC (wrapNamed "sum" kl_sum)]
-                         in case kl_V2890 of
-                                kl_V2890@(Atom (Nil)) -> pat_cond_0
-                                !(kl_V2890@(Cons (!kl_V2890h)
-                                                 (!kl_V2890t))) -> pat_cond_1 kl_V2890 kl_V2890h kl_V2890t
-                                _ -> pat_cond_3
-
-kl_head :: Types.KLValue -> Types.KLContext Types.Env Types.KLValue
-kl_head (!kl_V2898) = do let pat_cond_0 kl_V2898 kl_V2898h kl_V2898t = do return kl_V2898h
-                             pat_cond_1 = do do simpleError (Types.Atom (Types.Str "head expects a non-empty list"))
-                          in case kl_V2898 of
-                                 !(kl_V2898@(Cons (!kl_V2898h)
-                                                  (!kl_V2898t))) -> pat_cond_0 kl_V2898 kl_V2898h kl_V2898t
-                                 _ -> pat_cond_1
-
-kl_tail :: Types.KLValue -> Types.KLContext Types.Env Types.KLValue
-kl_tail (!kl_V2906) = do let pat_cond_0 kl_V2906 kl_V2906h kl_V2906t = do return kl_V2906t
-                             pat_cond_1 = do do simpleError (Types.Atom (Types.Str "tail expects a non-empty list"))
-                          in case kl_V2906 of
-                                 !(kl_V2906@(Cons (!kl_V2906h)
-                                                  (!kl_V2906t))) -> pat_cond_0 kl_V2906 kl_V2906h kl_V2906t
-                                 _ -> pat_cond_1
-
-kl_hdstr :: Types.KLValue ->
-            Types.KLContext Types.Env Types.KLValue
-kl_hdstr (!kl_V2908) = do kl_V2908 `pseq` pos kl_V2908 (Types.Atom (Types.N (Types.KI 0)))
-
-kl_intersection :: Types.KLValue ->
-                   Types.KLValue -> Types.KLContext Types.Env Types.KLValue
-kl_intersection (!kl_V2913) (!kl_V2914) = do let pat_cond_0 = do return (Types.Atom Types.Nil)
-                                                 pat_cond_1 kl_V2913 kl_V2913h kl_V2913t = do !kl_if_2 <- kl_V2913h `pseq` (kl_V2914 `pseq` kl_elementP kl_V2913h kl_V2914)
-                                                                                              case kl_if_2 of
-                                                                                                  Atom (B (True)) -> do !appl_3 <- kl_V2913t `pseq` (kl_V2914 `pseq` kl_intersection kl_V2913t kl_V2914)
-                                                                                                                        kl_V2913h `pseq` (appl_3 `pseq` klCons kl_V2913h appl_3)
-                                                                                                  Atom (B (False)) -> do do kl_V2913t `pseq` (kl_V2914 `pseq` kl_intersection kl_V2913t kl_V2914)
-                                                                                                  _ -> throwError "if: expected boolean"
-                                                 pat_cond_4 = do do let !aw_5 = Types.Atom (Types.UnboundSym "shen.f_error")
-                                                                    applyWrapper aw_5 [ApplC (wrapNamed "intersection" kl_intersection)]
-                                              in case kl_V2913 of
-                                                     kl_V2913@(Atom (Nil)) -> pat_cond_0
-                                                     !(kl_V2913@(Cons (!kl_V2913h)
-                                                                      (!kl_V2913t))) -> pat_cond_1 kl_V2913 kl_V2913h kl_V2913t
-                                                     _ -> pat_cond_4
-
-kl_reverse :: Types.KLValue ->
-              Types.KLContext Types.Env Types.KLValue
-kl_reverse (!kl_V2916) = do kl_V2916 `pseq` kl_shen_reverse_help kl_V2916 (Types.Atom Types.Nil)
-
-kl_shen_reverse_help :: Types.KLValue ->
-                        Types.KLValue -> Types.KLContext Types.Env Types.KLValue
-kl_shen_reverse_help (!kl_V2919) (!kl_V2920) = do let pat_cond_0 = do return kl_V2920
-                                                      pat_cond_1 kl_V2919 kl_V2919h kl_V2919t = do !appl_2 <- kl_V2919h `pseq` (kl_V2920 `pseq` klCons kl_V2919h kl_V2920)
-                                                                                                   kl_V2919t `pseq` (appl_2 `pseq` kl_shen_reverse_help kl_V2919t appl_2)
-                                                      pat_cond_3 = do do let !aw_4 = Types.Atom (Types.UnboundSym "shen.f_error")
-                                                                         applyWrapper aw_4 [ApplC (wrapNamed "shen.reverse_help" kl_shen_reverse_help)]
-                                                   in case kl_V2919 of
-                                                          kl_V2919@(Atom (Nil)) -> pat_cond_0
-                                                          !(kl_V2919@(Cons (!kl_V2919h)
-                                                                           (!kl_V2919t))) -> pat_cond_1 kl_V2919 kl_V2919h kl_V2919t
-                                                          _ -> pat_cond_3
-
-kl_union :: Types.KLValue ->
-            Types.KLValue -> Types.KLContext Types.Env Types.KLValue
-kl_union (!kl_V2923) (!kl_V2924) = do let pat_cond_0 = do return kl_V2924
-                                          pat_cond_1 kl_V2923 kl_V2923h kl_V2923t = do !kl_if_2 <- kl_V2923h `pseq` (kl_V2924 `pseq` kl_elementP kl_V2923h kl_V2924)
-                                                                                       case kl_if_2 of
-                                                                                           Atom (B (True)) -> do kl_V2923t `pseq` (kl_V2924 `pseq` kl_union kl_V2923t kl_V2924)
-                                                                                           Atom (B (False)) -> do do !appl_3 <- kl_V2923t `pseq` (kl_V2924 `pseq` kl_union kl_V2923t kl_V2924)
-                                                                                                                     kl_V2923h `pseq` (appl_3 `pseq` klCons kl_V2923h appl_3)
-                                                                                           _ -> throwError "if: expected boolean"
-                                          pat_cond_4 = do do let !aw_5 = Types.Atom (Types.UnboundSym "shen.f_error")
-                                                             applyWrapper aw_5 [ApplC (wrapNamed "union" kl_union)]
-                                       in case kl_V2923 of
-                                              kl_V2923@(Atom (Nil)) -> pat_cond_0
-                                              !(kl_V2923@(Cons (!kl_V2923h)
-                                                               (!kl_V2923t))) -> pat_cond_1 kl_V2923 kl_V2923h kl_V2923t
-                                              _ -> pat_cond_4
-
-kl_y_or_nP :: Types.KLValue ->
-              Types.KLContext Types.Env Types.KLValue
-kl_y_or_nP (!kl_V2926) = do let !appl_0 = ApplC (Func "lambda" (Context (\(!kl_Message) -> do let !appl_1 = ApplC (Func "lambda" (Context (\(!kl_Y_or_N) -> do let !appl_2 = ApplC (Func "lambda" (Context (\(!kl_Input) -> do let pat_cond_3 = do return (Atom (B True))
-                                                                                                                                                                                                                                   pat_cond_4 = do do let pat_cond_5 = do return (Atom (B False))
-                                                                                                                                                                                                                                                          pat_cond_6 = do do !appl_7 <- kl_stoutput
-                                                                                                                                                                                                                                                                             let !aw_8 = Types.Atom (Types.UnboundSym "shen.prhush")
-                                                                                                                                                                                                                                                                             !appl_9 <- appl_7 `pseq` applyWrapper aw_8 [Types.Atom (Types.Str "please answer y or n\n"),
-                                                                                                                                                                                                                                                                                                                         appl_7]
-                                                                                                                                                                                                                                                                             !appl_10 <- kl_V2926 `pseq` kl_y_or_nP kl_V2926
-                                                                                                                                                                                                                                                                             appl_9 `pseq` (appl_10 `pseq` kl_do appl_9 appl_10)
-                                                                                                                                                                                                                                                       in case kl_Input of
-                                                                                                                                                                                                                                                              kl_Input@(Atom (Str "n")) -> pat_cond_5
-                                                                                                                                                                                                                                                              _ -> pat_cond_6
-                                                                                                                                                                                                                                in case kl_Input of
-                                                                                                                                                                                                                                       kl_Input@(Atom (Str "y")) -> pat_cond_3
-                                                                                                                                                                                                                                       _ -> pat_cond_4)))
-                                                                                                                                                               !appl_11 <- kl_stinput
-                                                                                                                                                               let !aw_12 = Types.Atom (Types.UnboundSym "read")
-                                                                                                                                                               !appl_13 <- appl_11 `pseq` applyWrapper aw_12 [appl_11]
-                                                                                                                                                               let !aw_14 = Types.Atom (Types.UnboundSym "shen.app")
-                                                                                                                                                               !appl_15 <- appl_13 `pseq` applyWrapper aw_14 [appl_13,
-                                                                                                                                                                                                              Types.Atom (Types.Str ""),
-                                                                                                                                                                                                              Types.Atom (Types.UnboundSym "shen.s")]
-                                                                                                                                                               appl_15 `pseq` applyWrapper appl_2 [appl_15])))
-                                                                                              !appl_16 <- kl_stoutput
-                                                                                              let !aw_17 = Types.Atom (Types.UnboundSym "shen.prhush")
-                                                                                              !appl_18 <- appl_16 `pseq` applyWrapper aw_17 [Types.Atom (Types.Str " (y/n) "),
-                                                                                                                                             appl_16]
-                                                                                              appl_18 `pseq` applyWrapper appl_1 [appl_18])))
-                            let !aw_19 = Types.Atom (Types.UnboundSym "shen.proc-nl")
-                            !appl_20 <- kl_V2926 `pseq` applyWrapper aw_19 [kl_V2926]
-                            !appl_21 <- kl_stoutput
-                            let !aw_22 = Types.Atom (Types.UnboundSym "shen.prhush")
-                            !appl_23 <- appl_20 `pseq` (appl_21 `pseq` applyWrapper aw_22 [appl_20,
-                                                                                           appl_21])
-                            appl_23 `pseq` applyWrapper appl_0 [appl_23]
-
-kl_not :: Types.KLValue -> Types.KLContext Types.Env Types.KLValue
-kl_not (!kl_V2928) = do case kl_V2928 of
-                            Atom (B (True)) -> do return (Atom (B False))
-                            Atom (B (False)) -> do do return (Atom (B True))
-                            _ -> throwError "if: expected boolean"
-
-kl_subst :: Types.KLValue ->
-            Types.KLValue ->
-            Types.KLValue -> Types.KLContext Types.Env Types.KLValue
-kl_subst (!kl_V2941) (!kl_V2942) (!kl_V2943) = do !kl_if_0 <- kl_V2943 `pseq` (kl_V2942 `pseq` eq kl_V2943 kl_V2942)
-                                                  case kl_if_0 of
-                                                      Atom (B (True)) -> do return kl_V2941
-                                                      Atom (B (False)) -> do let pat_cond_1 kl_V2943 kl_V2943h kl_V2943t = do let !appl_2 = ApplC (Func "lambda" (Context (\(!kl_W) -> do kl_V2941 `pseq` (kl_V2942 `pseq` (kl_W `pseq` kl_subst kl_V2941 kl_V2942 kl_W)))))
-                                                                                                                              appl_2 `pseq` (kl_V2943 `pseq` kl_map appl_2 kl_V2943)
-                                                                                 pat_cond_3 = do do return kl_V2943
-                                                                              in case kl_V2943 of
-                                                                                     !(kl_V2943@(Cons (!kl_V2943h)
-                                                                                                      (!kl_V2943t))) -> pat_cond_1 kl_V2943 kl_V2943h kl_V2943t
-                                                                                     _ -> pat_cond_3
-                                                      _ -> throwError "if: expected boolean"
-
-kl_explode :: Types.KLValue ->
-              Types.KLContext Types.Env Types.KLValue
-kl_explode (!kl_V2945) = do let !aw_0 = Types.Atom (Types.UnboundSym "shen.app")
-                            !appl_1 <- kl_V2945 `pseq` applyWrapper aw_0 [kl_V2945,
-                                                                          Types.Atom (Types.Str ""),
-                                                                          Types.Atom (Types.UnboundSym "shen.a")]
-                            appl_1 `pseq` kl_shen_explode_h appl_1
-
-kl_shen_explode_h :: Types.KLValue ->
-                     Types.KLContext Types.Env Types.KLValue
-kl_shen_explode_h (!kl_V2947) = do let pat_cond_0 = do return (Types.Atom Types.Nil)
-                                       pat_cond_1 = do !kl_if_2 <- kl_V2947 `pseq` kl_shen_PlusstringP kl_V2947
-                                                       case kl_if_2 of
-                                                           Atom (B (True)) -> do !appl_3 <- kl_V2947 `pseq` pos kl_V2947 (Types.Atom (Types.N (Types.KI 0)))
-                                                                                 !appl_4 <- kl_V2947 `pseq` tlstr kl_V2947
-                                                                                 !appl_5 <- appl_4 `pseq` kl_shen_explode_h appl_4
-                                                                                 appl_3 `pseq` (appl_5 `pseq` klCons appl_3 appl_5)
-                                                           Atom (B (False)) -> do do let !aw_6 = Types.Atom (Types.UnboundSym "shen.f_error")
-                                                                                     applyWrapper aw_6 [ApplC (wrapNamed "shen.explode-h" kl_shen_explode_h)]
-                                                           _ -> throwError "if: expected boolean"
-                                    in case kl_V2947 of
-                                           kl_V2947@(Atom (Str "")) -> pat_cond_0
-                                           _ -> pat_cond_1
-
-kl_cd :: Types.KLValue -> Types.KLContext Types.Env Types.KLValue
-kl_cd (!kl_V2949) = do !appl_0 <- let pat_cond_1 = do return (Types.Atom (Types.Str ""))
-                                      pat_cond_2 = do do let !aw_3 = Types.Atom (Types.UnboundSym "shen.app")
-                                                         kl_V2949 `pseq` applyWrapper aw_3 [kl_V2949,
-                                                                                            Types.Atom (Types.Str "/"),
-                                                                                            Types.Atom (Types.UnboundSym "shen.a")]
-                                   in case kl_V2949 of
-                                          kl_V2949@(Atom (Str "")) -> pat_cond_1
-                                          _ -> pat_cond_2
-                       appl_0 `pseq` klSet (Types.Atom (Types.UnboundSym "*home-directory*")) appl_0
-
-kl_map :: Types.KLValue ->
-          Types.KLValue -> Types.KLContext Types.Env Types.KLValue
-kl_map (!kl_V2952) (!kl_V2953) = do kl_V2952 `pseq` (kl_V2953 `pseq` kl_shen_map_h kl_V2952 kl_V2953 (Types.Atom Types.Nil))
-
-kl_shen_map_h :: Types.KLValue ->
-                 Types.KLValue ->
-                 Types.KLValue -> Types.KLContext Types.Env Types.KLValue
-kl_shen_map_h (!kl_V2959) (!kl_V2960) (!kl_V2961) = do let pat_cond_0 = do kl_V2961 `pseq` kl_reverse kl_V2961
-                                                           pat_cond_1 kl_V2960 kl_V2960h kl_V2960t = do !appl_2 <- kl_V2960h `pseq` applyWrapper kl_V2959 [kl_V2960h]
-                                                                                                        !appl_3 <- appl_2 `pseq` (kl_V2961 `pseq` klCons appl_2 kl_V2961)
-                                                                                                        kl_V2959 `pseq` (kl_V2960t `pseq` (appl_3 `pseq` kl_shen_map_h kl_V2959 kl_V2960t appl_3))
-                                                           pat_cond_4 = do do let !aw_5 = Types.Atom (Types.UnboundSym "shen.f_error")
-                                                                              applyWrapper aw_5 [ApplC (wrapNamed "shen.map-h" kl_shen_map_h)]
-                                                        in case kl_V2960 of
-                                                               kl_V2960@(Atom (Nil)) -> pat_cond_0
-                                                               !(kl_V2960@(Cons (!kl_V2960h)
-                                                                                (!kl_V2960t))) -> pat_cond_1 kl_V2960 kl_V2960h kl_V2960t
-                                                               _ -> pat_cond_4
-
-kl_length :: Types.KLValue ->
-             Types.KLContext Types.Env Types.KLValue
-kl_length (!kl_V2963) = do kl_V2963 `pseq` kl_shen_length_h kl_V2963 (Types.Atom (Types.N (Types.KI 0)))
-
-kl_shen_length_h :: Types.KLValue ->
-                    Types.KLValue -> Types.KLContext Types.Env Types.KLValue
-kl_shen_length_h (!kl_V2966) (!kl_V2967) = do let pat_cond_0 = do return kl_V2967
-                                                  pat_cond_1 = do do !appl_2 <- kl_V2966 `pseq` tl kl_V2966
-                                                                     !appl_3 <- kl_V2967 `pseq` add kl_V2967 (Types.Atom (Types.N (Types.KI 1)))
-                                                                     appl_2 `pseq` (appl_3 `pseq` kl_shen_length_h appl_2 appl_3)
-                                               in case kl_V2966 of
-                                                      kl_V2966@(Atom (Nil)) -> pat_cond_0
-                                                      _ -> pat_cond_1
-
-kl_occurrences :: Types.KLValue ->
-                  Types.KLValue -> Types.KLContext Types.Env Types.KLValue
-kl_occurrences (!kl_V2979) (!kl_V2980) = do !kl_if_0 <- kl_V2980 `pseq` (kl_V2979 `pseq` eq kl_V2980 kl_V2979)
-                                            case kl_if_0 of
-                                                Atom (B (True)) -> do return (Types.Atom (Types.N (Types.KI 1)))
-                                                Atom (B (False)) -> do let pat_cond_1 kl_V2980 kl_V2980h kl_V2980t = do !appl_2 <- kl_V2979 `pseq` (kl_V2980h `pseq` kl_occurrences kl_V2979 kl_V2980h)
-                                                                                                                        !appl_3 <- kl_V2979 `pseq` (kl_V2980t `pseq` kl_occurrences kl_V2979 kl_V2980t)
-                                                                                                                        appl_2 `pseq` (appl_3 `pseq` add appl_2 appl_3)
-                                                                           pat_cond_4 = do do return (Types.Atom (Types.N (Types.KI 0)))
-                                                                        in case kl_V2980 of
-                                                                               !(kl_V2980@(Cons (!kl_V2980h)
-                                                                                                (!kl_V2980t))) -> pat_cond_1 kl_V2980 kl_V2980h kl_V2980t
-                                                                               _ -> pat_cond_4
-                                                _ -> throwError "if: expected boolean"
-
-kl_nth :: Types.KLValue ->
-          Types.KLValue -> Types.KLContext Types.Env Types.KLValue
-kl_nth (!kl_V2989) (!kl_V2990) = do !kl_if_0 <- let pat_cond_1 = do let pat_cond_2 kl_V2990 kl_V2990h kl_V2990t = do return (Atom (B True))
-                                                                        pat_cond_3 = do do return (Atom (B False))
-                                                                     in case kl_V2990 of
-                                                                            !(kl_V2990@(Cons (!kl_V2990h)
-                                                                                             (!kl_V2990t))) -> pat_cond_2 kl_V2990 kl_V2990h kl_V2990t
-                                                                            _ -> pat_cond_3
-                                                    pat_cond_4 = do do return (Atom (B False))
-                                                 in case kl_V2989 of
-                                                        kl_V2989@(Atom (N (KI 1))) -> pat_cond_1
-                                                        _ -> pat_cond_4
-                                    case kl_if_0 of
-                                        Atom (B (True)) -> do kl_V2990 `pseq` hd kl_V2990
-                                        Atom (B (False)) -> do let pat_cond_5 kl_V2990 kl_V2990h kl_V2990t = do !appl_6 <- kl_V2989 `pseq` Primitives.subtract kl_V2989 (Types.Atom (Types.N (Types.KI 1)))
-                                                                                                                appl_6 `pseq` (kl_V2990t `pseq` kl_nth appl_6 kl_V2990t)
-                                                                   pat_cond_7 = do do let !aw_8 = Types.Atom (Types.UnboundSym "shen.f_error")
-                                                                                      applyWrapper aw_8 [ApplC (wrapNamed "nth" kl_nth)]
-                                                                in case kl_V2990 of
-                                                                       !(kl_V2990@(Cons (!kl_V2990h)
-                                                                                        (!kl_V2990t))) -> pat_cond_5 kl_V2990 kl_V2990h kl_V2990t
-                                                                       _ -> pat_cond_7
-                                        _ -> throwError "if: expected boolean"
-
-{-
-kl_integerP :: Types.KLValue ->
-               Types.KLContext Types.Env Types.KLValue
-kl_integerP (!kl_V2992) = do !kl_if_0 <- kl_V2992 `pseq` numberP kl_V2992
-                             case kl_if_0 of
-                                 Atom (B (True)) -> do let !appl_1 = ApplC (Func "lambda" (Context (\(!kl_Abs) -> do !appl_2 <- kl_Abs `pseq` kl_shen_magless kl_Abs (Types.Atom (Types.N (Types.KI 1)))
-                                                                                                                     kl_Abs `pseq` (appl_2 `pseq` kl_shen_integer_testP kl_Abs appl_2))))
-                                                       !appl_3 <- kl_V2992 `pseq` kl_shen_abs kl_V2992
-                                                       !kl_if_4 <- appl_3 `pseq` applyWrapper appl_1 [appl_3]
-                                                       case kl_if_4 of
-                                                           Atom (B (True)) -> do return (Atom (B True))
-                                                           Atom (B (False)) -> do do return (Atom (B False))
-                                                           _ -> throwError "if: expected boolean"
-                                 Atom (B (False)) -> do do return (Atom (B False))
-                                 _ -> throwError "if: expected boolean"
--}
-
-kl_integerP :: Types.KLValue ->
-               Types.KLContext Types.Env Types.KLValue
-kl_integerP (Atom (N (KI _))) = return (Atom (B True))
-kl_integerP (Atom (N (KD d))) = return (Atom (B (fromInteger (round d) == d)))
-kl_integerP !v = return (Atom (B False))
-
-kl_shen_abs :: Types.KLValue ->
-               Types.KLContext Types.Env Types.KLValue
-kl_shen_abs (!kl_V2994) = do !kl_if_0 <- kl_V2994 `pseq` greaterThan kl_V2994 (Types.Atom (Types.N (Types.KI 0)))
-                             case kl_if_0 of
-                                 Atom (B (True)) -> do return kl_V2994
-                                 Atom (B (False)) -> do do kl_V2994 `pseq` Primitives.subtract (Types.Atom (Types.N (Types.KI 0))) kl_V2994
-                                 _ -> throwError "if: expected boolean"
-
-kl_shen_magless :: Types.KLValue ->
-                   Types.KLValue -> Types.KLContext Types.Env Types.KLValue
-kl_shen_magless (!kl_V2997) (!kl_V2998) = do let !appl_0 = ApplC (Func "lambda" (Context (\(!kl_Nx2) -> do !kl_if_1 <- kl_Nx2 `pseq` (kl_V2997 `pseq` greaterThan kl_Nx2 kl_V2997)
-                                                                                                           case kl_if_1 of
-                                                                                                               Atom (B (True)) -> do return kl_V2998
-                                                                                                               Atom (B (False)) -> do do kl_V2997 `pseq` (kl_Nx2 `pseq` kl_shen_magless kl_V2997 kl_Nx2)
-                                                                                                               _ -> throwError "if: expected boolean")))
-                                             !appl_2 <- kl_V2998 `pseq` multiply kl_V2998 (Types.Atom (Types.N (Types.KI 2)))
-                                             appl_2 `pseq` applyWrapper appl_0 [appl_2]
-
-kl_shen_integer_testP :: Types.KLValue ->
-                         Types.KLValue -> Types.KLContext Types.Env Types.KLValue
-kl_shen_integer_testP (!kl_V3004) (!kl_V3005) = do let pat_cond_0 = do return (Atom (B True))
-                                                       pat_cond_1 = do !kl_if_2 <- kl_V3004 `pseq` greaterThan (Types.Atom (Types.N (Types.KI 1))) kl_V3004
-                                                                       case kl_if_2 of
-                                                                           Atom (B (True)) -> do return (Atom (B False))
-                                                                           Atom (B (False)) -> do do let !appl_3 = ApplC (Func "lambda" (Context (\(!kl_Abs_N) -> do !kl_if_4 <- kl_Abs_N `pseq` greaterThan (Types.Atom (Types.N (Types.KI 0))) kl_Abs_N
-                                                                                                                                                                     case kl_if_4 of
-                                                                                                                                                                         Atom (B (True)) -> do kl_V3004 `pseq` kl_integerP kl_V3004
-                                                                                                                                                                         Atom (B (False)) -> do do kl_Abs_N `pseq` (kl_V3005 `pseq` kl_shen_integer_testP kl_Abs_N kl_V3005)
-                                                                                                                                                                         _ -> throwError "if: expected boolean")))
-                                                                                                     !appl_5 <- kl_V3004 `pseq` (kl_V3005 `pseq` Primitives.subtract kl_V3004 kl_V3005)
-                                                                                                     appl_5 `pseq` applyWrapper appl_3 [appl_5]
-                                                                           _ -> throwError "if: expected boolean"
-                                                    in case kl_V3004 of
-                                                           kl_V3004@(Atom (N (KI 0))) -> pat_cond_0
-                                                           _ -> pat_cond_1
-
-kl_mapcan :: Types.KLValue ->
-             Types.KLValue -> Types.KLContext Types.Env Types.KLValue
-kl_mapcan (!kl_V3010) (!kl_V3011) = do let pat_cond_0 = do return (Types.Atom Types.Nil)
-                                           pat_cond_1 kl_V3011 kl_V3011h kl_V3011t = do !appl_2 <- kl_V3011h `pseq` applyWrapper kl_V3010 [kl_V3011h]
-                                                                                        !appl_3 <- kl_V3010 `pseq` (kl_V3011t `pseq` kl_mapcan kl_V3010 kl_V3011t)
-                                                                                        appl_2 `pseq` (appl_3 `pseq` kl_append appl_2 appl_3)
-                                           pat_cond_4 = do do let !aw_5 = Types.Atom (Types.UnboundSym "shen.f_error")
-                                                              applyWrapper aw_5 [ApplC (wrapNamed "mapcan" kl_mapcan)]
-                                        in case kl_V3011 of
-                                               kl_V3011@(Atom (Nil)) -> pat_cond_0
-                                               !(kl_V3011@(Cons (!kl_V3011h)
-                                                                (!kl_V3011t))) -> pat_cond_1 kl_V3011 kl_V3011h kl_V3011t
-                                               _ -> pat_cond_4
-
-kl_EqEq :: Types.KLValue ->
-           Types.KLValue -> Types.KLContext Types.Env Types.KLValue
-kl_EqEq (!kl_V3023) (!kl_V3024) = do !kl_if_0 <- kl_V3024 `pseq` (kl_V3023 `pseq` eq kl_V3024 kl_V3023)
-                                     case kl_if_0 of
-                                         Atom (B (True)) -> do return (Atom (B True))
-                                         Atom (B (False)) -> do do return (Atom (B False))
-                                         _ -> throwError "if: expected boolean"
-
-kl_abort :: Types.KLContext Types.Env Types.KLValue
-kl_abort = do simpleError (Types.Atom (Types.Str ""))
-
-kl_boundP :: Types.KLValue ->
-             Types.KLContext Types.Env Types.KLValue
-kl_boundP (!kl_V3026) = do !kl_if_0 <- kl_V3026 `pseq` kl_symbolP kl_V3026
-                           case kl_if_0 of
-                               Atom (B (True)) -> do let !appl_1 = ApplC (Func "lambda" (Context (\(!kl_Val) -> do let pat_cond_2 = do return (Atom (B False))
-                                                                                                                       pat_cond_3 = do do return (Atom (B True))
-                                                                                                                    in case kl_Val of
-                                                                                                                           kl_Val@(Atom (UnboundSym "shen.this-symbol-is-unbound")) -> pat_cond_2
-                                                                                                                           kl_Val@(ApplC (PL "shen.this-symbol-is-unbound"
-                                                                                                                                             _)) -> pat_cond_2
-                                                                                                                           kl_Val@(ApplC (Func "shen.this-symbol-is-unbound"
-                                                                                                                                               _)) -> pat_cond_2
-                                                                                                                           _ -> pat_cond_3)))
-                                                     !appl_4 <- (do kl_V3026 `pseq` value kl_V3026) `catchError` (\(!kl_E) -> do return (Types.Atom (Types.UnboundSym "shen.this-symbol-is-unbound")))
-                                                     !kl_if_5 <- appl_4 `pseq` applyWrapper appl_1 [appl_4]
-                                                     case kl_if_5 of
-                                                         Atom (B (True)) -> do return (Atom (B True))
-                                                         Atom (B (False)) -> do do return (Atom (B False))
-                                                         _ -> throwError "if: expected boolean"
-                               Atom (B (False)) -> do do return (Atom (B False))
-                               _ -> throwError "if: expected boolean"
-
-kl_shen_string_RBbytes :: Types.KLValue ->
-                          Types.KLContext Types.Env Types.KLValue
-kl_shen_string_RBbytes (!kl_V3028) = do let pat_cond_0 = do return (Types.Atom Types.Nil)
-                                            pat_cond_1 = do do !appl_2 <- kl_V3028 `pseq` pos kl_V3028 (Types.Atom (Types.N (Types.KI 0)))
-                                                               !appl_3 <- appl_2 `pseq` stringToN appl_2
-                                                               !appl_4 <- kl_V3028 `pseq` tlstr kl_V3028
-                                                               !appl_5 <- appl_4 `pseq` kl_shen_string_RBbytes appl_4
-                                                               appl_3 `pseq` (appl_5 `pseq` klCons appl_3 appl_5)
-                                         in case kl_V3028 of
-                                                kl_V3028@(Atom (Str "")) -> pat_cond_0
-                                                _ -> pat_cond_1
-
-kl_maxinferences :: Types.KLValue ->
-                    Types.KLContext Types.Env Types.KLValue
-kl_maxinferences (!kl_V3030) = do kl_V3030 `pseq` klSet (Types.Atom (Types.UnboundSym "shen.*maxinferences*")) kl_V3030
-
-kl_inferences :: Types.KLContext Types.Env Types.KLValue
-kl_inferences = do value (Types.Atom (Types.UnboundSym "shen.*infs*"))
-
-kl_protect :: Types.KLValue ->
-              Types.KLContext Types.Env Types.KLValue
-kl_protect (!kl_V3032) = do return kl_V3032
-
-kl_stoutput :: Types.KLContext Types.Env Types.KLValue
-kl_stoutput = do value (Types.Atom (Types.UnboundSym "*stoutput*"))
-
-kl_string_RBsymbol :: Types.KLValue ->
-                      Types.KLContext Types.Env Types.KLValue
-kl_string_RBsymbol (!kl_V3034) = do let !appl_0 = ApplC (Func "lambda" (Context (\(!kl_Symbol) -> do !kl_if_1 <- kl_Symbol `pseq` kl_symbolP kl_Symbol
-                                                                                                     case kl_if_1 of
-                                                                                                         Atom (B (True)) -> do return kl_Symbol
-                                                                                                         Atom (B (False)) -> do do let !aw_2 = Types.Atom (Types.UnboundSym "shen.app")
-                                                                                                                                   !appl_3 <- kl_V3034 `pseq` applyWrapper aw_2 [kl_V3034,
-                                                                                                                                                                                 Types.Atom (Types.Str " to a symbol"),
-                                                                                                                                                                                 Types.Atom (Types.UnboundSym "shen.s")]
-                                                                                                                                   !appl_4 <- appl_3 `pseq` cn (Types.Atom (Types.Str "cannot intern ")) appl_3
-                                                                                                                                   appl_4 `pseq` simpleError appl_4
-                                                                                                         _ -> throwError "if: expected boolean")))
-                                    !appl_5 <- kl_V3034 `pseq` intern kl_V3034
-                                    appl_5 `pseq` applyWrapper appl_0 [appl_5]
-
-kl_optimise :: Types.KLValue ->
-               Types.KLContext Types.Env Types.KLValue
-kl_optimise (!kl_V3040) = do let pat_cond_0 = do klSet (Types.Atom (Types.UnboundSym "shen.*optimise*")) (Atom (B True))
-                                 pat_cond_1 = do klSet (Types.Atom (Types.UnboundSym "shen.*optimise*")) (Atom (B False))
-                                 pat_cond_2 = do do simpleError (Types.Atom (Types.Str "optimise expects a + or a -.\n"))
-                              in case kl_V3040 of
-                                     kl_V3040@(Atom (UnboundSym "+")) -> pat_cond_0
-                                     kl_V3040@(ApplC (PL "+" _)) -> pat_cond_0
-                                     kl_V3040@(ApplC (Func "+" _)) -> pat_cond_0
-                                     kl_V3040@(Atom (UnboundSym "-")) -> pat_cond_1
-                                     kl_V3040@(ApplC (PL "-" _)) -> pat_cond_1
-                                     kl_V3040@(ApplC (Func "-" _)) -> pat_cond_1
-                                     _ -> pat_cond_2
-
-kl_os :: Types.KLContext Types.Env Types.KLValue
-kl_os = do value (Types.Atom (Types.UnboundSym "*os*"))
-
-kl_language :: Types.KLContext Types.Env Types.KLValue
-kl_language = do value (Types.Atom (Types.UnboundSym "*language*"))
-
-kl_version :: Types.KLContext Types.Env Types.KLValue
-kl_version = do value (Types.Atom (Types.UnboundSym "*version*"))
-
-kl_port :: Types.KLContext Types.Env Types.KLValue
-kl_port = do value (Types.Atom (Types.UnboundSym "*port*"))
-
-kl_porters :: Types.KLContext Types.Env Types.KLValue
-kl_porters = do value (Types.Atom (Types.UnboundSym "*porters*"))
-
-kl_implementation :: Types.KLContext Types.Env Types.KLValue
-kl_implementation = do value (Types.Atom (Types.UnboundSym "*implementation*"))
-
-kl_release :: Types.KLContext Types.Env Types.KLValue
-kl_release = do value (Types.Atom (Types.UnboundSym "*release*"))
-
-kl_packageP :: Types.KLValue ->
-               Types.KLContext Types.Env Types.KLValue
-kl_packageP (!kl_V3042) = do (do !appl_0 <- kl_V3042 `pseq` kl_external kl_V3042
-                                 appl_0 `pseq` kl_do appl_0 (Atom (B True))) `catchError` (\(!kl_E) -> do return (Atom (B False)))
-
-kl_function :: Types.KLValue ->
-               Types.KLContext Types.Env Types.KLValue
-kl_function (!kl_V3044) = do !appl_0 <- value (Types.Atom (Types.UnboundSym "shen.*symbol-table*"))
-                             kl_V3044 `pseq` (appl_0 `pseq` kl_shen_lookup_func kl_V3044 appl_0)
-
-kl_shen_lookup_func :: Types.KLValue ->
-                       Types.KLValue -> Types.KLContext Types.Env Types.KLValue
-kl_shen_lookup_func (!kl_V3054) (!kl_V3055) = do let pat_cond_0 = do let !aw_1 = Types.Atom (Types.UnboundSym "shen.app")
-                                                                     !appl_2 <- kl_V3054 `pseq` applyWrapper aw_1 [kl_V3054,
-                                                                                                                   Types.Atom (Types.Str " has no lambda expansion\n"),
-                                                                                                                   Types.Atom (Types.UnboundSym "shen.a")]
-                                                                     appl_2 `pseq` simpleError appl_2
-                                                     pat_cond_3 kl_V3055 kl_V3055h kl_V3055hh kl_V3055ht kl_V3055t = do return kl_V3055ht
-                                                     pat_cond_4 kl_V3055 kl_V3055h kl_V3055t = do kl_V3054 `pseq` (kl_V3055t `pseq` kl_shen_lookup_func kl_V3054 kl_V3055t)
-                                                     pat_cond_5 = do do let !aw_6 = Types.Atom (Types.UnboundSym "shen.f_error")
-                                                                        applyWrapper aw_6 [ApplC (wrapNamed "shen.lookup-func" kl_shen_lookup_func)]
-                                                  in case kl_V3055 of
-                                                         kl_V3055@(Atom (Nil)) -> pat_cond_0
-                                                         !(kl_V3055@(Cons (!(kl_V3055h@(Cons (!kl_V3055hh)
-                                                                                             (!kl_V3055ht))))
-                                                                          (!kl_V3055t))) | eqCore kl_V3055hh kl_V3054 -> pat_cond_3 kl_V3055 kl_V3055h kl_V3055hh kl_V3055ht kl_V3055t
-                                                         !(kl_V3055@(Cons (!kl_V3055h)
-                                                                          (!kl_V3055t))) -> pat_cond_4 kl_V3055 kl_V3055h kl_V3055t
-                                                         _ -> pat_cond_5
-
-expr2 :: Types.KLContext Types.Env Types.KLValue
-expr2 = do (do return (Types.Atom (Types.Str "Copyright (c) 2015, Mark Tarver\n\nAll rights reserved.\n\nRedistribution and use in source and binary forms, with or without\nmodification, are permitted provided that the following conditions are met:\n1. Redistributions of source code must retain the above copyright\n   notice, this list of conditions and the following disclaimer.\n2. Redistributions in binary form must reproduce the above copyright\n   notice, this list of conditions and the following disclaimer in the\n   documentation and/or other materials provided with the distribution.\n3. The name of Mark Tarver may not be used to endorse or promote products\n   derived from this software without specific prior written permission.\n\nTHIS SOFTWARE IS PROVIDED BY Mark Tarver ''AS IS'' AND ANY\nEXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED\nWARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE\nDISCLAIMED. IN NO EVENT SHALL Mark Tarver BE LIABLE FOR ANY\nDIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES\n(INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;\nLOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND\nON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT\n(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS\nSOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE."))) `catchError` (\(!kl_E) -> do return (Types.Atom (Types.Str "E")))
+{-# LANGUAGE BangPatterns #-}+{-# LANGUAGE OverloadedStrings #-}+{-# LANGUAGE ScopedTypeVariables #-}+{-# LANGUAGE Strict #-}+{-# LANGUAGE StrictData #-}+{-# LANGUAGE ViewPatterns #-}++module Backend.Sys where++import Control.Monad.Except+import Control.Parallel+import Environment+import Core.Primitives as Primitives+import Backend.Utils+import Core.Types+import Core.Utils+import Wrap+import Backend.Toplevel+import Backend.Core++{-+Copyright (c) 2015, Mark Tarver+All rights reserved.++Redistribution and use in source and binary forms, with or without+modification, are permitted provided that the following conditions are met:++1. Redistributions of source code must retain the above copyright+   notice, this list of conditions and the following disclaimer.+2. Redistributions in binary form must reproduce the above copyright+   notice, this list of conditions and the following disclaimer in the+   documentation and/or other materials provided with the distribution.+3. The name of Mark Tarver may not be used to endorse or promote products+   derived from this software without specific prior written permission.++THIS SOFTWARE IS PROVIDED BY Mark Tarver ''AS IS'' AND ANY+EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED+WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE+DISCLAIMED. IN NO EVENT SHALL Mark Tarver BE LIABLE FOR ANY+DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES+(INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;+LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND+ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT+(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS+SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.+-}++kl_thaw :: Core.Types.KLValue ->+           Core.Types.KLContext Core.Types.Env Core.Types.KLValue+kl_thaw (!kl_V2632) = do applyWrapper kl_V2632 []++kl_eval :: Core.Types.KLValue ->+           Core.Types.KLContext Core.Types.Env Core.Types.KLValue+kl_eval (!kl_V2634) = do let !appl_0 = ApplC (Func "lambda" (Context (\(!kl_Macroexpand) -> do !kl_if_1 <- kl_Macroexpand `pseq` kl_shen_packagedP kl_Macroexpand+                                                                                               case kl_if_1 of+                                                                                                   Atom (B (True)) -> do let !appl_2 = ApplC (Func "lambda" (Context (\(!kl_Z) -> do kl_Z `pseq` kl_shen_eval_without_macros kl_Z)))+                                                                                                                         !appl_3 <- kl_Macroexpand `pseq` kl_shen_package_contents kl_Macroexpand+                                                                                                                         appl_2 `pseq` (appl_3 `pseq` kl_map appl_2 appl_3)+                                                                                                   Atom (B (False)) -> do do kl_Macroexpand `pseq` kl_shen_eval_without_macros kl_Macroexpand+                                                                                                   _ -> throwError "if: expected boolean")))+                         let !appl_4 = ApplC (Func "lambda" (Context (\(!kl_Y) -> do let !aw_5 = Core.Types.Atom (Core.Types.UnboundSym "macroexpand")+                                                                                     kl_Y `pseq` applyWrapper aw_5 [kl_Y])))+                         !appl_6 <- appl_4 `pseq` (kl_V2634 `pseq` kl_shen_walk appl_4 kl_V2634)+                         appl_6 `pseq` applyWrapper appl_0 [appl_6]++kl_shen_eval_without_macros :: Core.Types.KLValue ->+                               Core.Types.KLContext Core.Types.Env Core.Types.KLValue+kl_shen_eval_without_macros (!kl_V2636) = do !appl_0 <- kl_V2636 `pseq` kl_shen_proc_inputPlus kl_V2636+                                             !appl_1 <- appl_0 `pseq` kl_shen_elim_def appl_0+                                             appl_1 `pseq` evalKL appl_1++kl_shen_proc_inputPlus :: Core.Types.KLValue ->+                          Core.Types.KLContext Core.Types.Env Core.Types.KLValue+kl_shen_proc_inputPlus (!kl_V2638) = do !kl_if_0 <- let pat_cond_1 kl_V2638 kl_V2638h kl_V2638t = do !kl_if_2 <- let pat_cond_3 = do !kl_if_4 <- let pat_cond_5 kl_V2638t kl_V2638th kl_V2638tt = do !kl_if_6 <- let pat_cond_7 kl_V2638tt kl_V2638tth kl_V2638ttt = do let !appl_8 = Atom Nil+                                                                                                                                                                                                                                                                        !kl_if_9 <- appl_8 `pseq` (kl_V2638ttt `pseq` eq appl_8 kl_V2638ttt)+                                                                                                                                                                                                                                                                        case kl_if_9 of+                                                                                                                                                                                                                                                                            Atom (B (True)) -> do return (Atom (B True))+                                                                                                                                                                                                                                                                            Atom (B (False)) -> do do return (Atom (B False))+                                                                                                                                                                                                                                                                            _ -> throwError "if: expected boolean"+                                                                                                                                                                                                                     pat_cond_10 = do do return (Atom (B False))+                                                                                                                                                                                                                  in case kl_V2638tt of+                                                                                                                                                                                                                         !(kl_V2638tt@(Cons (!kl_V2638tth)+                                                                                                                                                                                                                                            (!kl_V2638ttt))) -> pat_cond_7 kl_V2638tt kl_V2638tth kl_V2638ttt+                                                                                                                                                                                                                         _ -> pat_cond_10+                                                                                                                                                                                                     case kl_if_6 of+                                                                                                                                                                                                         Atom (B (True)) -> do return (Atom (B True))+                                                                                                                                                                                                         Atom (B (False)) -> do do return (Atom (B False))+                                                                                                                                                                                                         _ -> throwError "if: expected boolean"+                                                                                                                                                     pat_cond_11 = do do return (Atom (B False))+                                                                                                                                                  in case kl_V2638t of+                                                                                                                                                         !(kl_V2638t@(Cons (!kl_V2638th)+                                                                                                                                                                           (!kl_V2638tt))) -> pat_cond_5 kl_V2638t kl_V2638th kl_V2638tt+                                                                                                                                                         _ -> pat_cond_11+                                                                                                                                     case kl_if_4 of+                                                                                                                                         Atom (B (True)) -> do return (Atom (B True))+                                                                                                                                         Atom (B (False)) -> do do return (Atom (B False))+                                                                                                                                         _ -> throwError "if: expected boolean"+                                                                                                                     pat_cond_12 = do do return (Atom (B False))+                                                                                                                  in case kl_V2638h of+                                                                                                                         kl_V2638h@(Atom (UnboundSym "input+")) -> pat_cond_3+                                                                                                                         kl_V2638h@(ApplC (PL "input+"+                                                                                                                                              _)) -> pat_cond_3+                                                                                                                         kl_V2638h@(ApplC (Func "input+"+                                                                                                                                                _)) -> pat_cond_3+                                                                                                                         _ -> pat_cond_12+                                                                                                     case kl_if_2 of+                                                                                                         Atom (B (True)) -> do return (Atom (B True))+                                                                                                         Atom (B (False)) -> do do return (Atom (B False))+                                                                                                         _ -> throwError "if: expected boolean"+                                                        pat_cond_13 = do do return (Atom (B False))+                                                     in case kl_V2638 of+                                                            !(kl_V2638@(Cons (!kl_V2638h)+                                                                             (!kl_V2638t))) -> pat_cond_1 kl_V2638 kl_V2638h kl_V2638t+                                                            _ -> pat_cond_13+                                        case kl_if_0 of+                                            Atom (B (True)) -> do !appl_14 <- kl_V2638 `pseq` tl kl_V2638+                                                                  !appl_15 <- appl_14 `pseq` hd appl_14+                                                                  let !aw_16 = Core.Types.Atom (Core.Types.UnboundSym "shen.rcons_form")+                                                                  !appl_17 <- appl_15 `pseq` applyWrapper aw_16 [appl_15]+                                                                  !appl_18 <- kl_V2638 `pseq` tl kl_V2638+                                                                  !appl_19 <- appl_18 `pseq` tl appl_18+                                                                  !appl_20 <- appl_17 `pseq` (appl_19 `pseq` klCons appl_17 appl_19)+                                                                  appl_20 `pseq` klCons (Core.Types.Atom (Core.Types.UnboundSym "input+")) appl_20+                                            Atom (B (False)) -> do !kl_if_21 <- let pat_cond_22 kl_V2638 kl_V2638h kl_V2638t = do !kl_if_23 <- let pat_cond_24 = do !kl_if_25 <- let pat_cond_26 kl_V2638t kl_V2638th kl_V2638tt = do !kl_if_27 <- let pat_cond_28 kl_V2638tt kl_V2638tth kl_V2638ttt = do let !appl_29 = Atom Nil+                                                                                                                                                                                                                                                                                                           !kl_if_30 <- appl_29 `pseq` (kl_V2638ttt `pseq` eq appl_29 kl_V2638ttt)+                                                                                                                                                                                                                                                                                                           case kl_if_30 of+                                                                                                                                                                                                                                                                                                               Atom (B (True)) -> do return (Atom (B True))+                                                                                                                                                                                                                                                                                                               Atom (B (False)) -> do do return (Atom (B False))+                                                                                                                                                                                                                                                                                                               _ -> throwError "if: expected boolean"+                                                                                                                                                                                                                                                       pat_cond_31 = do do return (Atom (B False))+                                                                                                                                                                                                                                                    in case kl_V2638tt of+                                                                                                                                                                                                                                                           !(kl_V2638tt@(Cons (!kl_V2638tth)+                                                                                                                                                                                                                                                                              (!kl_V2638ttt))) -> pat_cond_28 kl_V2638tt kl_V2638tth kl_V2638ttt+                                                                                                                                                                                                                                                           _ -> pat_cond_31+                                                                                                                                                                                                                                      case kl_if_27 of+                                                                                                                                                                                                                                          Atom (B (True)) -> do return (Atom (B True))+                                                                                                                                                                                                                                          Atom (B (False)) -> do do return (Atom (B False))+                                                                                                                                                                                                                                          _ -> throwError "if: expected boolean"+                                                                                                                                                                                     pat_cond_32 = do do return (Atom (B False))+                                                                                                                                                                                  in case kl_V2638t of+                                                                                                                                                                                         !(kl_V2638t@(Cons (!kl_V2638th)+                                                                                                                                                                                                           (!kl_V2638tt))) -> pat_cond_26 kl_V2638t kl_V2638th kl_V2638tt+                                                                                                                                                                                         _ -> pat_cond_32+                                                                                                                                                                    case kl_if_25 of+                                                                                                                                                                        Atom (B (True)) -> do return (Atom (B True))+                                                                                                                                                                        Atom (B (False)) -> do do return (Atom (B False))+                                                                                                                                                                        _ -> throwError "if: expected boolean"+                                                                                                                                                   pat_cond_33 = do do return (Atom (B False))+                                                                                                                                                in case kl_V2638h of+                                                                                                                                                       kl_V2638h@(Atom (UnboundSym "shen.read+")) -> pat_cond_24+                                                                                                                                                       kl_V2638h@(ApplC (PL "shen.read+"+                                                                                                                                                                            _)) -> pat_cond_24+                                                                                                                                                       kl_V2638h@(ApplC (Func "shen.read+"+                                                                                                                                                                              _)) -> pat_cond_24+                                                                                                                                                       _ -> pat_cond_33+                                                                                                                                  case kl_if_23 of+                                                                                                                                      Atom (B (True)) -> do return (Atom (B True))+                                                                                                                                      Atom (B (False)) -> do do return (Atom (B False))+                                                                                                                                      _ -> throwError "if: expected boolean"+                                                                                    pat_cond_34 = do do return (Atom (B False))+                                                                                 in case kl_V2638 of+                                                                                        !(kl_V2638@(Cons (!kl_V2638h)+                                                                                                         (!kl_V2638t))) -> pat_cond_22 kl_V2638 kl_V2638h kl_V2638t+                                                                                        _ -> pat_cond_34+                                                                   case kl_if_21 of+                                                                       Atom (B (True)) -> do !appl_35 <- kl_V2638 `pseq` tl kl_V2638+                                                                                             !appl_36 <- appl_35 `pseq` hd appl_35+                                                                                             let !aw_37 = Core.Types.Atom (Core.Types.UnboundSym "shen.rcons_form")+                                                                                             !appl_38 <- appl_36 `pseq` applyWrapper aw_37 [appl_36]+                                                                                             !appl_39 <- kl_V2638 `pseq` tl kl_V2638+                                                                                             !appl_40 <- appl_39 `pseq` tl appl_39+                                                                                             !appl_41 <- appl_38 `pseq` (appl_40 `pseq` klCons appl_38 appl_40)+                                                                                             appl_41 `pseq` klCons (Core.Types.Atom (Core.Types.UnboundSym "shen.read+")) appl_41+                                                                       Atom (B (False)) -> do let pat_cond_42 kl_V2638 kl_V2638h kl_V2638t = do let !appl_43 = ApplC (Func "lambda" (Context (\(!kl_Z) -> do kl_Z `pseq` kl_shen_proc_inputPlus kl_Z)))+                                                                                                                                                appl_43 `pseq` (kl_V2638 `pseq` kl_map appl_43 kl_V2638)+                                                                                                  pat_cond_44 = do do return kl_V2638+                                                                                               in case kl_V2638 of+                                                                                                      !(kl_V2638@(Cons (!kl_V2638h)+                                                                                                                       (!kl_V2638t))) -> pat_cond_42 kl_V2638 kl_V2638h kl_V2638t+                                                                                                      _ -> pat_cond_44+                                                                       _ -> throwError "if: expected boolean"+                                            _ -> throwError "if: expected boolean"++kl_shen_elim_def :: Core.Types.KLValue ->+                    Core.Types.KLContext Core.Types.Env Core.Types.KLValue+kl_shen_elim_def (!kl_V2640) = do let pat_cond_0 kl_V2640 kl_V2640t kl_V2640th kl_V2640tt = do kl_V2640th `pseq` (kl_V2640tt `pseq` kl_shen_RBkl kl_V2640th kl_V2640tt)+                                      pat_cond_1 kl_V2640 kl_V2640t kl_V2640th kl_V2640tt = do let !appl_2 = ApplC (Func "lambda" (Context (\(!kl_Default) -> do let !appl_3 = ApplC (Func "lambda" (Context (\(!kl_Def) -> do let !appl_4 = ApplC (Func "lambda" (Context (\(!kl_MacroAdd) -> do return kl_Def)))+                                                                                                                                                                                                                               !appl_5 <- kl_V2640th `pseq` kl_shen_add_macro kl_V2640th+                                                                                                                                                                                                                               appl_5 `pseq` applyWrapper appl_4 [appl_5])))+                                                                                                                                                                 !appl_6 <- kl_V2640tt `pseq` (kl_Default `pseq` kl_append kl_V2640tt kl_Default)+                                                                                                                                                                 !appl_7 <- kl_V2640th `pseq` (appl_6 `pseq` klCons kl_V2640th appl_6)+                                                                                                                                                                 !appl_8 <- appl_7 `pseq` klCons (Core.Types.Atom (Core.Types.UnboundSym "define")) appl_7+                                                                                                                                                                 !appl_9 <- appl_8 `pseq` kl_shen_elim_def appl_8+                                                                                                                                                                 appl_9 `pseq` applyWrapper appl_3 [appl_9])))+                                                                                               let !appl_10 = Atom Nil+                                                                                               !appl_11 <- appl_10 `pseq` klCons (Core.Types.Atom (Core.Types.UnboundSym "X")) appl_10+                                                                                               !appl_12 <- appl_11 `pseq` klCons (Core.Types.Atom (Core.Types.UnboundSym "->")) appl_11+                                                                                               !appl_13 <- appl_12 `pseq` klCons (Core.Types.Atom (Core.Types.UnboundSym "X")) appl_12+                                                                                               appl_13 `pseq` applyWrapper appl_2 [appl_13]+                                      pat_cond_14 kl_V2640 kl_V2640t kl_V2640th kl_V2640tt = do let !aw_15 = Core.Types.Atom (Core.Types.UnboundSym "shen.yacc")+                                                                                                !appl_16 <- kl_V2640 `pseq` applyWrapper aw_15 [kl_V2640]+                                                                                                appl_16 `pseq` kl_shen_elim_def appl_16+                                      pat_cond_17 kl_V2640 kl_V2640h kl_V2640t = do let !appl_18 = ApplC (Func "lambda" (Context (\(!kl_Z) -> do kl_Z `pseq` kl_shen_elim_def kl_Z)))+                                                                                    appl_18 `pseq` (kl_V2640 `pseq` kl_map appl_18 kl_V2640)+                                      pat_cond_19 = do do return kl_V2640+                                   in case kl_V2640 of+                                          !(kl_V2640@(Cons (Atom (UnboundSym "define"))+                                                           (!(kl_V2640t@(Cons (!kl_V2640th)+                                                                              (!kl_V2640tt)))))) -> pat_cond_0 kl_V2640 kl_V2640t kl_V2640th kl_V2640tt+                                          !(kl_V2640@(Cons (ApplC (PL "define" _))+                                                           (!(kl_V2640t@(Cons (!kl_V2640th)+                                                                              (!kl_V2640tt)))))) -> pat_cond_0 kl_V2640 kl_V2640t kl_V2640th kl_V2640tt+                                          !(kl_V2640@(Cons (ApplC (Func "define" _))+                                                           (!(kl_V2640t@(Cons (!kl_V2640th)+                                                                              (!kl_V2640tt)))))) -> pat_cond_0 kl_V2640 kl_V2640t kl_V2640th kl_V2640tt+                                          !(kl_V2640@(Cons (Atom (UnboundSym "defmacro"))+                                                           (!(kl_V2640t@(Cons (!kl_V2640th)+                                                                              (!kl_V2640tt)))))) -> pat_cond_1 kl_V2640 kl_V2640t kl_V2640th kl_V2640tt+                                          !(kl_V2640@(Cons (ApplC (PL "defmacro" _))+                                                           (!(kl_V2640t@(Cons (!kl_V2640th)+                                                                              (!kl_V2640tt)))))) -> pat_cond_1 kl_V2640 kl_V2640t kl_V2640th kl_V2640tt+                                          !(kl_V2640@(Cons (ApplC (Func "defmacro" _))+                                                           (!(kl_V2640t@(Cons (!kl_V2640th)+                                                                              (!kl_V2640tt)))))) -> pat_cond_1 kl_V2640 kl_V2640t kl_V2640th kl_V2640tt+                                          !(kl_V2640@(Cons (Atom (UnboundSym "defcc"))+                                                           (!(kl_V2640t@(Cons (!kl_V2640th)+                                                                              (!kl_V2640tt)))))) -> pat_cond_14 kl_V2640 kl_V2640t kl_V2640th kl_V2640tt+                                          !(kl_V2640@(Cons (ApplC (PL "defcc" _))+                                                           (!(kl_V2640t@(Cons (!kl_V2640th)+                                                                              (!kl_V2640tt)))))) -> pat_cond_14 kl_V2640 kl_V2640t kl_V2640th kl_V2640tt+                                          !(kl_V2640@(Cons (ApplC (Func "defcc" _))+                                                           (!(kl_V2640t@(Cons (!kl_V2640th)+                                                                              (!kl_V2640tt)))))) -> pat_cond_14 kl_V2640 kl_V2640t kl_V2640th kl_V2640tt+                                          !(kl_V2640@(Cons (!kl_V2640h)+                                                           (!kl_V2640t))) -> pat_cond_17 kl_V2640 kl_V2640h kl_V2640t+                                          _ -> pat_cond_19++kl_shen_add_macro :: Core.Types.KLValue ->+                     Core.Types.KLContext Core.Types.Env Core.Types.KLValue+kl_shen_add_macro (!kl_V2642) = do let !appl_0 = ApplC (Func "lambda" (Context (\(!kl_MacroReg) -> do let !appl_1 = ApplC (Func "lambda" (Context (\(!kl_NewMacroReg) -> do !kl_if_2 <- kl_MacroReg `pseq` (kl_NewMacroReg `pseq` eq kl_MacroReg kl_NewMacroReg)+                                                                                                                                                                            case kl_if_2 of+                                                                                                                                                                                Atom (B (True)) -> do return (Core.Types.Atom (Core.Types.UnboundSym "shen.skip"))+                                                                                                                                                                                Atom (B (False)) -> do do !appl_3 <- kl_V2642 `pseq` kl_function kl_V2642+                                                                                                                                                                                                          !appl_4 <- value (Core.Types.Atom (Core.Types.UnboundSym "*macros*"))+                                                                                                                                                                                                          !appl_5 <- appl_3 `pseq` (appl_4 `pseq` klCons appl_3 appl_4)+                                                                                                                                                                                                          appl_5 `pseq` klSet (Core.Types.Atom (Core.Types.UnboundSym "*macros*")) appl_5+                                                                                                                                                                                _ -> throwError "if: expected boolean")))+                                                                                                      !appl_6 <- value (Core.Types.Atom (Core.Types.UnboundSym "shen.*macroreg*"))+                                                                                                      let !aw_7 = Core.Types.Atom (Core.Types.UnboundSym "adjoin")+                                                                                                      !appl_8 <- kl_V2642 `pseq` (appl_6 `pseq` applyWrapper aw_7 [kl_V2642,+                                                                                                                                                                   appl_6])+                                                                                                      !appl_9 <- appl_8 `pseq` klSet (Core.Types.Atom (Core.Types.UnboundSym "shen.*macroreg*")) appl_8+                                                                                                      appl_9 `pseq` applyWrapper appl_1 [appl_9])))+                                   !appl_10 <- value (Core.Types.Atom (Core.Types.UnboundSym "shen.*macroreg*"))+                                   appl_10 `pseq` applyWrapper appl_0 [appl_10]++kl_shen_packagedP :: Core.Types.KLValue ->+                     Core.Types.KLContext Core.Types.Env Core.Types.KLValue+kl_shen_packagedP (!kl_V2650) = do let pat_cond_0 kl_V2650 kl_V2650t kl_V2650th kl_V2650tt kl_V2650tth kl_V2650ttt = do return (Atom (B True))+                                       pat_cond_1 = do do return (Atom (B False))+                                    in case kl_V2650 of+                                           !(kl_V2650@(Cons (Atom (UnboundSym "package"))+                                                            (!(kl_V2650t@(Cons (!kl_V2650th)+                                                                               (!(kl_V2650tt@(Cons (!kl_V2650tth)+                                                                                                   (!kl_V2650ttt))))))))) -> pat_cond_0 kl_V2650 kl_V2650t kl_V2650th kl_V2650tt kl_V2650tth kl_V2650ttt+                                           !(kl_V2650@(Cons (ApplC (PL "package" _))+                                                            (!(kl_V2650t@(Cons (!kl_V2650th)+                                                                               (!(kl_V2650tt@(Cons (!kl_V2650tth)+                                                                                                   (!kl_V2650ttt))))))))) -> pat_cond_0 kl_V2650 kl_V2650t kl_V2650th kl_V2650tt kl_V2650tth kl_V2650ttt+                                           !(kl_V2650@(Cons (ApplC (Func "package" _))+                                                            (!(kl_V2650t@(Cons (!kl_V2650th)+                                                                               (!(kl_V2650tt@(Cons (!kl_V2650tth)+                                                                                                   (!kl_V2650ttt))))))))) -> pat_cond_0 kl_V2650 kl_V2650t kl_V2650th kl_V2650tt kl_V2650tth kl_V2650ttt+                                           _ -> pat_cond_1++kl_external :: Core.Types.KLValue ->+               Core.Types.KLContext Core.Types.Env Core.Types.KLValue+kl_external (!kl_V2652) = do let !appl_0 = ApplC (PL "thunk" (do let !aw_1 = Core.Types.Atom (Core.Types.UnboundSym "shen.app")+                                                                 !appl_2 <- kl_V2652 `pseq` applyWrapper aw_1 [kl_V2652,+                                                                                                               Core.Types.Atom (Core.Types.Str " has not been used.\n"),+                                                                                                               Core.Types.Atom (Core.Types.UnboundSym "shen.a")]+                                                                 !appl_3 <- appl_2 `pseq` cn (Core.Types.Atom (Core.Types.Str "package ")) appl_2+                                                                 appl_3 `pseq` simpleError appl_3))+                             !appl_4 <- value (Core.Types.Atom (Core.Types.UnboundSym "*property-vector*"))+                             kl_V2652 `pseq` (appl_0 `pseq` (appl_4 `pseq` kl_getDivor kl_V2652 (Core.Types.Atom (Core.Types.UnboundSym "shen.external-symbols")) appl_0 appl_4))++kl_internal :: Core.Types.KLValue ->+               Core.Types.KLContext Core.Types.Env Core.Types.KLValue+kl_internal (!kl_V2654) = do let !appl_0 = ApplC (PL "thunk" (do let !aw_1 = Core.Types.Atom (Core.Types.UnboundSym "shen.app")+                                                                 !appl_2 <- kl_V2654 `pseq` applyWrapper aw_1 [kl_V2654,+                                                                                                               Core.Types.Atom (Core.Types.Str " has not been used.\n"),+                                                                                                               Core.Types.Atom (Core.Types.UnboundSym "shen.a")]+                                                                 !appl_3 <- appl_2 `pseq` cn (Core.Types.Atom (Core.Types.Str "package ")) appl_2+                                                                 appl_3 `pseq` simpleError appl_3))+                             !appl_4 <- value (Core.Types.Atom (Core.Types.UnboundSym "*property-vector*"))+                             kl_V2654 `pseq` (appl_0 `pseq` (appl_4 `pseq` kl_getDivor kl_V2654 (Core.Types.Atom (Core.Types.UnboundSym "shen.internal-symbols")) appl_0 appl_4))++kl_shen_package_contents :: Core.Types.KLValue ->+                            Core.Types.KLContext Core.Types.Env Core.Types.KLValue+kl_shen_package_contents (!kl_V2658) = do let pat_cond_0 kl_V2658 kl_V2658t kl_V2658tt kl_V2658tth kl_V2658ttt = do return kl_V2658ttt+                                              pat_cond_1 kl_V2658 kl_V2658t kl_V2658th kl_V2658tt kl_V2658tth kl_V2658ttt = do let !aw_2 = Core.Types.Atom (Core.Types.UnboundSym "shen.packageh")+                                                                                                                               kl_V2658th `pseq` (kl_V2658tth `pseq` (kl_V2658ttt `pseq` applyWrapper aw_2 [kl_V2658th,+                                                                                                                                                                                                            kl_V2658tth,+                                                                                                                                                                                                            kl_V2658ttt]))+                                              pat_cond_3 = do do let !aw_4 = Core.Types.Atom (Core.Types.UnboundSym "shen.f_error")+                                                                 applyWrapper aw_4 [ApplC (wrapNamed "shen.package-contents" kl_shen_package_contents)]+                                           in case kl_V2658 of+                                                  !(kl_V2658@(Cons (Atom (UnboundSym "package"))+                                                                   (!(kl_V2658t@(Cons (Atom (UnboundSym "null"))+                                                                                      (!(kl_V2658tt@(Cons (!kl_V2658tth)+                                                                                                          (!kl_V2658ttt))))))))) -> pat_cond_0 kl_V2658 kl_V2658t kl_V2658tt kl_V2658tth kl_V2658ttt+                                                  !(kl_V2658@(Cons (Atom (UnboundSym "package"))+                                                                   (!(kl_V2658t@(Cons (ApplC (PL "null"+                                                                                                 _))+                                                                                      (!(kl_V2658tt@(Cons (!kl_V2658tth)+                                                                                                          (!kl_V2658ttt))))))))) -> pat_cond_0 kl_V2658 kl_V2658t kl_V2658tt kl_V2658tth kl_V2658ttt+                                                  !(kl_V2658@(Cons (Atom (UnboundSym "package"))+                                                                   (!(kl_V2658t@(Cons (ApplC (Func "null"+                                                                                                   _))+                                                                                      (!(kl_V2658tt@(Cons (!kl_V2658tth)+                                                                                                          (!kl_V2658ttt))))))))) -> pat_cond_0 kl_V2658 kl_V2658t kl_V2658tt kl_V2658tth kl_V2658ttt+                                                  !(kl_V2658@(Cons (ApplC (PL "package" _))+                                                                   (!(kl_V2658t@(Cons (Atom (UnboundSym "null"))+                                                                                      (!(kl_V2658tt@(Cons (!kl_V2658tth)+                                                                                                          (!kl_V2658ttt))))))))) -> pat_cond_0 kl_V2658 kl_V2658t kl_V2658tt kl_V2658tth kl_V2658ttt+                                                  !(kl_V2658@(Cons (ApplC (PL "package" _))+                                                                   (!(kl_V2658t@(Cons (ApplC (PL "null"+                                                                                                 _))+                                                                                      (!(kl_V2658tt@(Cons (!kl_V2658tth)+                                                                                                          (!kl_V2658ttt))))))))) -> pat_cond_0 kl_V2658 kl_V2658t kl_V2658tt kl_V2658tth kl_V2658ttt+                                                  !(kl_V2658@(Cons (ApplC (PL "package" _))+                                                                   (!(kl_V2658t@(Cons (ApplC (Func "null"+                                                                                                   _))+                                                                                      (!(kl_V2658tt@(Cons (!kl_V2658tth)+                                                                                                          (!kl_V2658ttt))))))))) -> pat_cond_0 kl_V2658 kl_V2658t kl_V2658tt kl_V2658tth kl_V2658ttt+                                                  !(kl_V2658@(Cons (ApplC (Func "package" _))+                                                                   (!(kl_V2658t@(Cons (Atom (UnboundSym "null"))+                                                                                      (!(kl_V2658tt@(Cons (!kl_V2658tth)+                                                                                                          (!kl_V2658ttt))))))))) -> pat_cond_0 kl_V2658 kl_V2658t kl_V2658tt kl_V2658tth kl_V2658ttt+                                                  !(kl_V2658@(Cons (ApplC (Func "package" _))+                                                                   (!(kl_V2658t@(Cons (ApplC (PL "null"+                                                                                                 _))+                                                                                      (!(kl_V2658tt@(Cons (!kl_V2658tth)+                                                                                                          (!kl_V2658ttt))))))))) -> pat_cond_0 kl_V2658 kl_V2658t kl_V2658tt kl_V2658tth kl_V2658ttt+                                                  !(kl_V2658@(Cons (ApplC (Func "package" _))+                                                                   (!(kl_V2658t@(Cons (ApplC (Func "null"+                                                                                                   _))+                                                                                      (!(kl_V2658tt@(Cons (!kl_V2658tth)+                                                                                                          (!kl_V2658ttt))))))))) -> pat_cond_0 kl_V2658 kl_V2658t kl_V2658tt kl_V2658tth kl_V2658ttt+                                                  !(kl_V2658@(Cons (Atom (UnboundSym "package"))+                                                                   (!(kl_V2658t@(Cons (!kl_V2658th)+                                                                                      (!(kl_V2658tt@(Cons (!kl_V2658tth)+                                                                                                          (!kl_V2658ttt))))))))) -> pat_cond_1 kl_V2658 kl_V2658t kl_V2658th kl_V2658tt kl_V2658tth kl_V2658ttt+                                                  !(kl_V2658@(Cons (ApplC (PL "package" _))+                                                                   (!(kl_V2658t@(Cons (!kl_V2658th)+                                                                                      (!(kl_V2658tt@(Cons (!kl_V2658tth)+                                                                                                          (!kl_V2658ttt))))))))) -> pat_cond_1 kl_V2658 kl_V2658t kl_V2658th kl_V2658tt kl_V2658tth kl_V2658ttt+                                                  !(kl_V2658@(Cons (ApplC (Func "package" _))+                                                                   (!(kl_V2658t@(Cons (!kl_V2658th)+                                                                                      (!(kl_V2658tt@(Cons (!kl_V2658tth)+                                                                                                          (!kl_V2658ttt))))))))) -> pat_cond_1 kl_V2658 kl_V2658t kl_V2658th kl_V2658tt kl_V2658tth kl_V2658ttt+                                                  _ -> pat_cond_3++kl_shen_walk :: Core.Types.KLValue ->+                Core.Types.KLValue ->+                Core.Types.KLContext Core.Types.Env Core.Types.KLValue+kl_shen_walk (!kl_V2661) (!kl_V2662) = do let pat_cond_0 kl_V2662 kl_V2662h kl_V2662t = do let !appl_1 = ApplC (Func "lambda" (Context (\(!kl_Z) -> do kl_V2661 `pseq` (kl_Z `pseq` kl_shen_walk kl_V2661 kl_Z))))+                                                                                           !appl_2 <- appl_1 `pseq` (kl_V2662 `pseq` kl_map appl_1 kl_V2662)+                                                                                           appl_2 `pseq` applyWrapper kl_V2661 [appl_2]+                                              pat_cond_3 = do do kl_V2662 `pseq` applyWrapper kl_V2661 [kl_V2662]+                                           in case kl_V2662 of+                                                  !(kl_V2662@(Cons (!kl_V2662h)+                                                                   (!kl_V2662t))) -> pat_cond_0 kl_V2662 kl_V2662h kl_V2662t+                                                  _ -> pat_cond_3++kl_compile :: Core.Types.KLValue ->+              Core.Types.KLValue ->+              Core.Types.KLValue ->+              Core.Types.KLContext Core.Types.Env Core.Types.KLValue+kl_compile (!kl_V2666) (!kl_V2667) (!kl_V2668) = do let !appl_0 = ApplC (Func "lambda" (Context (\(!kl_O) -> do let !aw_1 = Core.Types.Atom (Core.Types.UnboundSym "fail")+                                                                                                                !appl_2 <- applyWrapper aw_1 []+                                                                                                                !kl_if_3 <- appl_2 `pseq` (kl_O `pseq` eq appl_2 kl_O)+                                                                                                                !kl_if_4 <- case kl_if_3 of+                                                                                                                                Atom (B (True)) -> do return (Atom (B True))+                                                                                                                                Atom (B (False)) -> do do !appl_5 <- kl_O `pseq` hd kl_O+                                                                                                                                                          !appl_6 <- appl_5 `pseq` kl_emptyP appl_5+                                                                                                                                                          !kl_if_7 <- appl_6 `pseq` kl_not appl_6+                                                                                                                                                          case kl_if_7 of+                                                                                                                                                              Atom (B (True)) -> do return (Atom (B True))+                                                                                                                                                              Atom (B (False)) -> do do return (Atom (B False))+                                                                                                                                                              _ -> throwError "if: expected boolean"+                                                                                                                                _ -> throwError "if: expected boolean"+                                                                                                                case kl_if_4 of+                                                                                                                    Atom (B (True)) -> do kl_O `pseq` applyWrapper kl_V2668 [kl_O]+                                                                                                                    Atom (B (False)) -> do do let !aw_8 = Core.Types.Atom (Core.Types.UnboundSym "shen.hdtl")+                                                                                                                                              kl_O `pseq` applyWrapper aw_8 [kl_O]+                                                                                                                    _ -> throwError "if: expected boolean")))+                                                    let !appl_9 = Atom Nil+                                                    let !appl_10 = Atom Nil+                                                    !appl_11 <- appl_9 `pseq` (appl_10 `pseq` klCons appl_9 appl_10)+                                                    !appl_12 <- kl_V2667 `pseq` (appl_11 `pseq` klCons kl_V2667 appl_11)+                                                    !appl_13 <- appl_12 `pseq` applyWrapper kl_V2666 [appl_12]+                                                    appl_13 `pseq` applyWrapper appl_0 [appl_13]++kl_fail_if :: Core.Types.KLValue ->+              Core.Types.KLValue ->+              Core.Types.KLContext Core.Types.Env Core.Types.KLValue+kl_fail_if (!kl_V2671) (!kl_V2672) = do !kl_if_0 <- kl_V2672 `pseq` applyWrapper kl_V2671 [kl_V2672]+                                        case kl_if_0 of+                                            Atom (B (True)) -> do let !aw_1 = Core.Types.Atom (Core.Types.UnboundSym "fail")+                                                                  applyWrapper aw_1 []+                                            Atom (B (False)) -> do do return kl_V2672+                                            _ -> throwError "if: expected boolean"++kl_Ats :: Core.Types.KLValue ->+          Core.Types.KLValue ->+          Core.Types.KLContext Core.Types.Env Core.Types.KLValue+kl_Ats (!kl_V2675) (!kl_V2676) = do kl_V2675 `pseq` (kl_V2676 `pseq` cn kl_V2675 kl_V2676)++kl_tcP :: Core.Types.KLContext Core.Types.Env Core.Types.KLValue+kl_tcP = do value (Core.Types.Atom (Core.Types.UnboundSym "shen.*tc*"))++kl_ps :: Core.Types.KLValue ->+         Core.Types.KLContext Core.Types.Env Core.Types.KLValue+kl_ps (!kl_V2678) = do let !appl_0 = ApplC (PL "thunk" (do let !aw_1 = Core.Types.Atom (Core.Types.UnboundSym "shen.app")+                                                           !appl_2 <- kl_V2678 `pseq` applyWrapper aw_1 [kl_V2678,+                                                                                                         Core.Types.Atom (Core.Types.Str " not found.\n"),+                                                                                                         Core.Types.Atom (Core.Types.UnboundSym "shen.a")]+                                                           appl_2 `pseq` simpleError appl_2))+                       !appl_3 <- value (Core.Types.Atom (Core.Types.UnboundSym "*property-vector*"))+                       kl_V2678 `pseq` (appl_0 `pseq` (appl_3 `pseq` kl_getDivor kl_V2678 (Core.Types.Atom (Core.Types.UnboundSym "shen.source")) appl_0 appl_3))++kl_stinput :: Core.Types.KLContext Core.Types.Env+                                   Core.Types.KLValue+kl_stinput = do value (Core.Types.Atom (Core.Types.UnboundSym "*stinput*"))++kl_LB_addressDivor :: Core.Types.KLValue ->+                      Core.Types.KLValue ->+                      Core.Types.KLValue ->+                      Core.Types.KLContext Core.Types.Env Core.Types.KLValue+kl_LB_addressDivor (!kl_V2682) (!kl_V2683) (!kl_V2684) = do (do kl_V2682 `pseq` (kl_V2683 `pseq` addressFrom kl_V2682 kl_V2683)) `catchError` (\(!kl_E) -> do kl_V2684 `pseq` kl_thaw kl_V2684)++kl_valueDivor :: Core.Types.KLValue ->+                 Core.Types.KLValue ->+                 Core.Types.KLContext Core.Types.Env Core.Types.KLValue+kl_valueDivor (!kl_V2687) (!kl_V2688) = do (do kl_V2687 `pseq` value kl_V2687) `catchError` (\(!kl_E) -> do kl_V2688 `pseq` kl_thaw kl_V2688)++kl_vector :: Core.Types.KLValue ->+             Core.Types.KLContext Core.Types.Env Core.Types.KLValue+kl_vector (!kl_V2690) = do let !appl_0 = ApplC (Func "lambda" (Context (\(!kl_Vector) -> do let !appl_1 = ApplC (Func "lambda" (Context (\(!kl_ZeroStamp) -> do let !appl_2 = ApplC (Func "lambda" (Context (\(!kl_Standard) -> do return kl_Standard)))+                                                                                                                                                                !appl_3 <- let pat_cond_4 = do return kl_ZeroStamp+                                                                                                                                                                               pat_cond_5 = do do let !aw_6 = Core.Types.Atom (Core.Types.UnboundSym "fail")+                                                                                                                                                                                                  !appl_7 <- applyWrapper aw_6 []+                                                                                                                                                                                                  kl_ZeroStamp `pseq` (kl_V2690 `pseq` (appl_7 `pseq` kl_shen_fillvector kl_ZeroStamp (Core.Types.Atom (Core.Types.N (Core.Types.KI 1))) kl_V2690 appl_7))+                                                                                                                                                                            in case kl_V2690 of+                                                                                                                                                                                   kl_V2690@(Atom (N (KI 0))) -> pat_cond_4+                                                                                                                                                                                   _ -> pat_cond_5+                                                                                                                                                                appl_3 `pseq` applyWrapper appl_2 [appl_3])))+                                                                                            !appl_8 <- kl_Vector `pseq` (kl_V2690 `pseq` addressTo kl_Vector (Core.Types.Atom (Core.Types.N (Core.Types.KI 0))) kl_V2690)+                                                                                            appl_8 `pseq` applyWrapper appl_1 [appl_8])))+                           !appl_9 <- kl_V2690 `pseq` add kl_V2690 (Core.Types.Atom (Core.Types.N (Core.Types.KI 1)))+                           !appl_10 <- appl_9 `pseq` absvector appl_9+                           appl_10 `pseq` applyWrapper appl_0 [appl_10]++kl_shen_fillvector :: Core.Types.KLValue ->+                      Core.Types.KLValue ->+                      Core.Types.KLValue ->+                      Core.Types.KLValue ->+                      Core.Types.KLContext Core.Types.Env Core.Types.KLValue+kl_shen_fillvector (!kl_V2696) (!kl_V2697) (!kl_V2698) (!kl_V2699) = do !kl_if_0 <- kl_V2698 `pseq` (kl_V2697 `pseq` eq kl_V2698 kl_V2697)+                                                                        case kl_if_0 of+                                                                            Atom (B (True)) -> do kl_V2696 `pseq` (kl_V2698 `pseq` (kl_V2699 `pseq` addressTo kl_V2696 kl_V2698 kl_V2699))+                                                                            Atom (B (False)) -> do do !appl_1 <- kl_V2696 `pseq` (kl_V2697 `pseq` (kl_V2699 `pseq` addressTo kl_V2696 kl_V2697 kl_V2699))+                                                                                                      !appl_2 <- kl_V2697 `pseq` add (Core.Types.Atom (Core.Types.N (Core.Types.KI 1))) kl_V2697+                                                                                                      appl_1 `pseq` (appl_2 `pseq` (kl_V2698 `pseq` (kl_V2699 `pseq` kl_shen_fillvector appl_1 appl_2 kl_V2698 kl_V2699)))+                                                                            _ -> throwError "if: expected boolean"++kl_vectorP :: Core.Types.KLValue ->+              Core.Types.KLContext Core.Types.Env Core.Types.KLValue+kl_vectorP (!kl_V2701) = do !kl_if_0 <- kl_V2701 `pseq` absvectorP kl_V2701+                            case kl_if_0 of+                                Atom (B (True)) -> do let !appl_1 = ApplC (Func "lambda" (Context (\(!kl_X) -> do !kl_if_2 <- kl_X `pseq` numberP kl_X+                                                                                                                  case kl_if_2 of+                                                                                                                      Atom (B (True)) -> do !kl_if_3 <- kl_X `pseq` greaterThanOrEqualTo kl_X (Core.Types.Atom (Core.Types.N (Core.Types.KI 0)))+                                                                                                                                            case kl_if_3 of+                                                                                                                                                Atom (B (True)) -> do return (Atom (B True))+                                                                                                                                                Atom (B (False)) -> do do return (Atom (B False))+                                                                                                                                                _ -> throwError "if: expected boolean"+                                                                                                                      Atom (B (False)) -> do do return (Atom (B False))+                                                                                                                      _ -> throwError "if: expected boolean")))+                                                      let !appl_4 = ApplC (PL "thunk" (do return (Core.Types.Atom (Core.Types.N (Core.Types.KI (-1))))))+                                                      !appl_5 <- kl_V2701 `pseq` (appl_4 `pseq` kl_LB_addressDivor kl_V2701 (Core.Types.Atom (Core.Types.N (Core.Types.KI 0))) appl_4)+                                                      !kl_if_6 <- appl_5 `pseq` applyWrapper appl_1 [appl_5]+                                                      case kl_if_6 of+                                                          Atom (B (True)) -> do return (Atom (B True))+                                                          Atom (B (False)) -> do do return (Atom (B False))+                                                          _ -> throwError "if: expected boolean"+                                Atom (B (False)) -> do do return (Atom (B False))+                                _ -> throwError "if: expected boolean"++kl_vector_RB :: Core.Types.KLValue ->+                Core.Types.KLValue ->+                Core.Types.KLValue ->+                Core.Types.KLContext Core.Types.Env Core.Types.KLValue+kl_vector_RB (!kl_V2705) (!kl_V2706) (!kl_V2707) = do let pat_cond_0 = do simpleError (Core.Types.Atom (Core.Types.Str "cannot access 0th element of a vector\n"))+                                                          pat_cond_1 = do do kl_V2705 `pseq` (kl_V2706 `pseq` (kl_V2707 `pseq` addressTo kl_V2705 kl_V2706 kl_V2707))+                                                       in case kl_V2706 of+                                                              kl_V2706@(Atom (N (KI 0))) -> pat_cond_0+                                                              _ -> pat_cond_1++kl_LB_vector :: Core.Types.KLValue ->+                Core.Types.KLValue ->+                Core.Types.KLContext Core.Types.Env Core.Types.KLValue+kl_LB_vector (!kl_V2710) (!kl_V2711) = do let pat_cond_0 = do simpleError (Core.Types.Atom (Core.Types.Str "cannot access 0th element of a vector\n"))+                                              pat_cond_1 = do do let !appl_2 = ApplC (Func "lambda" (Context (\(!kl_VectorElement) -> do let !aw_3 = Core.Types.Atom (Core.Types.UnboundSym "fail")+                                                                                                                                         !appl_4 <- applyWrapper aw_3 []+                                                                                                                                         !kl_if_5 <- kl_VectorElement `pseq` (appl_4 `pseq` eq kl_VectorElement appl_4)+                                                                                                                                         case kl_if_5 of+                                                                                                                                             Atom (B (True)) -> do simpleError (Core.Types.Atom (Core.Types.Str "vector element not found\n"))+                                                                                                                                             Atom (B (False)) -> do do return kl_VectorElement+                                                                                                                                             _ -> throwError "if: expected boolean")))+                                                                 !appl_6 <- kl_V2710 `pseq` (kl_V2711 `pseq` addressFrom kl_V2710 kl_V2711)+                                                                 appl_6 `pseq` applyWrapper appl_2 [appl_6]+                                           in case kl_V2711 of+                                                  kl_V2711@(Atom (N (KI 0))) -> pat_cond_0+                                                  _ -> pat_cond_1++kl_LB_vectorDivor :: Core.Types.KLValue ->+                     Core.Types.KLValue ->+                     Core.Types.KLValue ->+                     Core.Types.KLContext Core.Types.Env Core.Types.KLValue+kl_LB_vectorDivor (!kl_V2715) (!kl_V2716) (!kl_V2717) = do let pat_cond_0 = do simpleError (Core.Types.Atom (Core.Types.Str "cannot access 0th element of a vector\n"))+                                                               pat_cond_1 = do do let !appl_2 = ApplC (Func "lambda" (Context (\(!kl_VectorElement) -> do let !aw_3 = Core.Types.Atom (Core.Types.UnboundSym "fail")+                                                                                                                                                          !appl_4 <- applyWrapper aw_3 []+                                                                                                                                                          !kl_if_5 <- kl_VectorElement `pseq` (appl_4 `pseq` eq kl_VectorElement appl_4)+                                                                                                                                                          case kl_if_5 of+                                                                                                                                                              Atom (B (True)) -> do kl_V2717 `pseq` kl_thaw kl_V2717+                                                                                                                                                              Atom (B (False)) -> do do return kl_VectorElement+                                                                                                                                                              _ -> throwError "if: expected boolean")))+                                                                                  !appl_6 <- kl_V2715 `pseq` (kl_V2716 `pseq` (kl_V2717 `pseq` kl_LB_addressDivor kl_V2715 kl_V2716 kl_V2717))+                                                                                  appl_6 `pseq` applyWrapper appl_2 [appl_6]+                                                            in case kl_V2716 of+                                                                   kl_V2716@(Atom (N (KI 0))) -> pat_cond_0+                                                                   _ -> pat_cond_1++kl_shen_posintP :: Core.Types.KLValue ->+                   Core.Types.KLContext Core.Types.Env Core.Types.KLValue+kl_shen_posintP (!kl_V2719) = do !kl_if_0 <- kl_V2719 `pseq` kl_integerP kl_V2719+                                 case kl_if_0 of+                                     Atom (B (True)) -> do !kl_if_1 <- kl_V2719 `pseq` greaterThanOrEqualTo kl_V2719 (Core.Types.Atom (Core.Types.N (Core.Types.KI 0)))+                                                           case kl_if_1 of+                                                               Atom (B (True)) -> do return (Atom (B True))+                                                               Atom (B (False)) -> do do return (Atom (B False))+                                                               _ -> throwError "if: expected boolean"+                                     Atom (B (False)) -> do do return (Atom (B False))+                                     _ -> throwError "if: expected boolean"++kl_limit :: Core.Types.KLValue ->+            Core.Types.KLContext Core.Types.Env Core.Types.KLValue+kl_limit (!kl_V2721) = do kl_V2721 `pseq` addressFrom kl_V2721 (Core.Types.Atom (Core.Types.N (Core.Types.KI 0)))++kl_symbolP :: Core.Types.KLValue ->+              Core.Types.KLContext Core.Types.Env Core.Types.KLValue+kl_symbolP (!kl_V2723) = do !kl_if_0 <- kl_V2723 `pseq` kl_booleanP kl_V2723+                            !kl_if_1 <- case kl_if_0 of+                                            Atom (B (True)) -> do return (Atom (B True))+                                            Atom (B (False)) -> do do !kl_if_2 <- kl_V2723 `pseq` numberP kl_V2723+                                                                      !kl_if_3 <- case kl_if_2 of+                                                                                      Atom (B (True)) -> do return (Atom (B True))+                                                                                      Atom (B (False)) -> do do !kl_if_4 <- kl_V2723 `pseq` stringP kl_V2723+                                                                                                                case kl_if_4 of+                                                                                                                    Atom (B (True)) -> do return (Atom (B True))+                                                                                                                    Atom (B (False)) -> do do return (Atom (B False))+                                                                                                                    _ -> throwError "if: expected boolean"+                                                                                      _ -> throwError "if: expected boolean"+                                                                      case kl_if_3 of+                                                                          Atom (B (True)) -> do return (Atom (B True))+                                                                          Atom (B (False)) -> do do return (Atom (B False))+                                                                          _ -> throwError "if: expected boolean"+                                            _ -> throwError "if: expected boolean"+                            case kl_if_1 of+                                Atom (B (True)) -> do return (Atom (B False))+                                Atom (B (False)) -> do do (do let !appl_5 = ApplC (Func "lambda" (Context (\(!kl_String) -> do kl_String `pseq` kl_shen_analyse_symbolP kl_String)))+                                                              !appl_6 <- kl_V2723 `pseq` str kl_V2723+                                                              appl_6 `pseq` applyWrapper appl_5 [appl_6]) `catchError` (\(!kl_E) -> do return (Atom (B False)))+                                _ -> throwError "if: expected boolean"++kl_shen_analyse_symbolP :: Core.Types.KLValue ->+                           Core.Types.KLContext Core.Types.Env Core.Types.KLValue+kl_shen_analyse_symbolP (!kl_V2725) = do let pat_cond_0 = do return (Atom (B False))+                                             pat_cond_1 = do !kl_if_2 <- kl_V2725 `pseq` kl_shen_PlusstringP kl_V2725+                                                             case kl_if_2 of+                                                                 Atom (B (True)) -> do !appl_3 <- kl_V2725 `pseq` pos kl_V2725 (Core.Types.Atom (Core.Types.N (Core.Types.KI 0)))+                                                                                       !kl_if_4 <- appl_3 `pseq` kl_shen_alphaP appl_3+                                                                                       case kl_if_4 of+                                                                                           Atom (B (True)) -> do !appl_5 <- kl_V2725 `pseq` tlstr kl_V2725+                                                                                                                 !kl_if_6 <- appl_5 `pseq` kl_shen_alphanumsP appl_5+                                                                                                                 case kl_if_6 of+                                                                                                                     Atom (B (True)) -> do return (Atom (B True))+                                                                                                                     Atom (B (False)) -> do do return (Atom (B False))+                                                                                                                     _ -> throwError "if: expected boolean"+                                                                                           Atom (B (False)) -> do do return (Atom (B False))+                                                                                           _ -> throwError "if: expected boolean"+                                                                 Atom (B (False)) -> do do let !aw_7 = Core.Types.Atom (Core.Types.UnboundSym "shen.f_error")+                                                                                           applyWrapper aw_7 [ApplC (wrapNamed "shen.analyse-symbol?" kl_shen_analyse_symbolP)]+                                                                 _ -> throwError "if: expected boolean"+                                          in case kl_V2725 of+                                                 kl_V2725@(Atom (Str "")) -> pat_cond_0+                                                 _ -> pat_cond_1++kl_shen_alphaP :: Core.Types.KLValue ->+                  Core.Types.KLContext Core.Types.Env Core.Types.KLValue+kl_shen_alphaP (!kl_V2727) = do let !appl_0 = Atom Nil+                                !appl_1 <- appl_0 `pseq` klCons (Core.Types.Atom (Core.Types.Str ".")) appl_0+                                !appl_2 <- appl_1 `pseq` klCons (Core.Types.Atom (Core.Types.Str "'")) appl_1+                                !appl_3 <- appl_2 `pseq` klCons (Core.Types.Atom (Core.Types.Str "#")) appl_2+                                !appl_4 <- appl_3 `pseq` klCons (Core.Types.Atom (Core.Types.Str "`")) appl_3+                                !appl_5 <- appl_4 `pseq` klCons (Core.Types.Atom (Core.Types.Str ";")) appl_4+                                !appl_6 <- appl_5 `pseq` klCons (Core.Types.Atom (Core.Types.Str ":")) appl_5+                                !appl_7 <- appl_6 `pseq` klCons (Core.Types.Atom (Core.Types.Str "}")) appl_6+                                !appl_8 <- appl_7 `pseq` klCons (Core.Types.Atom (Core.Types.Str "{")) appl_7+                                !appl_9 <- appl_8 `pseq` klCons (Core.Types.Atom (Core.Types.Str "%")) appl_8+                                !appl_10 <- appl_9 `pseq` klCons (Core.Types.Atom (Core.Types.Str "&")) appl_9+                                !appl_11 <- appl_10 `pseq` klCons (Core.Types.Atom (Core.Types.Str "<")) appl_10+                                !appl_12 <- appl_11 `pseq` klCons (Core.Types.Atom (Core.Types.Str ">")) appl_11+                                !appl_13 <- appl_12 `pseq` klCons (Core.Types.Atom (Core.Types.Str "~")) appl_12+                                !appl_14 <- appl_13 `pseq` klCons (Core.Types.Atom (Core.Types.Str "@")) appl_13+                                !appl_15 <- appl_14 `pseq` klCons (Core.Types.Atom (Core.Types.Str "!")) appl_14+                                !appl_16 <- appl_15 `pseq` klCons (Core.Types.Atom (Core.Types.Str "$")) appl_15+                                !appl_17 <- appl_16 `pseq` klCons (Core.Types.Atom (Core.Types.Str "?")) appl_16+                                !appl_18 <- appl_17 `pseq` klCons (Core.Types.Atom (Core.Types.Str "_")) appl_17+                                !appl_19 <- appl_18 `pseq` klCons (Core.Types.Atom (Core.Types.Str "-")) appl_18+                                !appl_20 <- appl_19 `pseq` klCons (Core.Types.Atom (Core.Types.Str "+")) appl_19+                                !appl_21 <- appl_20 `pseq` klCons (Core.Types.Atom (Core.Types.Str "/")) appl_20+                                !appl_22 <- appl_21 `pseq` klCons (Core.Types.Atom (Core.Types.Str "*")) appl_21+                                !appl_23 <- appl_22 `pseq` klCons (Core.Types.Atom (Core.Types.Str "=")) appl_22+                                !appl_24 <- appl_23 `pseq` klCons (Core.Types.Atom (Core.Types.Str "z")) appl_23+                                !appl_25 <- appl_24 `pseq` klCons (Core.Types.Atom (Core.Types.Str "y")) appl_24+                                !appl_26 <- appl_25 `pseq` klCons (Core.Types.Atom (Core.Types.Str "x")) appl_25+                                !appl_27 <- appl_26 `pseq` klCons (Core.Types.Atom (Core.Types.Str "w")) appl_26+                                !appl_28 <- appl_27 `pseq` klCons (Core.Types.Atom (Core.Types.Str "v")) appl_27+                                !appl_29 <- appl_28 `pseq` klCons (Core.Types.Atom (Core.Types.Str "u")) appl_28+                                !appl_30 <- appl_29 `pseq` klCons (Core.Types.Atom (Core.Types.Str "t")) appl_29+                                !appl_31 <- appl_30 `pseq` klCons (Core.Types.Atom (Core.Types.Str "s")) appl_30+                                !appl_32 <- appl_31 `pseq` klCons (Core.Types.Atom (Core.Types.Str "r")) appl_31+                                !appl_33 <- appl_32 `pseq` klCons (Core.Types.Atom (Core.Types.Str "q")) appl_32+                                !appl_34 <- appl_33 `pseq` klCons (Core.Types.Atom (Core.Types.Str "p")) appl_33+                                !appl_35 <- appl_34 `pseq` klCons (Core.Types.Atom (Core.Types.Str "o")) appl_34+                                !appl_36 <- appl_35 `pseq` klCons (Core.Types.Atom (Core.Types.Str "n")) appl_35+                                !appl_37 <- appl_36 `pseq` klCons (Core.Types.Atom (Core.Types.Str "m")) appl_36+                                !appl_38 <- appl_37 `pseq` klCons (Core.Types.Atom (Core.Types.Str "l")) appl_37+                                !appl_39 <- appl_38 `pseq` klCons (Core.Types.Atom (Core.Types.Str "k")) appl_38+                                !appl_40 <- appl_39 `pseq` klCons (Core.Types.Atom (Core.Types.Str "j")) appl_39+                                !appl_41 <- appl_40 `pseq` klCons (Core.Types.Atom (Core.Types.Str "i")) appl_40+                                !appl_42 <- appl_41 `pseq` klCons (Core.Types.Atom (Core.Types.Str "h")) appl_41+                                !appl_43 <- appl_42 `pseq` klCons (Core.Types.Atom (Core.Types.Str "g")) appl_42+                                !appl_44 <- appl_43 `pseq` klCons (Core.Types.Atom (Core.Types.Str "f")) appl_43+                                !appl_45 <- appl_44 `pseq` klCons (Core.Types.Atom (Core.Types.Str "e")) appl_44+                                !appl_46 <- appl_45 `pseq` klCons (Core.Types.Atom (Core.Types.Str "d")) appl_45+                                !appl_47 <- appl_46 `pseq` klCons (Core.Types.Atom (Core.Types.Str "c")) appl_46+                                !appl_48 <- appl_47 `pseq` klCons (Core.Types.Atom (Core.Types.Str "b")) appl_47+                                !appl_49 <- appl_48 `pseq` klCons (Core.Types.Atom (Core.Types.Str "a")) appl_48+                                !appl_50 <- appl_49 `pseq` klCons (Core.Types.Atom (Core.Types.Str "Z")) appl_49+                                !appl_51 <- appl_50 `pseq` klCons (Core.Types.Atom (Core.Types.Str "Y")) appl_50+                                !appl_52 <- appl_51 `pseq` klCons (Core.Types.Atom (Core.Types.Str "X")) appl_51+                                !appl_53 <- appl_52 `pseq` klCons (Core.Types.Atom (Core.Types.Str "W")) appl_52+                                !appl_54 <- appl_53 `pseq` klCons (Core.Types.Atom (Core.Types.Str "V")) appl_53+                                !appl_55 <- appl_54 `pseq` klCons (Core.Types.Atom (Core.Types.Str "U")) appl_54+                                !appl_56 <- appl_55 `pseq` klCons (Core.Types.Atom (Core.Types.Str "T")) appl_55+                                !appl_57 <- appl_56 `pseq` klCons (Core.Types.Atom (Core.Types.Str "S")) appl_56+                                !appl_58 <- appl_57 `pseq` klCons (Core.Types.Atom (Core.Types.Str "R")) appl_57+                                !appl_59 <- appl_58 `pseq` klCons (Core.Types.Atom (Core.Types.Str "Q")) appl_58+                                !appl_60 <- appl_59 `pseq` klCons (Core.Types.Atom (Core.Types.Str "P")) appl_59+                                !appl_61 <- appl_60 `pseq` klCons (Core.Types.Atom (Core.Types.Str "O")) appl_60+                                !appl_62 <- appl_61 `pseq` klCons (Core.Types.Atom (Core.Types.Str "N")) appl_61+                                !appl_63 <- appl_62 `pseq` klCons (Core.Types.Atom (Core.Types.Str "M")) appl_62+                                !appl_64 <- appl_63 `pseq` klCons (Core.Types.Atom (Core.Types.Str "L")) appl_63+                                !appl_65 <- appl_64 `pseq` klCons (Core.Types.Atom (Core.Types.Str "K")) appl_64+                                !appl_66 <- appl_65 `pseq` klCons (Core.Types.Atom (Core.Types.Str "J")) appl_65+                                !appl_67 <- appl_66 `pseq` klCons (Core.Types.Atom (Core.Types.Str "I")) appl_66+                                !appl_68 <- appl_67 `pseq` klCons (Core.Types.Atom (Core.Types.Str "H")) appl_67+                                !appl_69 <- appl_68 `pseq` klCons (Core.Types.Atom (Core.Types.Str "G")) appl_68+                                !appl_70 <- appl_69 `pseq` klCons (Core.Types.Atom (Core.Types.Str "F")) appl_69+                                !appl_71 <- appl_70 `pseq` klCons (Core.Types.Atom (Core.Types.Str "E")) appl_70+                                !appl_72 <- appl_71 `pseq` klCons (Core.Types.Atom (Core.Types.Str "D")) appl_71+                                !appl_73 <- appl_72 `pseq` klCons (Core.Types.Atom (Core.Types.Str "C")) appl_72+                                !appl_74 <- appl_73 `pseq` klCons (Core.Types.Atom (Core.Types.Str "B")) appl_73+                                !appl_75 <- appl_74 `pseq` klCons (Core.Types.Atom (Core.Types.Str "A")) appl_74+                                kl_V2727 `pseq` (appl_75 `pseq` kl_elementP kl_V2727 appl_75)++kl_shen_alphanumsP :: Core.Types.KLValue ->+                      Core.Types.KLContext Core.Types.Env Core.Types.KLValue+kl_shen_alphanumsP (!kl_V2729) = do let pat_cond_0 = do return (Atom (B True))+                                        pat_cond_1 = do !kl_if_2 <- kl_V2729 `pseq` kl_shen_PlusstringP kl_V2729+                                                        case kl_if_2 of+                                                            Atom (B (True)) -> do !appl_3 <- kl_V2729 `pseq` pos kl_V2729 (Core.Types.Atom (Core.Types.N (Core.Types.KI 0)))+                                                                                  !kl_if_4 <- appl_3 `pseq` kl_shen_alphanumP appl_3+                                                                                  case kl_if_4 of+                                                                                      Atom (B (True)) -> do !appl_5 <- kl_V2729 `pseq` tlstr kl_V2729+                                                                                                            !kl_if_6 <- appl_5 `pseq` kl_shen_alphanumsP appl_5+                                                                                                            case kl_if_6 of+                                                                                                                Atom (B (True)) -> do return (Atom (B True))+                                                                                                                Atom (B (False)) -> do do return (Atom (B False))+                                                                                                                _ -> throwError "if: expected boolean"+                                                                                      Atom (B (False)) -> do do return (Atom (B False))+                                                                                      _ -> throwError "if: expected boolean"+                                                            Atom (B (False)) -> do do let !aw_7 = Core.Types.Atom (Core.Types.UnboundSym "shen.f_error")+                                                                                      applyWrapper aw_7 [ApplC (wrapNamed "shen.alphanums?" kl_shen_alphanumsP)]+                                                            _ -> throwError "if: expected boolean"+                                     in case kl_V2729 of+                                            kl_V2729@(Atom (Str "")) -> pat_cond_0+                                            _ -> pat_cond_1++kl_shen_alphanumP :: Core.Types.KLValue ->+                     Core.Types.KLContext Core.Types.Env Core.Types.KLValue+kl_shen_alphanumP (!kl_V2731) = do !kl_if_0 <- kl_V2731 `pseq` kl_shen_alphaP kl_V2731+                                   case kl_if_0 of+                                       Atom (B (True)) -> do return (Atom (B True))+                                       Atom (B (False)) -> do do !kl_if_1 <- kl_V2731 `pseq` kl_shen_digitP kl_V2731+                                                                 case kl_if_1 of+                                                                     Atom (B (True)) -> do return (Atom (B True))+                                                                     Atom (B (False)) -> do do return (Atom (B False))+                                                                     _ -> throwError "if: expected boolean"+                                       _ -> throwError "if: expected boolean"++kl_shen_digitP :: Core.Types.KLValue ->+                  Core.Types.KLContext Core.Types.Env Core.Types.KLValue+kl_shen_digitP (!kl_V2733) = do let !appl_0 = Atom Nil+                                !appl_1 <- appl_0 `pseq` klCons (Core.Types.Atom (Core.Types.Str "0")) appl_0+                                !appl_2 <- appl_1 `pseq` klCons (Core.Types.Atom (Core.Types.Str "9")) appl_1+                                !appl_3 <- appl_2 `pseq` klCons (Core.Types.Atom (Core.Types.Str "8")) appl_2+                                !appl_4 <- appl_3 `pseq` klCons (Core.Types.Atom (Core.Types.Str "7")) appl_3+                                !appl_5 <- appl_4 `pseq` klCons (Core.Types.Atom (Core.Types.Str "6")) appl_4+                                !appl_6 <- appl_5 `pseq` klCons (Core.Types.Atom (Core.Types.Str "5")) appl_5+                                !appl_7 <- appl_6 `pseq` klCons (Core.Types.Atom (Core.Types.Str "4")) appl_6+                                !appl_8 <- appl_7 `pseq` klCons (Core.Types.Atom (Core.Types.Str "3")) appl_7+                                !appl_9 <- appl_8 `pseq` klCons (Core.Types.Atom (Core.Types.Str "2")) appl_8+                                !appl_10 <- appl_9 `pseq` klCons (Core.Types.Atom (Core.Types.Str "1")) appl_9+                                kl_V2733 `pseq` (appl_10 `pseq` kl_elementP kl_V2733 appl_10)++kl_variableP :: Core.Types.KLValue ->+                Core.Types.KLContext Core.Types.Env Core.Types.KLValue+kl_variableP (!kl_V2735) = do !kl_if_0 <- kl_V2735 `pseq` kl_booleanP kl_V2735+                              !kl_if_1 <- case kl_if_0 of+                                              Atom (B (True)) -> do return (Atom (B True))+                                              Atom (B (False)) -> do do !kl_if_2 <- kl_V2735 `pseq` numberP kl_V2735+                                                                        !kl_if_3 <- case kl_if_2 of+                                                                                        Atom (B (True)) -> do return (Atom (B True))+                                                                                        Atom (B (False)) -> do do !kl_if_4 <- kl_V2735 `pseq` stringP kl_V2735+                                                                                                                  case kl_if_4 of+                                                                                                                      Atom (B (True)) -> do return (Atom (B True))+                                                                                                                      Atom (B (False)) -> do do return (Atom (B False))+                                                                                                                      _ -> throwError "if: expected boolean"+                                                                                        _ -> throwError "if: expected boolean"+                                                                        case kl_if_3 of+                                                                            Atom (B (True)) -> do return (Atom (B True))+                                                                            Atom (B (False)) -> do do return (Atom (B False))+                                                                            _ -> throwError "if: expected boolean"+                                              _ -> throwError "if: expected boolean"+                              case kl_if_1 of+                                  Atom (B (True)) -> do return (Atom (B False))+                                  Atom (B (False)) -> do do (do let !appl_5 = ApplC (Func "lambda" (Context (\(!kl_String) -> do kl_String `pseq` kl_shen_analyse_variableP kl_String)))+                                                                !appl_6 <- kl_V2735 `pseq` str kl_V2735+                                                                appl_6 `pseq` applyWrapper appl_5 [appl_6]) `catchError` (\(!kl_E) -> do return (Atom (B False)))+                                  _ -> throwError "if: expected boolean"++kl_shen_analyse_variableP :: Core.Types.KLValue ->+                             Core.Types.KLContext Core.Types.Env Core.Types.KLValue+kl_shen_analyse_variableP (!kl_V2737) = do !kl_if_0 <- kl_V2737 `pseq` kl_shen_PlusstringP kl_V2737+                                           case kl_if_0 of+                                               Atom (B (True)) -> do !appl_1 <- kl_V2737 `pseq` pos kl_V2737 (Core.Types.Atom (Core.Types.N (Core.Types.KI 0)))+                                                                     !kl_if_2 <- appl_1 `pseq` kl_shen_uppercaseP appl_1+                                                                     case kl_if_2 of+                                                                         Atom (B (True)) -> do !appl_3 <- kl_V2737 `pseq` tlstr kl_V2737+                                                                                               !kl_if_4 <- appl_3 `pseq` kl_shen_alphanumsP appl_3+                                                                                               case kl_if_4 of+                                                                                                   Atom (B (True)) -> do return (Atom (B True))+                                                                                                   Atom (B (False)) -> do do return (Atom (B False))+                                                                                                   _ -> throwError "if: expected boolean"+                                                                         Atom (B (False)) -> do do return (Atom (B False))+                                                                         _ -> throwError "if: expected boolean"+                                               Atom (B (False)) -> do do let !aw_5 = Core.Types.Atom (Core.Types.UnboundSym "shen.f_error")+                                                                         applyWrapper aw_5 [ApplC (wrapNamed "shen.analyse-variable?" kl_shen_analyse_variableP)]+                                               _ -> throwError "if: expected boolean"++kl_shen_uppercaseP :: Core.Types.KLValue ->+                      Core.Types.KLContext Core.Types.Env Core.Types.KLValue+kl_shen_uppercaseP (!kl_V2739) = do let !appl_0 = Atom Nil+                                    !appl_1 <- appl_0 `pseq` klCons (Core.Types.Atom (Core.Types.Str "Z")) appl_0+                                    !appl_2 <- appl_1 `pseq` klCons (Core.Types.Atom (Core.Types.Str "Y")) appl_1+                                    !appl_3 <- appl_2 `pseq` klCons (Core.Types.Atom (Core.Types.Str "X")) appl_2+                                    !appl_4 <- appl_3 `pseq` klCons (Core.Types.Atom (Core.Types.Str "W")) appl_3+                                    !appl_5 <- appl_4 `pseq` klCons (Core.Types.Atom (Core.Types.Str "V")) appl_4+                                    !appl_6 <- appl_5 `pseq` klCons (Core.Types.Atom (Core.Types.Str "U")) appl_5+                                    !appl_7 <- appl_6 `pseq` klCons (Core.Types.Atom (Core.Types.Str "T")) appl_6+                                    !appl_8 <- appl_7 `pseq` klCons (Core.Types.Atom (Core.Types.Str "S")) appl_7+                                    !appl_9 <- appl_8 `pseq` klCons (Core.Types.Atom (Core.Types.Str "R")) appl_8+                                    !appl_10 <- appl_9 `pseq` klCons (Core.Types.Atom (Core.Types.Str "Q")) appl_9+                                    !appl_11 <- appl_10 `pseq` klCons (Core.Types.Atom (Core.Types.Str "P")) appl_10+                                    !appl_12 <- appl_11 `pseq` klCons (Core.Types.Atom (Core.Types.Str "O")) appl_11+                                    !appl_13 <- appl_12 `pseq` klCons (Core.Types.Atom (Core.Types.Str "N")) appl_12+                                    !appl_14 <- appl_13 `pseq` klCons (Core.Types.Atom (Core.Types.Str "M")) appl_13+                                    !appl_15 <- appl_14 `pseq` klCons (Core.Types.Atom (Core.Types.Str "L")) appl_14+                                    !appl_16 <- appl_15 `pseq` klCons (Core.Types.Atom (Core.Types.Str "K")) appl_15+                                    !appl_17 <- appl_16 `pseq` klCons (Core.Types.Atom (Core.Types.Str "J")) appl_16+                                    !appl_18 <- appl_17 `pseq` klCons (Core.Types.Atom (Core.Types.Str "I")) appl_17+                                    !appl_19 <- appl_18 `pseq` klCons (Core.Types.Atom (Core.Types.Str "H")) appl_18+                                    !appl_20 <- appl_19 `pseq` klCons (Core.Types.Atom (Core.Types.Str "G")) appl_19+                                    !appl_21 <- appl_20 `pseq` klCons (Core.Types.Atom (Core.Types.Str "F")) appl_20+                                    !appl_22 <- appl_21 `pseq` klCons (Core.Types.Atom (Core.Types.Str "E")) appl_21+                                    !appl_23 <- appl_22 `pseq` klCons (Core.Types.Atom (Core.Types.Str "D")) appl_22+                                    !appl_24 <- appl_23 `pseq` klCons (Core.Types.Atom (Core.Types.Str "C")) appl_23+                                    !appl_25 <- appl_24 `pseq` klCons (Core.Types.Atom (Core.Types.Str "B")) appl_24+                                    !appl_26 <- appl_25 `pseq` klCons (Core.Types.Atom (Core.Types.Str "A")) appl_25+                                    kl_V2739 `pseq` (appl_26 `pseq` kl_elementP kl_V2739 appl_26)++kl_gensym :: Core.Types.KLValue ->+             Core.Types.KLContext Core.Types.Env Core.Types.KLValue+kl_gensym (!kl_V2741) = do !appl_0 <- value (Core.Types.Atom (Core.Types.UnboundSym "shen.*gensym*"))+                           !appl_1 <- appl_0 `pseq` add (Core.Types.Atom (Core.Types.N (Core.Types.KI 1))) appl_0+                           !appl_2 <- appl_1 `pseq` klSet (Core.Types.Atom (Core.Types.UnboundSym "shen.*gensym*")) appl_1+                           kl_V2741 `pseq` (appl_2 `pseq` kl_concat kl_V2741 appl_2)++kl_concat :: Core.Types.KLValue ->+             Core.Types.KLValue ->+             Core.Types.KLContext Core.Types.Env Core.Types.KLValue+kl_concat (!kl_V2744) (!kl_V2745) = do !appl_0 <- kl_V2744 `pseq` str kl_V2744+                                       !appl_1 <- kl_V2745 `pseq` str kl_V2745+                                       !appl_2 <- appl_0 `pseq` (appl_1 `pseq` cn appl_0 appl_1)+                                       appl_2 `pseq` intern appl_2++kl_Atp :: Core.Types.KLValue ->+          Core.Types.KLValue ->+          Core.Types.KLContext Core.Types.Env Core.Types.KLValue+kl_Atp (!kl_V2748) (!kl_V2749) = do let !appl_0 = ApplC (Func "lambda" (Context (\(!kl_Vector) -> do let !appl_1 = ApplC (Func "lambda" (Context (\(!kl_Tag) -> do let !appl_2 = ApplC (Func "lambda" (Context (\(!kl_Fst) -> do let !appl_3 = ApplC (Func "lambda" (Context (\(!kl_Snd) -> do return kl_Vector)))+                                                                                                                                                                                                                                 !appl_4 <- kl_Vector `pseq` (kl_V2749 `pseq` addressTo kl_Vector (Core.Types.Atom (Core.Types.N (Core.Types.KI 2))) kl_V2749)+                                                                                                                                                                                                                                 appl_4 `pseq` applyWrapper appl_3 [appl_4])))+                                                                                                                                                                   !appl_5 <- kl_Vector `pseq` (kl_V2748 `pseq` addressTo kl_Vector (Core.Types.Atom (Core.Types.N (Core.Types.KI 1))) kl_V2748)+                                                                                                                                                                   appl_5 `pseq` applyWrapper appl_2 [appl_5])))+                                                                                                     !appl_6 <- kl_Vector `pseq` addressTo kl_Vector (Core.Types.Atom (Core.Types.N (Core.Types.KI 0))) (Core.Types.Atom (Core.Types.UnboundSym "shen.tuple"))+                                                                                                     appl_6 `pseq` applyWrapper appl_1 [appl_6])))+                                    !appl_7 <- absvector (Core.Types.Atom (Core.Types.N (Core.Types.KI 3)))+                                    appl_7 `pseq` applyWrapper appl_0 [appl_7]++kl_fst :: Core.Types.KLValue ->+          Core.Types.KLContext Core.Types.Env Core.Types.KLValue+kl_fst (!kl_V2751) = do kl_V2751 `pseq` addressFrom kl_V2751 (Core.Types.Atom (Core.Types.N (Core.Types.KI 1)))++kl_snd :: Core.Types.KLValue ->+          Core.Types.KLContext Core.Types.Env Core.Types.KLValue+kl_snd (!kl_V2753) = do kl_V2753 `pseq` addressFrom kl_V2753 (Core.Types.Atom (Core.Types.N (Core.Types.KI 2)))++kl_tupleP :: Core.Types.KLValue ->+             Core.Types.KLContext Core.Types.Env Core.Types.KLValue+kl_tupleP (!kl_V2755) = do !kl_if_0 <- kl_V2755 `pseq` absvectorP kl_V2755+                           case kl_if_0 of+                               Atom (B (True)) -> do let !appl_1 = ApplC (PL "thunk" (do return (Core.Types.Atom (Core.Types.UnboundSym "shen.not-tuple"))))+                                                     !appl_2 <- kl_V2755 `pseq` (appl_1 `pseq` kl_LB_addressDivor kl_V2755 (Core.Types.Atom (Core.Types.N (Core.Types.KI 0))) appl_1)+                                                     !kl_if_3 <- appl_2 `pseq` eq (Core.Types.Atom (Core.Types.UnboundSym "shen.tuple")) appl_2+                                                     case kl_if_3 of+                                                         Atom (B (True)) -> do return (Atom (B True))+                                                         Atom (B (False)) -> do do return (Atom (B False))+                                                         _ -> throwError "if: expected boolean"+                               Atom (B (False)) -> do do return (Atom (B False))+                               _ -> throwError "if: expected boolean"++kl_append :: Core.Types.KLValue ->+             Core.Types.KLValue ->+             Core.Types.KLContext Core.Types.Env Core.Types.KLValue+kl_append (!kl_V2758) (!kl_V2759) = do let !appl_0 = Atom Nil+                                       !kl_if_1 <- appl_0 `pseq` (kl_V2758 `pseq` eq appl_0 kl_V2758)+                                       case kl_if_1 of+                                           Atom (B (True)) -> do return kl_V2759+                                           Atom (B (False)) -> do let pat_cond_2 kl_V2758 kl_V2758h kl_V2758t = do !appl_3 <- kl_V2758t `pseq` (kl_V2759 `pseq` kl_append kl_V2758t kl_V2759)+                                                                                                                   kl_V2758h `pseq` (appl_3 `pseq` klCons kl_V2758h appl_3)+                                                                      pat_cond_4 = do do let !aw_5 = Core.Types.Atom (Core.Types.UnboundSym "shen.f_error")+                                                                                         applyWrapper aw_5 [ApplC (wrapNamed "append" kl_append)]+                                                                   in case kl_V2758 of+                                                                          !(kl_V2758@(Cons (!kl_V2758h)+                                                                                           (!kl_V2758t))) -> pat_cond_2 kl_V2758 kl_V2758h kl_V2758t+                                                                          _ -> pat_cond_4+                                           _ -> throwError "if: expected boolean"++kl_Atv :: Core.Types.KLValue ->+          Core.Types.KLValue ->+          Core.Types.KLContext Core.Types.Env Core.Types.KLValue+kl_Atv (!kl_V2762) (!kl_V2763) = do let !appl_0 = ApplC (Func "lambda" (Context (\(!kl_Limit) -> do let !appl_1 = ApplC (Func "lambda" (Context (\(!kl_NewVector) -> do let !appl_2 = ApplC (Func "lambda" (Context (\(!kl_XPlusNewVector) -> do let pat_cond_3 = do return kl_XPlusNewVector+                                                                                                                                                                                                                                                     pat_cond_4 = do do kl_V2763 `pseq` (kl_Limit `pseq` (kl_XPlusNewVector `pseq` kl_shen_Atv_help kl_V2763 (Core.Types.Atom (Core.Types.N (Core.Types.KI 1))) kl_Limit kl_XPlusNewVector))+                                                                                                                                                                                                                                                  in case kl_Limit of+                                                                                                                                                                                                                                                         kl_Limit@(Atom (N (KI 0))) -> pat_cond_3+                                                                                                                                                                                                                                                         _ -> pat_cond_4)))+                                                                                                                                                                        !appl_5 <- kl_NewVector `pseq` (kl_V2762 `pseq` kl_vector_RB kl_NewVector (Core.Types.Atom (Core.Types.N (Core.Types.KI 1))) kl_V2762)+                                                                                                                                                                        appl_5 `pseq` applyWrapper appl_2 [appl_5])))+                                                                                                    !appl_6 <- kl_Limit `pseq` add kl_Limit (Core.Types.Atom (Core.Types.N (Core.Types.KI 1)))+                                                                                                    !appl_7 <- appl_6 `pseq` kl_vector appl_6+                                                                                                    appl_7 `pseq` applyWrapper appl_1 [appl_7])))+                                    !appl_8 <- kl_V2763 `pseq` kl_limit kl_V2763+                                    appl_8 `pseq` applyWrapper appl_0 [appl_8]++kl_shen_Atv_help :: Core.Types.KLValue ->+                    Core.Types.KLValue ->+                    Core.Types.KLValue ->+                    Core.Types.KLValue ->+                    Core.Types.KLContext Core.Types.Env Core.Types.KLValue+kl_shen_Atv_help (!kl_V2769) (!kl_V2770) (!kl_V2771) (!kl_V2772) = do !kl_if_0 <- kl_V2771 `pseq` (kl_V2770 `pseq` eq kl_V2771 kl_V2770)+                                                                      case kl_if_0 of+                                                                          Atom (B (True)) -> do !appl_1 <- kl_V2771 `pseq` add kl_V2771 (Core.Types.Atom (Core.Types.N (Core.Types.KI 1)))+                                                                                                kl_V2769 `pseq` (kl_V2772 `pseq` (kl_V2771 `pseq` (appl_1 `pseq` kl_shen_copyfromvector kl_V2769 kl_V2772 kl_V2771 appl_1)))+                                                                          Atom (B (False)) -> do do !appl_2 <- kl_V2770 `pseq` add kl_V2770 (Core.Types.Atom (Core.Types.N (Core.Types.KI 1)))+                                                                                                    !appl_3 <- kl_V2770 `pseq` add kl_V2770 (Core.Types.Atom (Core.Types.N (Core.Types.KI 1)))+                                                                                                    !appl_4 <- kl_V2769 `pseq` (kl_V2772 `pseq` (kl_V2770 `pseq` (appl_3 `pseq` kl_shen_copyfromvector kl_V2769 kl_V2772 kl_V2770 appl_3)))+                                                                                                    kl_V2769 `pseq` (appl_2 `pseq` (kl_V2771 `pseq` (appl_4 `pseq` kl_shen_Atv_help kl_V2769 appl_2 kl_V2771 appl_4)))+                                                                          _ -> throwError "if: expected boolean"++kl_shen_copyfromvector :: Core.Types.KLValue ->+                          Core.Types.KLValue ->+                          Core.Types.KLValue ->+                          Core.Types.KLValue ->+                          Core.Types.KLContext Core.Types.Env Core.Types.KLValue+kl_shen_copyfromvector (!kl_V2777) (!kl_V2778) (!kl_V2779) (!kl_V2780) = do (do !appl_0 <- kl_V2777 `pseq` (kl_V2779 `pseq` kl_LB_vector kl_V2777 kl_V2779)+                                                                                kl_V2778 `pseq` (kl_V2780 `pseq` (appl_0 `pseq` kl_vector_RB kl_V2778 kl_V2780 appl_0))) `catchError` (\(!kl_E) -> do return kl_V2778)++kl_hdv :: Core.Types.KLValue ->+          Core.Types.KLContext Core.Types.Env Core.Types.KLValue+kl_hdv (!kl_V2782) = do let !appl_0 = ApplC (PL "thunk" (do let !aw_1 = Core.Types.Atom (Core.Types.UnboundSym "shen.app")+                                                            !appl_2 <- kl_V2782 `pseq` applyWrapper aw_1 [kl_V2782,+                                                                                                          Core.Types.Atom (Core.Types.Str "\n"),+                                                                                                          Core.Types.Atom (Core.Types.UnboundSym "shen.s")]+                                                            !appl_3 <- appl_2 `pseq` cn (Core.Types.Atom (Core.Types.Str "hdv needs a non-empty vector as an argument; not ")) appl_2+                                                            appl_3 `pseq` simpleError appl_3))+                        kl_V2782 `pseq` (appl_0 `pseq` kl_LB_vectorDivor kl_V2782 (Core.Types.Atom (Core.Types.N (Core.Types.KI 1))) appl_0)++kl_tlv :: Core.Types.KLValue ->+          Core.Types.KLContext Core.Types.Env Core.Types.KLValue+kl_tlv (!kl_V2784) = do let !appl_0 = ApplC (Func "lambda" (Context (\(!kl_Limit) -> do let pat_cond_1 = do simpleError (Core.Types.Atom (Core.Types.Str "cannot take the tail of the empty vector\n"))+                                                                                            pat_cond_2 = do do let pat_cond_3 = do kl_vector (Core.Types.Atom (Core.Types.N (Core.Types.KI 0)))+                                                                                                                   pat_cond_4 = do do let !appl_5 = ApplC (Func "lambda" (Context (\(!kl_NewVector) -> do !appl_6 <- kl_Limit `pseq` Primitives.subtract kl_Limit (Core.Types.Atom (Core.Types.N (Core.Types.KI 1)))+                                                                                                                                                                                                          !appl_7 <- appl_6 `pseq` kl_vector appl_6+                                                                                                                                                                                                          kl_V2784 `pseq` (kl_Limit `pseq` (appl_7 `pseq` kl_shen_tlv_help kl_V2784 (Core.Types.Atom (Core.Types.N (Core.Types.KI 2))) kl_Limit appl_7)))))+                                                                                                                                      !appl_8 <- kl_Limit `pseq` Primitives.subtract kl_Limit (Core.Types.Atom (Core.Types.N (Core.Types.KI 1)))+                                                                                                                                      !appl_9 <- appl_8 `pseq` kl_vector appl_8+                                                                                                                                      appl_9 `pseq` applyWrapper appl_5 [appl_9]+                                                                                                                in case kl_Limit of+                                                                                                                       kl_Limit@(Atom (N (KI 1))) -> pat_cond_3+                                                                                                                       _ -> pat_cond_4+                                                                                         in case kl_Limit of+                                                                                                kl_Limit@(Atom (N (KI 0))) -> pat_cond_1+                                                                                                _ -> pat_cond_2)))+                        !appl_10 <- kl_V2784 `pseq` kl_limit kl_V2784+                        appl_10 `pseq` applyWrapper appl_0 [appl_10]++kl_shen_tlv_help :: Core.Types.KLValue ->+                    Core.Types.KLValue ->+                    Core.Types.KLValue ->+                    Core.Types.KLValue ->+                    Core.Types.KLContext Core.Types.Env Core.Types.KLValue+kl_shen_tlv_help (!kl_V2790) (!kl_V2791) (!kl_V2792) (!kl_V2793) = do !kl_if_0 <- kl_V2792 `pseq` (kl_V2791 `pseq` eq kl_V2792 kl_V2791)+                                                                      case kl_if_0 of+                                                                          Atom (B (True)) -> do !appl_1 <- kl_V2792 `pseq` Primitives.subtract kl_V2792 (Core.Types.Atom (Core.Types.N (Core.Types.KI 1)))+                                                                                                kl_V2790 `pseq` (kl_V2793 `pseq` (kl_V2792 `pseq` (appl_1 `pseq` kl_shen_copyfromvector kl_V2790 kl_V2793 kl_V2792 appl_1)))+                                                                          Atom (B (False)) -> do do !appl_2 <- kl_V2791 `pseq` add kl_V2791 (Core.Types.Atom (Core.Types.N (Core.Types.KI 1)))+                                                                                                    !appl_3 <- kl_V2791 `pseq` Primitives.subtract kl_V2791 (Core.Types.Atom (Core.Types.N (Core.Types.KI 1)))+                                                                                                    !appl_4 <- kl_V2790 `pseq` (kl_V2793 `pseq` (kl_V2791 `pseq` (appl_3 `pseq` kl_shen_copyfromvector kl_V2790 kl_V2793 kl_V2791 appl_3)))+                                                                                                    kl_V2790 `pseq` (appl_2 `pseq` (kl_V2792 `pseq` (appl_4 `pseq` kl_shen_tlv_help kl_V2790 appl_2 kl_V2792 appl_4)))+                                                                          _ -> throwError "if: expected boolean"++kl_assoc :: Core.Types.KLValue ->+            Core.Types.KLValue ->+            Core.Types.KLContext Core.Types.Env Core.Types.KLValue+kl_assoc (!kl_V2805) (!kl_V2806) = do let !appl_0 = Atom Nil+                                      !kl_if_1 <- appl_0 `pseq` (kl_V2806 `pseq` eq appl_0 kl_V2806)+                                      case kl_if_1 of+                                          Atom (B (True)) -> do return (Atom Nil)+                                          Atom (B (False)) -> do let pat_cond_2 kl_V2806 kl_V2806h kl_V2806hh kl_V2806ht kl_V2806t = do return kl_V2806h+                                                                     pat_cond_3 kl_V2806 kl_V2806h kl_V2806t = do kl_V2805 `pseq` (kl_V2806t `pseq` kl_assoc kl_V2805 kl_V2806t)+                                                                     pat_cond_4 = do do let !aw_5 = Core.Types.Atom (Core.Types.UnboundSym "shen.f_error")+                                                                                        applyWrapper aw_5 [ApplC (wrapNamed "assoc" kl_assoc)]+                                                                  in case kl_V2806 of+                                                                         !(kl_V2806@(Cons (!(kl_V2806h@(Cons (!kl_V2806hh)+                                                                                                             (!kl_V2806ht))))+                                                                                          (!kl_V2806t))) | eqCore kl_V2806hh kl_V2805 -> pat_cond_2 kl_V2806 kl_V2806h kl_V2806hh kl_V2806ht kl_V2806t+                                                                         !(kl_V2806@(Cons (!kl_V2806h)+                                                                                          (!kl_V2806t))) -> pat_cond_3 kl_V2806 kl_V2806h kl_V2806t+                                                                         _ -> pat_cond_4+                                          _ -> throwError "if: expected boolean"++kl_booleanP :: Core.Types.KLValue ->+               Core.Types.KLContext Core.Types.Env Core.Types.KLValue+kl_booleanP (!kl_V2812) = do let pat_cond_0 = do return (Atom (B True))+                                 pat_cond_1 = do return (Atom (B True))+                                 pat_cond_2 = do do return (Atom (B False))+                              in case kl_V2812 of+                                     kl_V2812@(Atom (UnboundSym "true")) -> pat_cond_0+                                     kl_V2812@(Atom (B (True))) -> pat_cond_0+                                     kl_V2812@(Atom (UnboundSym "false")) -> pat_cond_1+                                     kl_V2812@(Atom (B (False))) -> pat_cond_1+                                     _ -> pat_cond_2++kl_nl :: Core.Types.KLValue ->+         Core.Types.KLContext Core.Types.Env Core.Types.KLValue+kl_nl (!kl_V2814) = do let pat_cond_0 = do return (Core.Types.Atom (Core.Types.N (Core.Types.KI 0)))+                           pat_cond_1 = do do !appl_2 <- kl_stoutput+                                              let !aw_3 = Core.Types.Atom (Core.Types.UnboundSym "shen.prhush")+                                              !appl_4 <- appl_2 `pseq` applyWrapper aw_3 [Core.Types.Atom (Core.Types.Str "\n"),+                                                                                          appl_2]+                                              !appl_5 <- kl_V2814 `pseq` Primitives.subtract kl_V2814 (Core.Types.Atom (Core.Types.N (Core.Types.KI 1)))+                                              !appl_6 <- appl_5 `pseq` kl_nl appl_5+                                              appl_4 `pseq` (appl_6 `pseq` kl_do appl_4 appl_6)+                        in case kl_V2814 of+                               kl_V2814@(Atom (N (KI 0))) -> pat_cond_0+                               _ -> pat_cond_1++kl_difference :: Core.Types.KLValue ->+                 Core.Types.KLValue ->+                 Core.Types.KLContext Core.Types.Env Core.Types.KLValue+kl_difference (!kl_V2819) (!kl_V2820) = do let !appl_0 = Atom Nil+                                           !kl_if_1 <- appl_0 `pseq` (kl_V2819 `pseq` eq appl_0 kl_V2819)+                                           case kl_if_1 of+                                               Atom (B (True)) -> do return (Atom Nil)+                                               Atom (B (False)) -> do let pat_cond_2 kl_V2819 kl_V2819h kl_V2819t = do !kl_if_3 <- kl_V2819h `pseq` (kl_V2820 `pseq` kl_elementP kl_V2819h kl_V2820)+                                                                                                                       case kl_if_3 of+                                                                                                                           Atom (B (True)) -> do kl_V2819t `pseq` (kl_V2820 `pseq` kl_difference kl_V2819t kl_V2820)+                                                                                                                           Atom (B (False)) -> do do !appl_4 <- kl_V2819t `pseq` (kl_V2820 `pseq` kl_difference kl_V2819t kl_V2820)+                                                                                                                                                     kl_V2819h `pseq` (appl_4 `pseq` klCons kl_V2819h appl_4)+                                                                                                                           _ -> throwError "if: expected boolean"+                                                                          pat_cond_5 = do do let !aw_6 = Core.Types.Atom (Core.Types.UnboundSym "shen.f_error")+                                                                                             applyWrapper aw_6 [ApplC (wrapNamed "difference" kl_difference)]+                                                                       in case kl_V2819 of+                                                                              !(kl_V2819@(Cons (!kl_V2819h)+                                                                                               (!kl_V2819t))) -> pat_cond_2 kl_V2819 kl_V2819h kl_V2819t+                                                                              _ -> pat_cond_5+                                               _ -> throwError "if: expected boolean"++kl_do :: Core.Types.KLValue ->+         Core.Types.KLValue ->+         Core.Types.KLContext Core.Types.Env Core.Types.KLValue+kl_do (!kl_V2823) (!kl_V2824) = do return kl_V2824++kl_elementP :: Core.Types.KLValue ->+               Core.Types.KLValue ->+               Core.Types.KLContext Core.Types.Env Core.Types.KLValue+kl_elementP (!kl_V2836) (!kl_V2837) = do let !appl_0 = Atom Nil+                                         !kl_if_1 <- appl_0 `pseq` (kl_V2837 `pseq` eq appl_0 kl_V2837)+                                         case kl_if_1 of+                                             Atom (B (True)) -> do return (Atom (B False))+                                             Atom (B (False)) -> do let pat_cond_2 kl_V2837 kl_V2837h kl_V2837t = do return (Atom (B True))+                                                                        pat_cond_3 kl_V2837 kl_V2837h kl_V2837t = do kl_V2836 `pseq` (kl_V2837t `pseq` kl_elementP kl_V2836 kl_V2837t)+                                                                        pat_cond_4 = do do let !aw_5 = Core.Types.Atom (Core.Types.UnboundSym "shen.f_error")+                                                                                           applyWrapper aw_5 [ApplC (wrapNamed "element?" kl_elementP)]+                                                                     in case kl_V2837 of+                                                                            !(kl_V2837@(Cons (!kl_V2837h)+                                                                                             (!kl_V2837t))) | eqCore kl_V2837h kl_V2836 -> pat_cond_2 kl_V2837 kl_V2837h kl_V2837t+                                                                            !(kl_V2837@(Cons (!kl_V2837h)+                                                                                             (!kl_V2837t))) -> pat_cond_3 kl_V2837 kl_V2837h kl_V2837t+                                                                            _ -> pat_cond_4+                                             _ -> throwError "if: expected boolean"++kl_emptyP :: Core.Types.KLValue ->+             Core.Types.KLContext Core.Types.Env Core.Types.KLValue+kl_emptyP (!kl_V2843) = do let !appl_0 = Atom Nil+                           !kl_if_1 <- appl_0 `pseq` (kl_V2843 `pseq` eq appl_0 kl_V2843)+                           case kl_if_1 of+                               Atom (B (True)) -> do return (Atom (B True))+                               Atom (B (False)) -> do do return (Atom (B False))+                               _ -> throwError "if: expected boolean"++kl_fix :: Core.Types.KLValue ->+          Core.Types.KLValue ->+          Core.Types.KLContext Core.Types.Env Core.Types.KLValue+kl_fix (!kl_V2846) (!kl_V2847) = do !appl_0 <- kl_V2847 `pseq` applyWrapper kl_V2846 [kl_V2847]+                                    kl_V2846 `pseq` (kl_V2847 `pseq` (appl_0 `pseq` kl_shen_fix_help kl_V2846 kl_V2847 appl_0))++kl_shen_fix_help :: Core.Types.KLValue ->+                    Core.Types.KLValue ->+                    Core.Types.KLValue ->+                    Core.Types.KLContext Core.Types.Env Core.Types.KLValue+kl_shen_fix_help (!kl_V2858) (!kl_V2859) (!kl_V2860) = do !kl_if_0 <- kl_V2860 `pseq` (kl_V2859 `pseq` eq kl_V2860 kl_V2859)+                                                          case kl_if_0 of+                                                              Atom (B (True)) -> do return kl_V2860+                                                              Atom (B (False)) -> do do !appl_1 <- kl_V2860 `pseq` applyWrapper kl_V2858 [kl_V2860]+                                                                                        kl_V2858 `pseq` (kl_V2860 `pseq` (appl_1 `pseq` kl_shen_fix_help kl_V2858 kl_V2860 appl_1))+                                                              _ -> throwError "if: expected boolean"++kl_dict :: Core.Types.KLValue ->+           Core.Types.KLContext Core.Types.Env Core.Types.KLValue+kl_dict (!kl_V2862) = do let !appl_0 = ApplC (Func "lambda" (Context (\(!kl_D) -> do let !appl_1 = ApplC (Func "lambda" (Context (\(!kl_Tag) -> do let !appl_2 = ApplC (Func "lambda" (Context (\(!kl_Capacity) -> do let !appl_3 = ApplC (Func "lambda" (Context (\(!kl_Count) -> do let !appl_4 = ApplC (Func "lambda" (Context (\(!kl_Fill) -> do return kl_D)))+                                                                                                                                                                                                                                                                                      !appl_5 <- kl_V2862 `pseq` add (Core.Types.Atom (Core.Types.N (Core.Types.KI 2))) kl_V2862+                                                                                                                                                                                                                                                                                      let !appl_6 = Atom Nil+                                                                                                                                                                                                                                                                                      !appl_7 <- kl_D `pseq` (appl_5 `pseq` (appl_6 `pseq` kl_shen_fillvector kl_D (Core.Types.Atom (Core.Types.N (Core.Types.KI 3))) appl_5 appl_6))+                                                                                                                                                                                                                                                                                      appl_7 `pseq` applyWrapper appl_4 [appl_7])))+                                                                                                                                                                                                                      !appl_8 <- kl_D `pseq` addressTo kl_D (Core.Types.Atom (Core.Types.N (Core.Types.KI 2))) (Core.Types.Atom (Core.Types.N (Core.Types.KI 0)))+                                                                                                                                                                                                                      appl_8 `pseq` applyWrapper appl_3 [appl_8])))+                                                                                                                                                   !appl_9 <- kl_D `pseq` (kl_V2862 `pseq` addressTo kl_D (Core.Types.Atom (Core.Types.N (Core.Types.KI 1))) kl_V2862)+                                                                                                                                                   appl_9 `pseq` applyWrapper appl_2 [appl_9])))+                                                                                     !appl_10 <- kl_D `pseq` addressTo kl_D (Core.Types.Atom (Core.Types.N (Core.Types.KI 0))) (Core.Types.Atom (Core.Types.UnboundSym "shen.dictionary"))+                                                                                     appl_10 `pseq` applyWrapper appl_1 [appl_10])))+                         !appl_11 <- kl_V2862 `pseq` add (Core.Types.Atom (Core.Types.N (Core.Types.KI 3))) kl_V2862+                         !appl_12 <- appl_11 `pseq` absvector appl_11+                         appl_12 `pseq` applyWrapper appl_0 [appl_12]++kl_dictP :: Core.Types.KLValue ->+            Core.Types.KLContext Core.Types.Env Core.Types.KLValue+kl_dictP (!kl_V2864) = do !kl_if_0 <- kl_V2864 `pseq` absvectorP kl_V2864+                          case kl_if_0 of+                              Atom (B (True)) -> do let !appl_1 = ApplC (PL "thunk" (do return (Core.Types.Atom (Core.Types.UnboundSym "shen.not-dictionary"))))+                                                    !appl_2 <- kl_V2864 `pseq` (appl_1 `pseq` kl_LB_addressDivor kl_V2864 (Core.Types.Atom (Core.Types.N (Core.Types.KI 0))) appl_1)+                                                    !kl_if_3 <- appl_2 `pseq` eq appl_2 (Core.Types.Atom (Core.Types.UnboundSym "shen.dictionary"))+                                                    case kl_if_3 of+                                                        Atom (B (True)) -> do return (Atom (B True))+                                                        Atom (B (False)) -> do do return (Atom (B False))+                                                        _ -> throwError "if: expected boolean"+                              Atom (B (False)) -> do do return (Atom (B False))+                              _ -> throwError "if: expected boolean"++kl_shen_dict_capacity :: Core.Types.KLValue ->+                         Core.Types.KLContext Core.Types.Env Core.Types.KLValue+kl_shen_dict_capacity (!kl_V2866) = do kl_V2866 `pseq` addressFrom kl_V2866 (Core.Types.Atom (Core.Types.N (Core.Types.KI 1)))++kl_dict_count :: Core.Types.KLValue ->+                 Core.Types.KLContext Core.Types.Env Core.Types.KLValue+kl_dict_count (!kl_V2868) = do kl_V2868 `pseq` addressFrom kl_V2868 (Core.Types.Atom (Core.Types.N (Core.Types.KI 2)))++kl_shen_dict_count_RB :: Core.Types.KLValue ->+                         Core.Types.KLValue ->+                         Core.Types.KLContext Core.Types.Env Core.Types.KLValue+kl_shen_dict_count_RB (!kl_V2871) (!kl_V2872) = do kl_V2871 `pseq` (kl_V2872 `pseq` addressTo kl_V2871 (Core.Types.Atom (Core.Types.N (Core.Types.KI 2))) kl_V2872)++kl_shen_LB_dict_bucket :: Core.Types.KLValue ->+                          Core.Types.KLValue ->+                          Core.Types.KLContext Core.Types.Env Core.Types.KLValue+kl_shen_LB_dict_bucket (!kl_V2875) (!kl_V2876) = do !appl_0 <- kl_V2876 `pseq` add (Core.Types.Atom (Core.Types.N (Core.Types.KI 3))) kl_V2876+                                                    kl_V2875 `pseq` (appl_0 `pseq` addressFrom kl_V2875 appl_0)++kl_shen_dict_bucket_RB :: Core.Types.KLValue ->+                          Core.Types.KLValue ->+                          Core.Types.KLValue ->+                          Core.Types.KLContext Core.Types.Env Core.Types.KLValue+kl_shen_dict_bucket_RB (!kl_V2880) (!kl_V2881) (!kl_V2882) = do !appl_0 <- kl_V2881 `pseq` add (Core.Types.Atom (Core.Types.N (Core.Types.KI 3))) kl_V2881+                                                                kl_V2880 `pseq` (appl_0 `pseq` (kl_V2882 `pseq` addressTo kl_V2880 appl_0 kl_V2882))++kl_shen_set_key_entry_value :: Core.Types.KLValue ->+                               Core.Types.KLValue ->+                               Core.Types.KLValue ->+                               Core.Types.KLContext Core.Types.Env Core.Types.KLValue+kl_shen_set_key_entry_value (!kl_V2889) (!kl_V2890) (!kl_V2891) = do let !appl_0 = Atom Nil+                                                                     !kl_if_1 <- appl_0 `pseq` (kl_V2891 `pseq` eq appl_0 kl_V2891)+                                                                     case kl_if_1 of+                                                                         Atom (B (True)) -> do !appl_2 <- kl_V2889 `pseq` (kl_V2890 `pseq` klCons kl_V2889 kl_V2890)+                                                                                               let !appl_3 = Atom Nil+                                                                                               appl_2 `pseq` (appl_3 `pseq` klCons appl_2 appl_3)+                                                                         Atom (B (False)) -> do let pat_cond_4 kl_V2891 kl_V2891h kl_V2891hh kl_V2891ht kl_V2891t = do !appl_5 <- kl_V2891hh `pseq` (kl_V2890 `pseq` klCons kl_V2891hh kl_V2890)+                                                                                                                                                                       appl_5 `pseq` (kl_V2891t `pseq` klCons appl_5 kl_V2891t)+                                                                                                    pat_cond_6 kl_V2891 kl_V2891h kl_V2891t = do !appl_7 <- kl_V2889 `pseq` (kl_V2890 `pseq` (kl_V2891t `pseq` kl_shen_set_key_entry_value kl_V2889 kl_V2890 kl_V2891t))+                                                                                                                                                 kl_V2891h `pseq` (appl_7 `pseq` klCons kl_V2891h appl_7)+                                                                                                    pat_cond_8 = do do let !aw_9 = Core.Types.Atom (Core.Types.UnboundSym "shen.f_error")+                                                                                                                       applyWrapper aw_9 [ApplC (wrapNamed "shen.set-key-entry-value" kl_shen_set_key_entry_value)]+                                                                                                 in case kl_V2891 of+                                                                                                        !(kl_V2891@(Cons (!(kl_V2891h@(Cons (!kl_V2891hh)+                                                                                                                                            (!kl_V2891ht))))+                                                                                                                         (!kl_V2891t))) | eqCore kl_V2891hh kl_V2889 -> pat_cond_4 kl_V2891 kl_V2891h kl_V2891hh kl_V2891ht kl_V2891t+                                                                                                        !(kl_V2891@(Cons (!kl_V2891h)+                                                                                                                         (!kl_V2891t))) -> pat_cond_6 kl_V2891 kl_V2891h kl_V2891t+                                                                                                        _ -> pat_cond_8+                                                                         _ -> throwError "if: expected boolean"++kl_shen_remove_key_entry_value :: Core.Types.KLValue ->+                                  Core.Types.KLValue ->+                                  Core.Types.KLContext Core.Types.Env Core.Types.KLValue+kl_shen_remove_key_entry_value (!kl_V2897) (!kl_V2898) = do let !appl_0 = Atom Nil+                                                            !kl_if_1 <- appl_0 `pseq` (kl_V2898 `pseq` eq appl_0 kl_V2898)+                                                            case kl_if_1 of+                                                                Atom (B (True)) -> do return (Atom Nil)+                                                                Atom (B (False)) -> do let pat_cond_2 kl_V2898 kl_V2898h kl_V2898hh kl_V2898ht kl_V2898t = do return kl_V2898t+                                                                                           pat_cond_3 kl_V2898 kl_V2898h kl_V2898t = do !appl_4 <- kl_V2897 `pseq` (kl_V2898t `pseq` kl_shen_remove_key_entry_value kl_V2897 kl_V2898t)+                                                                                                                                        kl_V2898h `pseq` (appl_4 `pseq` klCons kl_V2898h appl_4)+                                                                                           pat_cond_5 = do do let !aw_6 = Core.Types.Atom (Core.Types.UnboundSym "shen.f_error")+                                                                                                              applyWrapper aw_6 [ApplC (wrapNamed "shen.remove-key-entry-value" kl_shen_remove_key_entry_value)]+                                                                                        in case kl_V2898 of+                                                                                               !(kl_V2898@(Cons (!(kl_V2898h@(Cons (!kl_V2898hh)+                                                                                                                                   (!kl_V2898ht))))+                                                                                                                (!kl_V2898t))) | eqCore kl_V2898hh kl_V2897 -> pat_cond_2 kl_V2898 kl_V2898h kl_V2898hh kl_V2898ht kl_V2898t+                                                                                               !(kl_V2898@(Cons (!kl_V2898h)+                                                                                                                (!kl_V2898t))) -> pat_cond_3 kl_V2898 kl_V2898h kl_V2898t+                                                                                               _ -> pat_cond_5+                                                                _ -> throwError "if: expected boolean"++kl_shen_dict_update_count :: Core.Types.KLValue ->+                             Core.Types.KLValue ->+                             Core.Types.KLValue ->+                             Core.Types.KLContext Core.Types.Env Core.Types.KLValue+kl_shen_dict_update_count (!kl_V2902) (!kl_V2903) (!kl_V2904) = do let !appl_0 = ApplC (Func "lambda" (Context (\(!kl_Diff) -> do !appl_1 <- kl_V2902 `pseq` kl_dict_count kl_V2902+                                                                                                                                  !appl_2 <- kl_Diff `pseq` (appl_1 `pseq` add kl_Diff appl_1)+                                                                                                                                  kl_V2902 `pseq` (appl_2 `pseq` kl_shen_dict_count_RB kl_V2902 appl_2))))+                                                                   !appl_3 <- kl_V2904 `pseq` kl_length kl_V2904+                                                                   !appl_4 <- kl_V2903 `pseq` kl_length kl_V2903+                                                                   !appl_5 <- appl_3 `pseq` (appl_4 `pseq` Primitives.subtract appl_3 appl_4)+                                                                   appl_5 `pseq` applyWrapper appl_0 [appl_5]++kl_dict_RB :: Core.Types.KLValue ->+              Core.Types.KLValue ->+              Core.Types.KLValue ->+              Core.Types.KLContext Core.Types.Env Core.Types.KLValue+kl_dict_RB (!kl_V2908) (!kl_V2909) (!kl_V2910) = do let !appl_0 = ApplC (Func "lambda" (Context (\(!kl_N) -> do let !appl_1 = ApplC (Func "lambda" (Context (\(!kl_Bucket) -> do let !appl_2 = ApplC (Func "lambda" (Context (\(!kl_NewBucket) -> do let !appl_3 = ApplC (Func "lambda" (Context (\(!kl_Change) -> do let !appl_4 = ApplC (Func "lambda" (Context (\(!kl_Count) -> do return kl_V2910)))+                                                                                                                                                                                                                                                                                                                      !appl_5 <- kl_V2908 `pseq` (kl_Bucket `pseq` (kl_NewBucket `pseq` kl_shen_dict_update_count kl_V2908 kl_Bucket kl_NewBucket))+                                                                                                                                                                                                                                                                                                                      appl_5 `pseq` applyWrapper appl_4 [appl_5])))+                                                                                                                                                                                                                                                     !appl_6 <- kl_V2908 `pseq` (kl_N `pseq` (kl_NewBucket `pseq` kl_shen_dict_bucket_RB kl_V2908 kl_N kl_NewBucket))+                                                                                                                                                                                                                                                     appl_6 `pseq` applyWrapper appl_3 [appl_6])))+                                                                                                                                                                                 !appl_7 <- kl_V2909 `pseq` (kl_V2910 `pseq` (kl_Bucket `pseq` kl_shen_set_key_entry_value kl_V2909 kl_V2910 kl_Bucket))+                                                                                                                                                                                 appl_7 `pseq` applyWrapper appl_2 [appl_7])))+                                                                                                                !appl_8 <- kl_V2908 `pseq` (kl_N `pseq` kl_shen_LB_dict_bucket kl_V2908 kl_N)+                                                                                                                appl_8 `pseq` applyWrapper appl_1 [appl_8])))+                                                    !appl_9 <- kl_V2908 `pseq` kl_shen_dict_capacity kl_V2908+                                                    !appl_10 <- kl_V2909 `pseq` (appl_9 `pseq` kl_hash kl_V2909 appl_9)+                                                    appl_10 `pseq` applyWrapper appl_0 [appl_10]++kl_LB_dictDivor :: Core.Types.KLValue ->+                   Core.Types.KLValue ->+                   Core.Types.KLValue ->+                   Core.Types.KLContext Core.Types.Env Core.Types.KLValue+kl_LB_dictDivor (!kl_V2914) (!kl_V2915) (!kl_V2916) = do let !appl_0 = ApplC (Func "lambda" (Context (\(!kl_N) -> do let !appl_1 = ApplC (Func "lambda" (Context (\(!kl_Bucket) -> do let !appl_2 = ApplC (Func "lambda" (Context (\(!kl_Result) -> do !kl_if_3 <- kl_Result `pseq` kl_emptyP kl_Result+                                                                                                                                                                                                                                                       case kl_if_3 of+                                                                                                                                                                                                                                                           Atom (B (True)) -> do kl_V2916 `pseq` kl_thaw kl_V2916+                                                                                                                                                                                                                                                           Atom (B (False)) -> do do kl_Result `pseq` tl kl_Result+                                                                                                                                                                                                                                                           _ -> throwError "if: expected boolean")))+                                                                                                                                                                                      !appl_4 <- kl_V2915 `pseq` (kl_Bucket `pseq` kl_assoc kl_V2915 kl_Bucket)+                                                                                                                                                                                      appl_4 `pseq` applyWrapper appl_2 [appl_4])))+                                                                                                                     !appl_5 <- kl_V2914 `pseq` (kl_N `pseq` kl_shen_LB_dict_bucket kl_V2914 kl_N)+                                                                                                                     appl_5 `pseq` applyWrapper appl_1 [appl_5])))+                                                         !appl_6 <- kl_V2914 `pseq` kl_shen_dict_capacity kl_V2914+                                                         !appl_7 <- kl_V2915 `pseq` (appl_6 `pseq` kl_hash kl_V2915 appl_6)+                                                         appl_7 `pseq` applyWrapper appl_0 [appl_7]++kl_LB_dict :: Core.Types.KLValue ->+              Core.Types.KLValue ->+              Core.Types.KLContext Core.Types.Env Core.Types.KLValue+kl_LB_dict (!kl_V2919) (!kl_V2920) = do let !appl_0 = ApplC (PL "thunk" (do simpleError (Core.Types.Atom (Core.Types.Str "value not found\n"))))+                                        kl_V2919 `pseq` (kl_V2920 `pseq` (appl_0 `pseq` kl_LB_dictDivor kl_V2919 kl_V2920 appl_0))++kl_dict_rm :: Core.Types.KLValue ->+              Core.Types.KLValue ->+              Core.Types.KLContext Core.Types.Env Core.Types.KLValue+kl_dict_rm (!kl_V2923) (!kl_V2924) = do let !appl_0 = ApplC (Func "lambda" (Context (\(!kl_N) -> do let !appl_1 = ApplC (Func "lambda" (Context (\(!kl_Bucket) -> do let !appl_2 = ApplC (Func "lambda" (Context (\(!kl_NewBucket) -> do let !appl_3 = ApplC (Func "lambda" (Context (\(!kl_Change) -> do let !appl_4 = ApplC (Func "lambda" (Context (\(!kl_Count) -> do return kl_V2924)))+                                                                                                                                                                                                                                                                                                          !appl_5 <- kl_V2923 `pseq` (kl_Bucket `pseq` (kl_NewBucket `pseq` kl_shen_dict_update_count kl_V2923 kl_Bucket kl_NewBucket))+                                                                                                                                                                                                                                                                                                          appl_5 `pseq` applyWrapper appl_4 [appl_5])))+                                                                                                                                                                                                                                         !appl_6 <- kl_V2923 `pseq` (kl_N `pseq` (kl_NewBucket `pseq` kl_shen_dict_bucket_RB kl_V2923 kl_N kl_NewBucket))+                                                                                                                                                                                                                                         appl_6 `pseq` applyWrapper appl_3 [appl_6])))+                                                                                                                                                                     !appl_7 <- kl_V2924 `pseq` (kl_Bucket `pseq` kl_shen_remove_key_entry_value kl_V2924 kl_Bucket)+                                                                                                                                                                     appl_7 `pseq` applyWrapper appl_2 [appl_7])))+                                                                                                    !appl_8 <- kl_V2923 `pseq` (kl_N `pseq` kl_shen_LB_dict_bucket kl_V2923 kl_N)+                                                                                                    appl_8 `pseq` applyWrapper appl_1 [appl_8])))+                                        !appl_9 <- kl_V2923 `pseq` kl_shen_dict_capacity kl_V2923+                                        !appl_10 <- kl_V2924 `pseq` (appl_9 `pseq` kl_hash kl_V2924 appl_9)+                                        appl_10 `pseq` applyWrapper appl_0 [appl_10]++kl_dict_fold :: Core.Types.KLValue ->+                Core.Types.KLValue ->+                Core.Types.KLValue ->+                Core.Types.KLContext Core.Types.Env Core.Types.KLValue+kl_dict_fold (!kl_V2928) (!kl_V2929) (!kl_V2930) = do let !appl_0 = ApplC (Func "lambda" (Context (\(!kl_Limit) -> do kl_V2928 `pseq` (kl_V2929 `pseq` (kl_V2930 `pseq` (kl_Limit `pseq` kl_shen_dict_fold_h kl_V2928 kl_V2929 kl_V2930 (Core.Types.Atom (Core.Types.N (Core.Types.KI 0))) kl_Limit))))))+                                                      !appl_1 <- kl_V2929 `pseq` kl_shen_dict_capacity kl_V2929+                                                      appl_1 `pseq` applyWrapper appl_0 [appl_1]++kl_shen_dict_fold_h :: Core.Types.KLValue ->+                       Core.Types.KLValue ->+                       Core.Types.KLValue ->+                       Core.Types.KLValue ->+                       Core.Types.KLValue ->+                       Core.Types.KLContext Core.Types.Env Core.Types.KLValue+kl_shen_dict_fold_h (!kl_V2937) (!kl_V2938) (!kl_V2939) (!kl_V2940) (!kl_V2941) = do !kl_if_0 <- kl_V2941 `pseq` (kl_V2940 `pseq` eq kl_V2941 kl_V2940)+                                                                                     case kl_if_0 of+                                                                                         Atom (B (True)) -> do return kl_V2939+                                                                                         Atom (B (False)) -> do do let !appl_1 = ApplC (Func "lambda" (Context (\(!kl_B) -> do let !appl_2 = ApplC (Func "lambda" (Context (\(!kl_Acc) -> do !appl_3 <- kl_V2940 `pseq` add (Core.Types.Atom (Core.Types.N (Core.Types.KI 1))) kl_V2940+                                                                                                                                                                                                                                             kl_V2937 `pseq` (kl_V2938 `pseq` (kl_Acc `pseq` (appl_3 `pseq` (kl_V2941 `pseq` kl_shen_dict_fold_h kl_V2937 kl_V2938 kl_Acc appl_3 kl_V2941)))))))+                                                                                                                                                                               !appl_4 <- kl_V2937 `pseq` (kl_B `pseq` (kl_V2939 `pseq` kl_shen_bucket_fold kl_V2937 kl_B kl_V2939))+                                                                                                                                                                               appl_4 `pseq` applyWrapper appl_2 [appl_4])))+                                                                                                                   !appl_5 <- kl_V2938 `pseq` (kl_V2940 `pseq` kl_shen_LB_dict_bucket kl_V2938 kl_V2940)+                                                                                                                   appl_5 `pseq` applyWrapper appl_1 [appl_5]+                                                                                         _ -> throwError "if: expected boolean"++kl_shen_bucket_fold :: Core.Types.KLValue ->+                       Core.Types.KLValue ->+                       Core.Types.KLValue ->+                       Core.Types.KLContext Core.Types.Env Core.Types.KLValue+kl_shen_bucket_fold (!kl_V2945) (!kl_V2946) (!kl_V2947) = do let !appl_0 = Atom Nil+                                                             !kl_if_1 <- appl_0 `pseq` (kl_V2946 `pseq` eq appl_0 kl_V2946)+                                                             case kl_if_1 of+                                                                 Atom (B (True)) -> do return kl_V2947+                                                                 Atom (B (False)) -> do let pat_cond_2 kl_V2946 kl_V2946h kl_V2946hh kl_V2946ht kl_V2946t = do !appl_3 <- kl_V2945 `pseq` (kl_V2946t `pseq` (kl_V2947 `pseq` kl_fold_right kl_V2945 kl_V2946t kl_V2947))+                                                                                                                                                               kl_V2946hh `pseq` (kl_V2946ht `pseq` (appl_3 `pseq` applyWrapper kl_V2945 [kl_V2946hh,+                                                                                                                                                                                                                                          kl_V2946ht,+                                                                                                                                                                                                                                          appl_3]))+                                                                                            pat_cond_4 = do do let !aw_5 = Core.Types.Atom (Core.Types.UnboundSym "shen.f_error")+                                                                                                               applyWrapper aw_5 [ApplC (wrapNamed "shen.bucket-fold" kl_shen_bucket_fold)]+                                                                                         in case kl_V2946 of+                                                                                                !(kl_V2946@(Cons (!(kl_V2946h@(Cons (!kl_V2946hh)+                                                                                                                                    (!kl_V2946ht))))+                                                                                                                 (!kl_V2946t))) -> pat_cond_2 kl_V2946 kl_V2946h kl_V2946hh kl_V2946ht kl_V2946t+                                                                                                _ -> pat_cond_4+                                                                 _ -> throwError "if: expected boolean"++kl_dict_keys :: Core.Types.KLValue ->+                Core.Types.KLContext Core.Types.Env Core.Types.KLValue+kl_dict_keys (!kl_V2949) = kl_dict_fold (ApplC (wrapNamed "lambda" (\k (_ :: Core.Types.KLValue) (acc :: Core.Types.KLValue) -> klCons k acc))) kl_V2949 (Atom Nil)++kl_dict_values :: Core.Types.KLValue ->+                  Core.Types.KLContext Core.Types.Env Core.Types.KLValue+kl_dict_values (!kl_V2951) = kl_dict_fold (ApplC (wrapNamed "lambda" (\(_ :: Core.Types.KLValue) v (acc :: Core.Types.KLValue) -> klCons v acc))) kl_V2951 (Atom Nil)++kl_put :: Core.Types.KLValue ->+          Core.Types.KLValue ->+          Core.Types.KLValue ->+          Core.Types.KLValue ->+          Core.Types.KLContext Core.Types.Env Core.Types.KLValue+kl_put (!kl_V2956) (!kl_V2957) (!kl_V2958) (!kl_V2959) = do let !appl_0 = ApplC (Func "lambda" (Context (\(!kl_Curr) -> do let !appl_1 = ApplC (Func "lambda" (Context (\(!kl_Added) -> do let !appl_2 = ApplC (Func "lambda" (Context (\(!kl_Update) -> do return kl_V2958)))+                                                                                                                                                                                           !appl_3 <- kl_V2959 `pseq` (kl_V2956 `pseq` (kl_Added `pseq` kl_dict_RB kl_V2959 kl_V2956 kl_Added))+                                                                                                                                                                                           appl_3 `pseq` applyWrapper appl_2 [appl_3])))+                                                                                                                           !appl_4 <- kl_V2957 `pseq` (kl_V2958 `pseq` (kl_Curr `pseq` kl_shen_set_key_entry_value kl_V2957 kl_V2958 kl_Curr))+                                                                                                                           appl_4 `pseq` applyWrapper appl_1 [appl_4])))+                                                            let !appl_5 = ApplC (PL "thunk" (do return (Atom Nil)))+                                                            !appl_6 <- kl_V2959 `pseq` (kl_V2956 `pseq` (appl_5 `pseq` kl_LB_dictDivor kl_V2959 kl_V2956 appl_5))+                                                            appl_6 `pseq` applyWrapper appl_0 [appl_6]++kl_unput :: Core.Types.KLValue ->+            Core.Types.KLValue ->+            Core.Types.KLValue ->+            Core.Types.KLContext Core.Types.Env Core.Types.KLValue+kl_unput (!kl_V2963) (!kl_V2964) (!kl_V2965) = do let !appl_0 = ApplC (Func "lambda" (Context (\(!kl_Curr) -> do let !appl_1 = ApplC (Func "lambda" (Context (\(!kl_Removed) -> do let !appl_2 = ApplC (Func "lambda" (Context (\(!kl_Update) -> do return kl_V2963)))+                                                                                                                                                                                   !appl_3 <- kl_V2965 `pseq` (kl_V2963 `pseq` (kl_Removed `pseq` kl_dict_RB kl_V2965 kl_V2963 kl_Removed))+                                                                                                                                                                                   appl_3 `pseq` applyWrapper appl_2 [appl_3])))+                                                                                                                 !appl_4 <- kl_V2964 `pseq` (kl_Curr `pseq` kl_shen_remove_key_entry_value kl_V2964 kl_Curr)+                                                                                                                 appl_4 `pseq` applyWrapper appl_1 [appl_4])))+                                                  let !appl_5 = ApplC (PL "thunk" (do return (Atom Nil)))+                                                  !appl_6 <- kl_V2965 `pseq` (kl_V2963 `pseq` (appl_5 `pseq` kl_LB_dictDivor kl_V2965 kl_V2963 appl_5))+                                                  appl_6 `pseq` applyWrapper appl_0 [appl_6]++kl_getDivor :: Core.Types.KLValue ->+               Core.Types.KLValue ->+               Core.Types.KLValue ->+               Core.Types.KLValue ->+               Core.Types.KLContext Core.Types.Env Core.Types.KLValue+kl_getDivor (!kl_V2970) (!kl_V2971) (!kl_V2972) (!kl_V2973) = do let !appl_0 = ApplC (Func "lambda" (Context (\(!kl_Entry) -> do let !appl_1 = ApplC (Func "lambda" (Context (\(!kl_Result) -> do !kl_if_2 <- kl_Result `pseq` kl_emptyP kl_Result+                                                                                                                                                                                                  case kl_if_2 of+                                                                                                                                                                                                      Atom (B (True)) -> do kl_V2972 `pseq` kl_thaw kl_V2972+                                                                                                                                                                                                      Atom (B (False)) -> do do kl_Result `pseq` tl kl_Result+                                                                                                                                                                                                      _ -> throwError "if: expected boolean")))+                                                                                                                                 !appl_3 <- kl_V2971 `pseq` (kl_Entry `pseq` kl_assoc kl_V2971 kl_Entry)+                                                                                                                                 appl_3 `pseq` applyWrapper appl_1 [appl_3])))+                                                                 let !appl_4 = ApplC (PL "thunk" (do return (Atom Nil)))+                                                                 !appl_5 <- kl_V2973 `pseq` (kl_V2970 `pseq` (appl_4 `pseq` kl_LB_dictDivor kl_V2973 kl_V2970 appl_4))+                                                                 appl_5 `pseq` applyWrapper appl_0 [appl_5]++kl_get :: Core.Types.KLValue ->+          Core.Types.KLValue ->+          Core.Types.KLValue ->+          Core.Types.KLContext Core.Types.Env Core.Types.KLValue+kl_get (!kl_V2977) (!kl_V2978) (!kl_V2979) = do let !appl_0 = ApplC (PL "thunk" (do simpleError (Core.Types.Atom (Core.Types.Str "value not found\n"))))+                                                kl_V2977 `pseq` (kl_V2978 `pseq` (appl_0 `pseq` (kl_V2979 `pseq` kl_getDivor kl_V2977 kl_V2978 appl_0 kl_V2979)))++kl_hash :: Core.Types.KLValue ->+           Core.Types.KLValue ->+           Core.Types.KLContext Core.Types.Env Core.Types.KLValue+kl_hash (!kl_V2982) (!kl_V2983) = do let !appl_0 = ApplC (Func "lambda" (Context (\(!kl_X) -> do kl_X `pseq` stringToN kl_X)))+                                     !appl_1 <- kl_V2982 `pseq` kl_explode kl_V2982+                                     !appl_2 <- appl_0 `pseq` (appl_1 `pseq` kl_map appl_0 appl_1)+                                     !appl_3 <- appl_2 `pseq` kl_sum appl_2+                                     appl_3 `pseq` (kl_V2983 `pseq` kl_shen_mod appl_3 kl_V2983)++kl_shen_mod :: Core.Types.KLValue ->+               Core.Types.KLValue ->+               Core.Types.KLContext Core.Types.Env Core.Types.KLValue+kl_shen_mod (!kl_V2986) (!kl_V2987) = do let !appl_0 = Atom Nil+                                         !appl_1 <- kl_V2987 `pseq` (appl_0 `pseq` klCons kl_V2987 appl_0)+                                         !appl_2 <- kl_V2986 `pseq` (appl_1 `pseq` kl_shen_multiples kl_V2986 appl_1)+                                         kl_V2986 `pseq` (appl_2 `pseq` kl_shen_modh kl_V2986 appl_2)++kl_shen_multiples :: Core.Types.KLValue ->+                     Core.Types.KLValue ->+                     Core.Types.KLContext Core.Types.Env Core.Types.KLValue+kl_shen_multiples (!kl_V2990) (!kl_V2991) = do !kl_if_0 <- let pat_cond_1 kl_V2991 kl_V2991h kl_V2991t = do !kl_if_2 <- kl_V2991h `pseq` (kl_V2990 `pseq` greaterThan kl_V2991h kl_V2990)+                                                                                                            case kl_if_2 of+                                                                                                                Atom (B (True)) -> do return (Atom (B True))+                                                                                                                Atom (B (False)) -> do do return (Atom (B False))+                                                                                                                _ -> throwError "if: expected boolean"+                                                               pat_cond_3 = do do return (Atom (B False))+                                                            in case kl_V2991 of+                                                                   !(kl_V2991@(Cons (!kl_V2991h)+                                                                                    (!kl_V2991t))) -> pat_cond_1 kl_V2991 kl_V2991h kl_V2991t+                                                                   _ -> pat_cond_3+                                               case kl_if_0 of+                                                   Atom (B (True)) -> do kl_V2991 `pseq` tl kl_V2991+                                                   Atom (B (False)) -> do let pat_cond_4 kl_V2991 kl_V2991h kl_V2991t = do !appl_5 <- kl_V2991h `pseq` multiply (Core.Types.Atom (Core.Types.N (Core.Types.KI 2))) kl_V2991h+                                                                                                                           !appl_6 <- appl_5 `pseq` (kl_V2991 `pseq` klCons appl_5 kl_V2991)+                                                                                                                           kl_V2990 `pseq` (appl_6 `pseq` kl_shen_multiples kl_V2990 appl_6)+                                                                              pat_cond_7 = do do let !aw_8 = Core.Types.Atom (Core.Types.UnboundSym "shen.f_error")+                                                                                                 applyWrapper aw_8 [ApplC (wrapNamed "shen.multiples" kl_shen_multiples)]+                                                                           in case kl_V2991 of+                                                                                  !(kl_V2991@(Cons (!kl_V2991h)+                                                                                                   (!kl_V2991t))) -> pat_cond_4 kl_V2991 kl_V2991h kl_V2991t+                                                                                  _ -> pat_cond_7+                                                   _ -> throwError "if: expected boolean"++kl_shen_modh :: Core.Types.KLValue ->+                Core.Types.KLValue ->+                Core.Types.KLContext Core.Types.Env Core.Types.KLValue+kl_shen_modh (!kl_V2996) (!kl_V2997) = do let pat_cond_0 = do return (Core.Types.Atom (Core.Types.N (Core.Types.KI 0)))+                                              pat_cond_1 = do let !appl_2 = Atom Nil+                                                              !kl_if_3 <- appl_2 `pseq` (kl_V2997 `pseq` eq appl_2 kl_V2997)+                                                              case kl_if_3 of+                                                                  Atom (B (True)) -> do return kl_V2996+                                                                  Atom (B (False)) -> do !kl_if_4 <- let pat_cond_5 kl_V2997 kl_V2997h kl_V2997t = do !kl_if_6 <- kl_V2997h `pseq` (kl_V2996 `pseq` greaterThan kl_V2997h kl_V2996)+                                                                                                                                                      case kl_if_6 of+                                                                                                                                                          Atom (B (True)) -> do return (Atom (B True))+                                                                                                                                                          Atom (B (False)) -> do do return (Atom (B False))+                                                                                                                                                          _ -> throwError "if: expected boolean"+                                                                                                         pat_cond_7 = do do return (Atom (B False))+                                                                                                      in case kl_V2997 of+                                                                                                             !(kl_V2997@(Cons (!kl_V2997h)+                                                                                                                              (!kl_V2997t))) -> pat_cond_5 kl_V2997 kl_V2997h kl_V2997t+                                                                                                             _ -> pat_cond_7+                                                                                         case kl_if_4 of+                                                                                             Atom (B (True)) -> do !appl_8 <- kl_V2997 `pseq` tl kl_V2997+                                                                                                                   !kl_if_9 <- appl_8 `pseq` kl_emptyP appl_8+                                                                                                                   case kl_if_9 of+                                                                                                                       Atom (B (True)) -> do return kl_V2996+                                                                                                                       Atom (B (False)) -> do do !appl_10 <- kl_V2997 `pseq` tl kl_V2997+                                                                                                                                                 kl_V2996 `pseq` (appl_10 `pseq` kl_shen_modh kl_V2996 appl_10)+                                                                                                                       _ -> throwError "if: expected boolean"+                                                                                             Atom (B (False)) -> do let pat_cond_11 kl_V2997 kl_V2997h kl_V2997t = do !appl_12 <- kl_V2996 `pseq` (kl_V2997h `pseq` Primitives.subtract kl_V2996 kl_V2997h)+                                                                                                                                                                      appl_12 `pseq` (kl_V2997 `pseq` kl_shen_modh appl_12 kl_V2997)+                                                                                                                        pat_cond_13 = do do let !aw_14 = Core.Types.Atom (Core.Types.UnboundSym "shen.f_error")+                                                                                                                                            applyWrapper aw_14 [ApplC (wrapNamed "shen.modh" kl_shen_modh)]+                                                                                                                     in case kl_V2997 of+                                                                                                                            !(kl_V2997@(Cons (!kl_V2997h)+                                                                                                                                             (!kl_V2997t))) -> pat_cond_11 kl_V2997 kl_V2997h kl_V2997t+                                                                                                                            _ -> pat_cond_13+                                                                                             _ -> throwError "if: expected boolean"+                                                                  _ -> throwError "if: expected boolean"+                                           in case kl_V2996 of+                                                  kl_V2996@(Atom (N (KI 0))) -> pat_cond_0+                                                  _ -> pat_cond_1++kl_sum :: Core.Types.KLValue ->+          Core.Types.KLContext Core.Types.Env Core.Types.KLValue+kl_sum (!kl_V2999) = do let !appl_0 = Atom Nil+                        !kl_if_1 <- appl_0 `pseq` (kl_V2999 `pseq` eq appl_0 kl_V2999)+                        case kl_if_1 of+                            Atom (B (True)) -> do return (Core.Types.Atom (Core.Types.N (Core.Types.KI 0)))+                            Atom (B (False)) -> do let pat_cond_2 kl_V2999 kl_V2999h kl_V2999t = do !appl_3 <- kl_V2999t `pseq` kl_sum kl_V2999t+                                                                                                    kl_V2999h `pseq` (appl_3 `pseq` add kl_V2999h appl_3)+                                                       pat_cond_4 = do do let !aw_5 = Core.Types.Atom (Core.Types.UnboundSym "shen.f_error")+                                                                          applyWrapper aw_5 [ApplC (wrapNamed "sum" kl_sum)]+                                                    in case kl_V2999 of+                                                           !(kl_V2999@(Cons (!kl_V2999h)+                                                                            (!kl_V2999t))) -> pat_cond_2 kl_V2999 kl_V2999h kl_V2999t+                                                           _ -> pat_cond_4+                            _ -> throwError "if: expected boolean"++kl_head :: Core.Types.KLValue ->+           Core.Types.KLContext Core.Types.Env Core.Types.KLValue+kl_head (!kl_V3007) = do let pat_cond_0 kl_V3007 kl_V3007h kl_V3007t = do return kl_V3007h+                             pat_cond_1 = do do simpleError (Core.Types.Atom (Core.Types.Str "head expects a non-empty list"))+                          in case kl_V3007 of+                                 !(kl_V3007@(Cons (!kl_V3007h)+                                                  (!kl_V3007t))) -> pat_cond_0 kl_V3007 kl_V3007h kl_V3007t+                                 _ -> pat_cond_1++kl_tail :: Core.Types.KLValue ->+           Core.Types.KLContext Core.Types.Env Core.Types.KLValue+kl_tail (!kl_V3015) = do let pat_cond_0 kl_V3015 kl_V3015h kl_V3015t = do return kl_V3015t+                             pat_cond_1 = do do simpleError (Core.Types.Atom (Core.Types.Str "tail expects a non-empty list"))+                          in case kl_V3015 of+                                 !(kl_V3015@(Cons (!kl_V3015h)+                                                  (!kl_V3015t))) -> pat_cond_0 kl_V3015 kl_V3015h kl_V3015t+                                 _ -> pat_cond_1++kl_hdstr :: Core.Types.KLValue ->+            Core.Types.KLContext Core.Types.Env Core.Types.KLValue+kl_hdstr (!kl_V3017) = do kl_V3017 `pseq` pos kl_V3017 (Core.Types.Atom (Core.Types.N (Core.Types.KI 0)))++kl_intersection :: Core.Types.KLValue ->+                   Core.Types.KLValue ->+                   Core.Types.KLContext Core.Types.Env Core.Types.KLValue+kl_intersection (!kl_V3022) (!kl_V3023) = do let !appl_0 = Atom Nil+                                             !kl_if_1 <- appl_0 `pseq` (kl_V3022 `pseq` eq appl_0 kl_V3022)+                                             case kl_if_1 of+                                                 Atom (B (True)) -> do return (Atom Nil)+                                                 Atom (B (False)) -> do let pat_cond_2 kl_V3022 kl_V3022h kl_V3022t = do !kl_if_3 <- kl_V3022h `pseq` (kl_V3023 `pseq` kl_elementP kl_V3022h kl_V3023)+                                                                                                                         case kl_if_3 of+                                                                                                                             Atom (B (True)) -> do !appl_4 <- kl_V3022t `pseq` (kl_V3023 `pseq` kl_intersection kl_V3022t kl_V3023)+                                                                                                                                                   kl_V3022h `pseq` (appl_4 `pseq` klCons kl_V3022h appl_4)+                                                                                                                             Atom (B (False)) -> do do kl_V3022t `pseq` (kl_V3023 `pseq` kl_intersection kl_V3022t kl_V3023)+                                                                                                                             _ -> throwError "if: expected boolean"+                                                                            pat_cond_5 = do do let !aw_6 = Core.Types.Atom (Core.Types.UnboundSym "shen.f_error")+                                                                                               applyWrapper aw_6 [ApplC (wrapNamed "intersection" kl_intersection)]+                                                                         in case kl_V3022 of+                                                                                !(kl_V3022@(Cons (!kl_V3022h)+                                                                                                 (!kl_V3022t))) -> pat_cond_2 kl_V3022 kl_V3022h kl_V3022t+                                                                                _ -> pat_cond_5+                                                 _ -> throwError "if: expected boolean"++kl_reverse :: Core.Types.KLValue ->+              Core.Types.KLContext Core.Types.Env Core.Types.KLValue+kl_reverse (!kl_V3025) = do let !appl_0 = Atom Nil+                            kl_V3025 `pseq` (appl_0 `pseq` kl_shen_reverse_help kl_V3025 appl_0)++kl_shen_reverse_help :: Core.Types.KLValue ->+                        Core.Types.KLValue ->+                        Core.Types.KLContext Core.Types.Env Core.Types.KLValue+kl_shen_reverse_help (!kl_V3028) (!kl_V3029) = do let !appl_0 = Atom Nil+                                                  !kl_if_1 <- appl_0 `pseq` (kl_V3028 `pseq` eq appl_0 kl_V3028)+                                                  case kl_if_1 of+                                                      Atom (B (True)) -> do return kl_V3029+                                                      Atom (B (False)) -> do let pat_cond_2 kl_V3028 kl_V3028h kl_V3028t = do !appl_3 <- kl_V3028h `pseq` (kl_V3029 `pseq` klCons kl_V3028h kl_V3029)+                                                                                                                              kl_V3028t `pseq` (appl_3 `pseq` kl_shen_reverse_help kl_V3028t appl_3)+                                                                                 pat_cond_4 = do do let !aw_5 = Core.Types.Atom (Core.Types.UnboundSym "shen.f_error")+                                                                                                    applyWrapper aw_5 [ApplC (wrapNamed "shen.reverse_help" kl_shen_reverse_help)]+                                                                              in case kl_V3028 of+                                                                                     !(kl_V3028@(Cons (!kl_V3028h)+                                                                                                      (!kl_V3028t))) -> pat_cond_2 kl_V3028 kl_V3028h kl_V3028t+                                                                                     _ -> pat_cond_4+                                                      _ -> throwError "if: expected boolean"++kl_union :: Core.Types.KLValue ->+            Core.Types.KLValue ->+            Core.Types.KLContext Core.Types.Env Core.Types.KLValue+kl_union (!kl_V3032) (!kl_V3033) = do let !appl_0 = Atom Nil+                                      !kl_if_1 <- appl_0 `pseq` (kl_V3032 `pseq` eq appl_0 kl_V3032)+                                      case kl_if_1 of+                                          Atom (B (True)) -> do return kl_V3033+                                          Atom (B (False)) -> do let pat_cond_2 kl_V3032 kl_V3032h kl_V3032t = do !kl_if_3 <- kl_V3032h `pseq` (kl_V3033 `pseq` kl_elementP kl_V3032h kl_V3033)+                                                                                                                  case kl_if_3 of+                                                                                                                      Atom (B (True)) -> do kl_V3032t `pseq` (kl_V3033 `pseq` kl_union kl_V3032t kl_V3033)+                                                                                                                      Atom (B (False)) -> do do !appl_4 <- kl_V3032t `pseq` (kl_V3033 `pseq` kl_union kl_V3032t kl_V3033)+                                                                                                                                                kl_V3032h `pseq` (appl_4 `pseq` klCons kl_V3032h appl_4)+                                                                                                                      _ -> throwError "if: expected boolean"+                                                                     pat_cond_5 = do do let !aw_6 = Core.Types.Atom (Core.Types.UnboundSym "shen.f_error")+                                                                                        applyWrapper aw_6 [ApplC (wrapNamed "union" kl_union)]+                                                                  in case kl_V3032 of+                                                                         !(kl_V3032@(Cons (!kl_V3032h)+                                                                                          (!kl_V3032t))) -> pat_cond_2 kl_V3032 kl_V3032h kl_V3032t+                                                                         _ -> pat_cond_5+                                          _ -> throwError "if: expected boolean"++kl_y_or_nP :: Core.Types.KLValue ->+              Core.Types.KLContext Core.Types.Env Core.Types.KLValue+kl_y_or_nP (!kl_V3035) = do let !appl_0 = ApplC (Func "lambda" (Context (\(!kl_Message) -> do let !appl_1 = ApplC (Func "lambda" (Context (\(!kl_Y_or_N) -> do let !appl_2 = ApplC (Func "lambda" (Context (\(!kl_Input) -> do let pat_cond_3 = do return (Atom (B True))+                                                                                                                                                                                                                                   pat_cond_4 = do do let pat_cond_5 = do return (Atom (B False))+                                                                                                                                                                                                                                                          pat_cond_6 = do do !appl_7 <- kl_stoutput+                                                                                                                                                                                                                                                                             let !aw_8 = Core.Types.Atom (Core.Types.UnboundSym "shen.prhush")+                                                                                                                                                                                                                                                                             !appl_9 <- appl_7 `pseq` applyWrapper aw_8 [Core.Types.Atom (Core.Types.Str "please answer y or n\n"),+                                                                                                                                                                                                                                                                                                                         appl_7]+                                                                                                                                                                                                                                                                             !appl_10 <- kl_V3035 `pseq` kl_y_or_nP kl_V3035+                                                                                                                                                                                                                                                                             appl_9 `pseq` (appl_10 `pseq` kl_do appl_9 appl_10)+                                                                                                                                                                                                                                                       in case kl_Input of+                                                                                                                                                                                                                                                              kl_Input@(Atom (Str "n")) -> pat_cond_5+                                                                                                                                                                                                                                                              _ -> pat_cond_6+                                                                                                                                                                                                                                in case kl_Input of+                                                                                                                                                                                                                                       kl_Input@(Atom (Str "y")) -> pat_cond_3+                                                                                                                                                                                                                                       _ -> pat_cond_4)))+                                                                                                                                                               !appl_11 <- kl_stinput+                                                                                                                                                               let !aw_12 = Core.Types.Atom (Core.Types.UnboundSym "read")+                                                                                                                                                               !appl_13 <- appl_11 `pseq` applyWrapper aw_12 [appl_11]+                                                                                                                                                               let !aw_14 = Core.Types.Atom (Core.Types.UnboundSym "shen.app")+                                                                                                                                                               !appl_15 <- appl_13 `pseq` applyWrapper aw_14 [appl_13,+                                                                                                                                                                                                              Core.Types.Atom (Core.Types.Str ""),+                                                                                                                                                                                                              Core.Types.Atom (Core.Types.UnboundSym "shen.s")]+                                                                                                                                                               appl_15 `pseq` applyWrapper appl_2 [appl_15])))+                                                                                              !appl_16 <- kl_stoutput+                                                                                              let !aw_17 = Core.Types.Atom (Core.Types.UnboundSym "shen.prhush")+                                                                                              !appl_18 <- appl_16 `pseq` applyWrapper aw_17 [Core.Types.Atom (Core.Types.Str " (y/n) "),+                                                                                                                                             appl_16]+                                                                                              appl_18 `pseq` applyWrapper appl_1 [appl_18])))+                            let !aw_19 = Core.Types.Atom (Core.Types.UnboundSym "shen.proc-nl")+                            !appl_20 <- kl_V3035 `pseq` applyWrapper aw_19 [kl_V3035]+                            !appl_21 <- kl_stoutput+                            let !aw_22 = Core.Types.Atom (Core.Types.UnboundSym "shen.prhush")+                            !appl_23 <- appl_20 `pseq` (appl_21 `pseq` applyWrapper aw_22 [appl_20,+                                                                                           appl_21])+                            appl_23 `pseq` applyWrapper appl_0 [appl_23]++kl_not :: Core.Types.KLValue ->+          Core.Types.KLContext Core.Types.Env Core.Types.KLValue+kl_not (!kl_V3037) = do case kl_V3037 of+                            Atom (B (True)) -> do return (Atom (B False))+                            Atom (B (False)) -> do do return (Atom (B True))+                            _ -> throwError "if: expected boolean"++kl_subst :: Core.Types.KLValue ->+            Core.Types.KLValue ->+            Core.Types.KLValue ->+            Core.Types.KLContext Core.Types.Env Core.Types.KLValue+kl_subst (!kl_V3050) (!kl_V3051) (!kl_V3052) = do !kl_if_0 <- kl_V3052 `pseq` (kl_V3051 `pseq` eq kl_V3052 kl_V3051)+                                                  case kl_if_0 of+                                                      Atom (B (True)) -> do return kl_V3050+                                                      Atom (B (False)) -> do let pat_cond_1 kl_V3052 kl_V3052h kl_V3052t = do let !appl_2 = ApplC (Func "lambda" (Context (\(!kl_W) -> do kl_V3050 `pseq` (kl_V3051 `pseq` (kl_W `pseq` kl_subst kl_V3050 kl_V3051 kl_W)))))+                                                                                                                              appl_2 `pseq` (kl_V3052 `pseq` kl_map appl_2 kl_V3052)+                                                                                 pat_cond_3 = do do return kl_V3052+                                                                              in case kl_V3052 of+                                                                                     !(kl_V3052@(Cons (!kl_V3052h)+                                                                                                      (!kl_V3052t))) -> pat_cond_1 kl_V3052 kl_V3052h kl_V3052t+                                                                                     _ -> pat_cond_3+                                                      _ -> throwError "if: expected boolean"++kl_explode :: Core.Types.KLValue ->+              Core.Types.KLContext Core.Types.Env Core.Types.KLValue+kl_explode (!kl_V3054) = do let !aw_0 = Core.Types.Atom (Core.Types.UnboundSym "shen.app")+                            !appl_1 <- kl_V3054 `pseq` applyWrapper aw_0 [kl_V3054,+                                                                          Core.Types.Atom (Core.Types.Str ""),+                                                                          Core.Types.Atom (Core.Types.UnboundSym "shen.a")]+                            appl_1 `pseq` kl_shen_explode_h appl_1++kl_shen_explode_h :: Core.Types.KLValue ->+                     Core.Types.KLContext Core.Types.Env Core.Types.KLValue+kl_shen_explode_h (!kl_V3056) = do let pat_cond_0 = do return (Atom Nil)+                                       pat_cond_1 = do !kl_if_2 <- kl_V3056 `pseq` kl_shen_PlusstringP kl_V3056+                                                       case kl_if_2 of+                                                           Atom (B (True)) -> do !appl_3 <- kl_V3056 `pseq` pos kl_V3056 (Core.Types.Atom (Core.Types.N (Core.Types.KI 0)))+                                                                                 !appl_4 <- kl_V3056 `pseq` tlstr kl_V3056+                                                                                 !appl_5 <- appl_4 `pseq` kl_shen_explode_h appl_4+                                                                                 appl_3 `pseq` (appl_5 `pseq` klCons appl_3 appl_5)+                                                           Atom (B (False)) -> do do let !aw_6 = Core.Types.Atom (Core.Types.UnboundSym "shen.f_error")+                                                                                     applyWrapper aw_6 [ApplC (wrapNamed "shen.explode-h" kl_shen_explode_h)]+                                                           _ -> throwError "if: expected boolean"+                                    in case kl_V3056 of+                                           kl_V3056@(Atom (Str "")) -> pat_cond_0+                                           _ -> pat_cond_1++kl_cd :: Core.Types.KLValue ->+         Core.Types.KLContext Core.Types.Env Core.Types.KLValue+kl_cd (!kl_V3058) = do !appl_0 <- let pat_cond_1 = do return (Core.Types.Atom (Core.Types.Str ""))+                                      pat_cond_2 = do do let !aw_3 = Core.Types.Atom (Core.Types.UnboundSym "shen.app")+                                                         kl_V3058 `pseq` applyWrapper aw_3 [kl_V3058,+                                                                                            Core.Types.Atom (Core.Types.Str "/"),+                                                                                            Core.Types.Atom (Core.Types.UnboundSym "shen.a")]+                                   in case kl_V3058 of+                                          kl_V3058@(Atom (Str "")) -> pat_cond_1+                                          _ -> pat_cond_2+                       appl_0 `pseq` klSet (Core.Types.Atom (Core.Types.UnboundSym "*home-directory*")) appl_0++kl_for_each :: Core.Types.KLValue ->+               Core.Types.KLValue ->+               Core.Types.KLContext Core.Types.Env Core.Types.KLValue+kl_for_each (!kl_V3061) (!kl_V3062) = do let !appl_0 = Atom Nil+                                         !kl_if_1 <- appl_0 `pseq` (kl_V3062 `pseq` eq appl_0 kl_V3062)+                                         case kl_if_1 of+                                             Atom (B (True)) -> do return (Atom (B True))+                                             Atom (B (False)) -> do let pat_cond_2 kl_V3062 kl_V3062h kl_V3062t = do let !appl_3 = ApplC (Func "lambda" (Context (\(!kl__) -> do kl_V3061 `pseq` (kl_V3062t `pseq` kl_for_each kl_V3061 kl_V3062t))))+                                                                                                                     !appl_4 <- kl_V3062h `pseq` applyWrapper kl_V3061 [kl_V3062h]+                                                                                                                     appl_4 `pseq` applyWrapper appl_3 [appl_4]+                                                                        pat_cond_5 = do do let !aw_6 = Core.Types.Atom (Core.Types.UnboundSym "shen.f_error")+                                                                                           applyWrapper aw_6 [ApplC (wrapNamed "for-each" kl_for_each)]+                                                                     in case kl_V3062 of+                                                                            !(kl_V3062@(Cons (!kl_V3062h)+                                                                                             (!kl_V3062t))) -> pat_cond_2 kl_V3062 kl_V3062h kl_V3062t+                                                                            _ -> pat_cond_5+                                             _ -> throwError "if: expected boolean"++kl_fold_right :: Core.Types.KLValue ->+                 Core.Types.KLValue ->+                 Core.Types.KLValue ->+                 Core.Types.KLContext Core.Types.Env Core.Types.KLValue+kl_fold_right (!kl_V3066) (!kl_V3067) (!kl_V3068) = do let !appl_0 = Atom Nil+                                                       !kl_if_1 <- appl_0 `pseq` (kl_V3067 `pseq` eq appl_0 kl_V3067)+                                                       case kl_if_1 of+                                                           Atom (B (True)) -> do return kl_V3068+                                                           Atom (B (False)) -> do let pat_cond_2 kl_V3067 kl_V3067h kl_V3067t = do !appl_3 <- kl_V3066 `pseq` (kl_V3067t `pseq` (kl_V3068 `pseq` kl_fold_right kl_V3066 kl_V3067t kl_V3068))+                                                                                                                                   kl_V3067h `pseq` (appl_3 `pseq` applyWrapper kl_V3066 [kl_V3067h,+                                                                                                                                                                                          appl_3])+                                                                                      pat_cond_4 = do do let !aw_5 = Core.Types.Atom (Core.Types.UnboundSym "shen.f_error")+                                                                                                         applyWrapper aw_5 [ApplC (wrapNamed "fold-right" kl_fold_right)]+                                                                                   in case kl_V3067 of+                                                                                          !(kl_V3067@(Cons (!kl_V3067h)+                                                                                                           (!kl_V3067t))) -> pat_cond_2 kl_V3067 kl_V3067h kl_V3067t+                                                                                          _ -> pat_cond_4+                                                           _ -> throwError "if: expected boolean"++kl_fold_left :: Core.Types.KLValue ->+                Core.Types.KLValue ->+                Core.Types.KLValue ->+                Core.Types.KLContext Core.Types.Env Core.Types.KLValue+kl_fold_left (!kl_V3072) (!kl_V3073) (!kl_V3074) = do let !appl_0 = Atom Nil+                                                      !kl_if_1 <- appl_0 `pseq` (kl_V3074 `pseq` eq appl_0 kl_V3074)+                                                      case kl_if_1 of+                                                          Atom (B (True)) -> do return kl_V3073+                                                          Atom (B (False)) -> do let pat_cond_2 kl_V3074 kl_V3074h kl_V3074t = do !appl_3 <- kl_V3073 `pseq` (kl_V3074h `pseq` applyWrapper kl_V3072 [kl_V3073,+                                                                                                                                                                                                      kl_V3074h])+                                                                                                                                  kl_V3072 `pseq` (appl_3 `pseq` (kl_V3074t `pseq` kl_fold_left kl_V3072 appl_3 kl_V3074t))+                                                                                     pat_cond_4 = do do let !aw_5 = Core.Types.Atom (Core.Types.UnboundSym "shen.f_error")+                                                                                                        applyWrapper aw_5 [ApplC (wrapNamed "fold-left" kl_fold_left)]+                                                                                  in case kl_V3074 of+                                                                                         !(kl_V3074@(Cons (!kl_V3074h)+                                                                                                          (!kl_V3074t))) -> pat_cond_2 kl_V3074 kl_V3074h kl_V3074t+                                                                                         _ -> pat_cond_4+                                                          _ -> throwError "if: expected boolean"++kl_filter :: Core.Types.KLValue ->+             Core.Types.KLValue ->+             Core.Types.KLContext Core.Types.Env Core.Types.KLValue+kl_filter (!kl_V3077) (!kl_V3078) = do let !appl_0 = Atom Nil+                                       kl_V3077 `pseq` (appl_0 `pseq` (kl_V3078 `pseq` kl_shen_filter_h kl_V3077 appl_0 kl_V3078))++kl_shen_filter_h :: Core.Types.KLValue ->+                    Core.Types.KLValue ->+                    Core.Types.KLValue ->+                    Core.Types.KLContext Core.Types.Env Core.Types.KLValue+kl_shen_filter_h (!kl_V3088) (!kl_V3089) (!kl_V3090) = do let !appl_0 = Atom Nil+                                                          !kl_if_1 <- appl_0 `pseq` (kl_V3090 `pseq` eq appl_0 kl_V3090)+                                                          case kl_if_1 of+                                                              Atom (B (True)) -> do kl_V3089 `pseq` kl_reverse kl_V3089+                                                              Atom (B (False)) -> do !kl_if_2 <- let pat_cond_3 kl_V3090 kl_V3090h kl_V3090t = do !kl_if_4 <- kl_V3090h `pseq` applyWrapper kl_V3088 [kl_V3090h]+                                                                                                                                                  case kl_if_4 of+                                                                                                                                                      Atom (B (True)) -> do return (Atom (B True))+                                                                                                                                                      Atom (B (False)) -> do do return (Atom (B False))+                                                                                                                                                      _ -> throwError "if: expected boolean"+                                                                                                     pat_cond_5 = do do return (Atom (B False))+                                                                                                  in case kl_V3090 of+                                                                                                         !(kl_V3090@(Cons (!kl_V3090h)+                                                                                                                          (!kl_V3090t))) -> pat_cond_3 kl_V3090 kl_V3090h kl_V3090t+                                                                                                         _ -> pat_cond_5+                                                                                     case kl_if_2 of+                                                                                         Atom (B (True)) -> do !appl_6 <- kl_V3090 `pseq` hd kl_V3090+                                                                                                               !appl_7 <- appl_6 `pseq` (kl_V3089 `pseq` klCons appl_6 kl_V3089)+                                                                                                               !appl_8 <- kl_V3090 `pseq` tl kl_V3090+                                                                                                               kl_V3088 `pseq` (appl_7 `pseq` (appl_8 `pseq` kl_shen_filter_h kl_V3088 appl_7 appl_8))+                                                                                         Atom (B (False)) -> do let pat_cond_9 kl_V3090 kl_V3090h kl_V3090t = do kl_V3088 `pseq` (kl_V3089 `pseq` (kl_V3090t `pseq` kl_shen_filter_h kl_V3088 kl_V3089 kl_V3090t))+                                                                                                                    pat_cond_10 = do do let !aw_11 = Core.Types.Atom (Core.Types.UnboundSym "shen.f_error")+                                                                                                                                        applyWrapper aw_11 [ApplC (wrapNamed "shen.filter-h" kl_shen_filter_h)]+                                                                                                                 in case kl_V3090 of+                                                                                                                        !(kl_V3090@(Cons (!kl_V3090h)+                                                                                                                                         (!kl_V3090t))) -> pat_cond_9 kl_V3090 kl_V3090h kl_V3090t+                                                                                                                        _ -> pat_cond_10+                                                                                         _ -> throwError "if: expected boolean"+                                                              _ -> throwError "if: expected boolean"++kl_map :: Core.Types.KLValue ->+          Core.Types.KLValue ->+          Core.Types.KLContext Core.Types.Env Core.Types.KLValue+kl_map (!kl_V3093) (!kl_V3094) = do let !appl_0 = Atom Nil+                                    kl_V3093 `pseq` (kl_V3094 `pseq` (appl_0 `pseq` kl_shen_map_h kl_V3093 kl_V3094 appl_0))++kl_shen_map_h :: Core.Types.KLValue ->+                 Core.Types.KLValue ->+                 Core.Types.KLValue ->+                 Core.Types.KLContext Core.Types.Env Core.Types.KLValue+kl_shen_map_h (!kl_V3100) (!kl_V3101) (!kl_V3102) = do let !appl_0 = Atom Nil+                                                       !kl_if_1 <- appl_0 `pseq` (kl_V3101 `pseq` eq appl_0 kl_V3101)+                                                       case kl_if_1 of+                                                           Atom (B (True)) -> do kl_V3102 `pseq` kl_reverse kl_V3102+                                                           Atom (B (False)) -> do let pat_cond_2 kl_V3101 kl_V3101h kl_V3101t = do !appl_3 <- kl_V3101h `pseq` applyWrapper kl_V3100 [kl_V3101h]+                                                                                                                                   !appl_4 <- appl_3 `pseq` (kl_V3102 `pseq` klCons appl_3 kl_V3102)+                                                                                                                                   kl_V3100 `pseq` (kl_V3101t `pseq` (appl_4 `pseq` kl_shen_map_h kl_V3100 kl_V3101t appl_4))+                                                                                      pat_cond_5 = do do let !aw_6 = Core.Types.Atom (Core.Types.UnboundSym "shen.f_error")+                                                                                                         applyWrapper aw_6 [ApplC (wrapNamed "shen.map-h" kl_shen_map_h)]+                                                                                   in case kl_V3101 of+                                                                                          !(kl_V3101@(Cons (!kl_V3101h)+                                                                                                           (!kl_V3101t))) -> pat_cond_2 kl_V3101 kl_V3101h kl_V3101t+                                                                                          _ -> pat_cond_5+                                                           _ -> throwError "if: expected boolean"++kl_length :: Core.Types.KLValue ->+             Core.Types.KLContext Core.Types.Env Core.Types.KLValue+kl_length (!kl_V3104) = do kl_V3104 `pseq` kl_shen_length_h kl_V3104 (Core.Types.Atom (Core.Types.N (Core.Types.KI 0)))++kl_shen_length_h :: Core.Types.KLValue ->+                    Core.Types.KLValue ->+                    Core.Types.KLContext Core.Types.Env Core.Types.KLValue+kl_shen_length_h (!kl_V3107) (!kl_V3108) = do let !appl_0 = Atom Nil+                                              !kl_if_1 <- appl_0 `pseq` (kl_V3107 `pseq` eq appl_0 kl_V3107)+                                              case kl_if_1 of+                                                  Atom (B (True)) -> do return kl_V3108+                                                  Atom (B (False)) -> do do !appl_2 <- kl_V3107 `pseq` tl kl_V3107+                                                                            !appl_3 <- kl_V3108 `pseq` add kl_V3108 (Core.Types.Atom (Core.Types.N (Core.Types.KI 1)))+                                                                            appl_2 `pseq` (appl_3 `pseq` kl_shen_length_h appl_2 appl_3)+                                                  _ -> throwError "if: expected boolean"++kl_occurrences :: Core.Types.KLValue ->+                  Core.Types.KLValue ->+                  Core.Types.KLContext Core.Types.Env Core.Types.KLValue+kl_occurrences (!kl_V3120) (!kl_V3121) = do !kl_if_0 <- kl_V3121 `pseq` (kl_V3120 `pseq` eq kl_V3121 kl_V3120)+                                            case kl_if_0 of+                                                Atom (B (True)) -> do return (Core.Types.Atom (Core.Types.N (Core.Types.KI 1)))+                                                Atom (B (False)) -> do let pat_cond_1 kl_V3121 kl_V3121h kl_V3121t = do !appl_2 <- kl_V3120 `pseq` (kl_V3121h `pseq` kl_occurrences kl_V3120 kl_V3121h)+                                                                                                                        !appl_3 <- kl_V3120 `pseq` (kl_V3121t `pseq` kl_occurrences kl_V3120 kl_V3121t)+                                                                                                                        appl_2 `pseq` (appl_3 `pseq` add appl_2 appl_3)+                                                                           pat_cond_4 = do do return (Core.Types.Atom (Core.Types.N (Core.Types.KI 0)))+                                                                        in case kl_V3121 of+                                                                               !(kl_V3121@(Cons (!kl_V3121h)+                                                                                                (!kl_V3121t))) -> pat_cond_1 kl_V3121 kl_V3121h kl_V3121t+                                                                               _ -> pat_cond_4+                                                _ -> throwError "if: expected boolean"++kl_nth :: Core.Types.KLValue ->+          Core.Types.KLValue ->+          Core.Types.KLContext Core.Types.Env Core.Types.KLValue+kl_nth (!kl_V3130) (!kl_V3131) = do !kl_if_0 <- let pat_cond_1 = do let pat_cond_2 kl_V3131 kl_V3131h kl_V3131t = do return (Atom (B True))+                                                                        pat_cond_3 = do do return (Atom (B False))+                                                                     in case kl_V3131 of+                                                                            !(kl_V3131@(Cons (!kl_V3131h)+                                                                                             (!kl_V3131t))) -> pat_cond_2 kl_V3131 kl_V3131h kl_V3131t+                                                                            _ -> pat_cond_3+                                                    pat_cond_4 = do do return (Atom (B False))+                                                 in case kl_V3130 of+                                                        kl_V3130@(Atom (N (KI 1))) -> pat_cond_1+                                                        _ -> pat_cond_4+                                    case kl_if_0 of+                                        Atom (B (True)) -> do kl_V3131 `pseq` hd kl_V3131+                                        Atom (B (False)) -> do let pat_cond_5 kl_V3131 kl_V3131h kl_V3131t = do !appl_6 <- kl_V3130 `pseq` Primitives.subtract kl_V3130 (Core.Types.Atom (Core.Types.N (Core.Types.KI 1)))+                                                                                                                appl_6 `pseq` (kl_V3131t `pseq` kl_nth appl_6 kl_V3131t)+                                                                   pat_cond_7 = do do let !aw_8 = Core.Types.Atom (Core.Types.UnboundSym "shen.f_error")+                                                                                      applyWrapper aw_8 [ApplC (wrapNamed "nth" kl_nth)]+                                                                in case kl_V3131 of+                                                                       !(kl_V3131@(Cons (!kl_V3131h)+                                                                                        (!kl_V3131t))) -> pat_cond_5 kl_V3131 kl_V3131h kl_V3131t+                                                                       _ -> pat_cond_7+                                        _ -> throwError "if: expected boolean"++kl_integerP :: Core.Types.KLValue ->+               Core.Types.KLContext Core.Types.Env Core.Types.KLValue+kl_integerP (Atom (N (KI _))) = return (Atom (B True))+kl_integerP (Atom (N (KD d))) = return (Atom (B (fromInteger (round d) == d)))+kl_integerP !v = return (Atom (B False))++kl_shen_abs :: Core.Types.KLValue ->+               Core.Types.KLContext Core.Types.Env Core.Types.KLValue+kl_shen_abs (!kl_V3135) = do !kl_if_0 <- kl_V3135 `pseq` greaterThan kl_V3135 (Core.Types.Atom (Core.Types.N (Core.Types.KI 0)))+                             case kl_if_0 of+                                 Atom (B (True)) -> do return kl_V3135+                                 Atom (B (False)) -> do do kl_V3135 `pseq` Primitives.subtract (Core.Types.Atom (Core.Types.N (Core.Types.KI 0))) kl_V3135+                                 _ -> throwError "if: expected boolean"++kl_shen_magless :: Core.Types.KLValue ->+                   Core.Types.KLValue ->+                   Core.Types.KLContext Core.Types.Env Core.Types.KLValue+kl_shen_magless (!kl_V3138) (!kl_V3139) = do let !appl_0 = ApplC (Func "lambda" (Context (\(!kl_Nx2) -> do !kl_if_1 <- kl_Nx2 `pseq` (kl_V3138 `pseq` greaterThan kl_Nx2 kl_V3138)+                                                                                                           case kl_if_1 of+                                                                                                               Atom (B (True)) -> do return kl_V3139+                                                                                                               Atom (B (False)) -> do do kl_V3138 `pseq` (kl_Nx2 `pseq` kl_shen_magless kl_V3138 kl_Nx2)+                                                                                                               _ -> throwError "if: expected boolean")))+                                             !appl_2 <- kl_V3139 `pseq` multiply kl_V3139 (Core.Types.Atom (Core.Types.N (Core.Types.KI 2)))+                                             appl_2 `pseq` applyWrapper appl_0 [appl_2]++kl_shen_integer_testP :: Core.Types.KLValue ->+                         Core.Types.KLValue ->+                         Core.Types.KLContext Core.Types.Env Core.Types.KLValue+kl_shen_integer_testP (!kl_V3145) (!kl_V3146) = do let pat_cond_0 = do return (Atom (B True))+                                                       pat_cond_1 = do !kl_if_2 <- kl_V3145 `pseq` greaterThan (Core.Types.Atom (Core.Types.N (Core.Types.KI 1))) kl_V3145+                                                                       case kl_if_2 of+                                                                           Atom (B (True)) -> do return (Atom (B False))+                                                                           Atom (B (False)) -> do do let !appl_3 = ApplC (Func "lambda" (Context (\(!kl_Abs_N) -> do !kl_if_4 <- kl_Abs_N `pseq` greaterThan (Core.Types.Atom (Core.Types.N (Core.Types.KI 0))) kl_Abs_N+                                                                                                                                                                     case kl_if_4 of+                                                                                                                                                                         Atom (B (True)) -> do kl_V3145 `pseq` kl_integerP kl_V3145+                                                                                                                                                                         Atom (B (False)) -> do do kl_Abs_N `pseq` (kl_V3146 `pseq` kl_shen_integer_testP kl_Abs_N kl_V3146)+                                                                                                                                                                         _ -> throwError "if: expected boolean")))+                                                                                                     !appl_5 <- kl_V3145 `pseq` (kl_V3146 `pseq` Primitives.subtract kl_V3145 kl_V3146)+                                                                                                     appl_5 `pseq` applyWrapper appl_3 [appl_5]+                                                                           _ -> throwError "if: expected boolean"+                                                    in case kl_V3145 of+                                                           kl_V3145@(Atom (N (KI 0))) -> pat_cond_0+                                                           _ -> pat_cond_1++kl_mapcan :: Core.Types.KLValue ->+             Core.Types.KLValue ->+             Core.Types.KLContext Core.Types.Env Core.Types.KLValue+kl_mapcan (!kl_V3151) (!kl_V3152) = do let !appl_0 = Atom Nil+                                       !kl_if_1 <- appl_0 `pseq` (kl_V3152 `pseq` eq appl_0 kl_V3152)+                                       case kl_if_1 of+                                           Atom (B (True)) -> do return (Atom Nil)+                                           Atom (B (False)) -> do let pat_cond_2 kl_V3152 kl_V3152h kl_V3152t = do !appl_3 <- kl_V3152h `pseq` applyWrapper kl_V3151 [kl_V3152h]+                                                                                                                   !appl_4 <- kl_V3151 `pseq` (kl_V3152t `pseq` kl_mapcan kl_V3151 kl_V3152t)+                                                                                                                   appl_3 `pseq` (appl_4 `pseq` kl_append appl_3 appl_4)+                                                                      pat_cond_5 = do do let !aw_6 = Core.Types.Atom (Core.Types.UnboundSym "shen.f_error")+                                                                                         applyWrapper aw_6 [ApplC (wrapNamed "mapcan" kl_mapcan)]+                                                                   in case kl_V3152 of+                                                                          !(kl_V3152@(Cons (!kl_V3152h)+                                                                                           (!kl_V3152t))) -> pat_cond_2 kl_V3152 kl_V3152h kl_V3152t+                                                                          _ -> pat_cond_5+                                           _ -> throwError "if: expected boolean"++kl_EqEq :: Core.Types.KLValue ->+           Core.Types.KLValue ->+           Core.Types.KLContext Core.Types.Env Core.Types.KLValue+kl_EqEq (!kl_V3164) (!kl_V3165) = do !kl_if_0 <- kl_V3165 `pseq` (kl_V3164 `pseq` eq kl_V3165 kl_V3164)+                                     case kl_if_0 of+                                         Atom (B (True)) -> do return (Atom (B True))+                                         Atom (B (False)) -> do do return (Atom (B False))+                                         _ -> throwError "if: expected boolean"++kl_abort :: Core.Types.KLContext Core.Types.Env Core.Types.KLValue+kl_abort = do simpleError (Core.Types.Atom (Core.Types.Str ""))++kl_boundP :: Core.Types.KLValue ->+             Core.Types.KLContext Core.Types.Env Core.Types.KLValue+kl_boundP (!kl_V3167) = do !kl_if_0 <- kl_V3167 `pseq` kl_symbolP kl_V3167+                           case kl_if_0 of+                               Atom (B (True)) -> do let !appl_1 = ApplC (Func "lambda" (Context (\(!kl_Val) -> do let pat_cond_2 = do return (Atom (B False))+                                                                                                                       pat_cond_3 = do do return (Atom (B True))+                                                                                                                    in case kl_Val of+                                                                                                                           kl_Val@(Atom (UnboundSym "shen.this-symbol-is-unbound")) -> pat_cond_2+                                                                                                                           kl_Val@(ApplC (PL "shen.this-symbol-is-unbound"+                                                                                                                                             _)) -> pat_cond_2+                                                                                                                           kl_Val@(ApplC (Func "shen.this-symbol-is-unbound"+                                                                                                                                               _)) -> pat_cond_2+                                                                                                                           _ -> pat_cond_3)))+                                                     let !appl_4 = ApplC (PL "thunk" (do return (Core.Types.Atom (Core.Types.UnboundSym "shen.this-symbol-is-unbound"))))+                                                     !appl_5 <- kl_V3167 `pseq` (appl_4 `pseq` kl_valueDivor kl_V3167 appl_4)+                                                     !kl_if_6 <- appl_5 `pseq` applyWrapper appl_1 [appl_5]+                                                     case kl_if_6 of+                                                         Atom (B (True)) -> do return (Atom (B True))+                                                         Atom (B (False)) -> do do return (Atom (B False))+                                                         _ -> throwError "if: expected boolean"+                               Atom (B (False)) -> do do return (Atom (B False))+                               _ -> throwError "if: expected boolean"++kl_shen_string_RBbytes :: Core.Types.KLValue ->+                          Core.Types.KLContext Core.Types.Env Core.Types.KLValue+kl_shen_string_RBbytes (!kl_V3169) = do let pat_cond_0 = do return (Atom Nil)+                                            pat_cond_1 = do do !appl_2 <- kl_V3169 `pseq` pos kl_V3169 (Core.Types.Atom (Core.Types.N (Core.Types.KI 0)))+                                                               !appl_3 <- appl_2 `pseq` stringToN appl_2+                                                               !appl_4 <- kl_V3169 `pseq` tlstr kl_V3169+                                                               !appl_5 <- appl_4 `pseq` kl_shen_string_RBbytes appl_4+                                                               appl_3 `pseq` (appl_5 `pseq` klCons appl_3 appl_5)+                                         in case kl_V3169 of+                                                kl_V3169@(Atom (Str "")) -> pat_cond_0+                                                _ -> pat_cond_1++kl_maxinferences :: Core.Types.KLValue ->+                    Core.Types.KLContext Core.Types.Env Core.Types.KLValue+kl_maxinferences (!kl_V3171) = do kl_V3171 `pseq` klSet (Core.Types.Atom (Core.Types.UnboundSym "shen.*maxinferences*")) kl_V3171++kl_inferences :: Core.Types.KLContext Core.Types.Env+                                      Core.Types.KLValue+kl_inferences = do value (Core.Types.Atom (Core.Types.UnboundSym "shen.*infs*"))++kl_protect :: Core.Types.KLValue ->+              Core.Types.KLContext Core.Types.Env Core.Types.KLValue+kl_protect (!kl_V3173) = do return kl_V3173++kl_stoutput :: Core.Types.KLContext Core.Types.Env+                                    Core.Types.KLValue+kl_stoutput = do value (Core.Types.Atom (Core.Types.UnboundSym "*stoutput*"))++kl_sterror :: Core.Types.KLContext Core.Types.Env+                                   Core.Types.KLValue+kl_sterror = do value (Core.Types.Atom (Core.Types.UnboundSym "shen.*sterror*"))++kl_string_RBsymbol :: Core.Types.KLValue ->+                      Core.Types.KLContext Core.Types.Env Core.Types.KLValue+kl_string_RBsymbol (!kl_V3175) = do let !appl_0 = ApplC (Func "lambda" (Context (\(!kl_Symbol) -> do !kl_if_1 <- kl_Symbol `pseq` kl_symbolP kl_Symbol+                                                                                                     case kl_if_1 of+                                                                                                         Atom (B (True)) -> do return kl_Symbol+                                                                                                         Atom (B (False)) -> do do let !aw_2 = Core.Types.Atom (Core.Types.UnboundSym "shen.app")+                                                                                                                                   !appl_3 <- kl_V3175 `pseq` applyWrapper aw_2 [kl_V3175,+                                                                                                                                                                                 Core.Types.Atom (Core.Types.Str " to a symbol"),+                                                                                                                                                                                 Core.Types.Atom (Core.Types.UnboundSym "shen.s")]+                                                                                                                                   !appl_4 <- appl_3 `pseq` cn (Core.Types.Atom (Core.Types.Str "cannot intern ")) appl_3+                                                                                                                                   appl_4 `pseq` simpleError appl_4+                                                                                                         _ -> throwError "if: expected boolean")))+                                    !appl_5 <- kl_V3175 `pseq` intern kl_V3175+                                    appl_5 `pseq` applyWrapper appl_0 [appl_5]++kl_optimise :: Core.Types.KLValue ->+               Core.Types.KLContext Core.Types.Env Core.Types.KLValue+kl_optimise (!kl_V3181) = do let pat_cond_0 = do klSet (Core.Types.Atom (Core.Types.UnboundSym "shen.*optimise*")) (Atom (B True))+                                 pat_cond_1 = do klSet (Core.Types.Atom (Core.Types.UnboundSym "shen.*optimise*")) (Atom (B False))+                                 pat_cond_2 = do do simpleError (Core.Types.Atom (Core.Types.Str "optimise expects a + or a -.\n"))+                              in case kl_V3181 of+                                     kl_V3181@(Atom (UnboundSym "+")) -> pat_cond_0+                                     kl_V3181@(ApplC (PL "+" _)) -> pat_cond_0+                                     kl_V3181@(ApplC (Func "+" _)) -> pat_cond_0+                                     kl_V3181@(Atom (UnboundSym "-")) -> pat_cond_1+                                     kl_V3181@(ApplC (PL "-" _)) -> pat_cond_1+                                     kl_V3181@(ApplC (Func "-" _)) -> pat_cond_1+                                     _ -> pat_cond_2++kl_os :: Core.Types.KLContext Core.Types.Env Core.Types.KLValue+kl_os = do value (Core.Types.Atom (Core.Types.UnboundSym "*os*"))++kl_language :: Core.Types.KLContext Core.Types.Env+                                    Core.Types.KLValue+kl_language = do value (Core.Types.Atom (Core.Types.UnboundSym "*language*"))++kl_version :: Core.Types.KLContext Core.Types.Env+                                   Core.Types.KLValue+kl_version = do value (Core.Types.Atom (Core.Types.UnboundSym "*version*"))++kl_port :: Core.Types.KLContext Core.Types.Env Core.Types.KLValue+kl_port = do value (Core.Types.Atom (Core.Types.UnboundSym "*port*"))++kl_porters :: Core.Types.KLContext Core.Types.Env+                                   Core.Types.KLValue+kl_porters = do value (Core.Types.Atom (Core.Types.UnboundSym "*porters*"))++kl_implementation :: Core.Types.KLContext Core.Types.Env+                                          Core.Types.KLValue+kl_implementation = do value (Core.Types.Atom (Core.Types.UnboundSym "*implementation*"))++kl_release :: Core.Types.KLContext Core.Types.Env+                                   Core.Types.KLValue+kl_release = do value (Core.Types.Atom (Core.Types.UnboundSym "*release*"))++kl_packageP :: Core.Types.KLValue ->+               Core.Types.KLContext Core.Types.Env Core.Types.KLValue+kl_packageP (!kl_V3183) = do (do !appl_0 <- kl_V3183 `pseq` kl_external kl_V3183+                                 appl_0 `pseq` kl_do appl_0 (Atom (B True))) `catchError` (\(!kl_E) -> do return (Atom (B False)))++kl_function :: Core.Types.KLValue ->+               Core.Types.KLContext Core.Types.Env Core.Types.KLValue+kl_function (!kl_V3185) = do kl_V3185 `pseq` kl_shen_lookup_func kl_V3185++kl_shen_lookup_func :: Core.Types.KLValue ->+                       Core.Types.KLContext Core.Types.Env Core.Types.KLValue+kl_shen_lookup_func (!kl_V3187) = do let !appl_0 = ApplC (PL "thunk" (do let !aw_1 = Core.Types.Atom (Core.Types.UnboundSym "shen.app")+                                                                         !appl_2 <- kl_V3187 `pseq` applyWrapper aw_1 [kl_V3187,+                                                                                                                       Core.Types.Atom (Core.Types.Str " has no lambda expansion\n"),+                                                                                                                       Core.Types.Atom (Core.Types.UnboundSym "shen.a")]+                                                                         appl_2 `pseq` simpleError appl_2))+                                     !appl_3 <- value (Core.Types.Atom (Core.Types.UnboundSym "*property-vector*"))+                                     kl_V3187 `pseq` (appl_0 `pseq` (appl_3 `pseq` kl_getDivor kl_V3187 (Core.Types.Atom (Core.Types.UnboundSym "shen.lambda-form")) appl_0 appl_3))++expr2 :: Core.Types.KLContext Core.Types.Env Core.Types.KLValue+expr2 = do (do return (Core.Types.Atom (Core.Types.Str "Copyright (c) 2015, Mark Tarver\n\nAll rights reserved.\n\nRedistribution and use in source and binary forms, with or without\nmodification, are permitted provided that the following conditions are met:\n1. Redistributions of source code must retain the above copyright\n   notice, this list of conditions and the following disclaimer.\n2. Redistributions in binary form must reproduce the above copyright\n   notice, this list of conditions and the following disclaimer in the\n   documentation and/or other materials provided with the distribution.\n3. The name of Mark Tarver may not be used to endorse or promote products\n   derived from this software without specific prior written permission.\n\nTHIS SOFTWARE IS PROVIDED BY Mark Tarver ''AS IS'' AND ANY\nEXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED\nWARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE\nDISCLAIMED. IN NO EVENT SHALL Mark Tarver BE LIABLE FOR ANY\nDIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES\n(INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;\nLOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND\nON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT\n(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS\nSOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE."))) `catchError` (\(!kl_E) -> do return (Core.Types.Atom (Core.Types.Str "E")))
Shentong/Backend/TStar.hs view

file too large to diff

Shentong/Backend/Toplevel.hs view
@@ -1,1052 +1,1128 @@-{-# LANGUAGE BangPatterns #-}
-{-# LANGUAGE OverloadedStrings #-}
-{-# LANGUAGE Strict #-}
-{-# LANGUAGE StrictData #-}
-{-# LANGUAGE ViewPatterns #-}
-
-module Backend.Toplevel where
-
-import Control.Monad.Except
-import Control.Parallel
-import Environment
-import Primitives
-import Backend.Utils
-import Types
-import Utils
-import Wrap
-
-{-
-Copyright (c) 2015, Mark Tarver
-All rights reserved.
-
-Redistribution and use in source and binary forms, with or without
-modification, are permitted provided that the following conditions are met:
-
-1. Redistributions of source code must retain the above copyright
-   notice, this list of conditions and the following disclaimer.
-2. Redistributions in binary form must reproduce the above copyright
-   notice, this list of conditions and the following disclaimer in the
-   documentation and/or other materials provided with the distribution.
-3. The name of Mark Tarver may not be used to endorse or promote products
-   derived from this software without specific prior written permission.
-
-THIS SOFTWARE IS PROVIDED BY Mark Tarver ''AS IS'' AND ANY
-EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
-WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
-DISCLAIMED. IN NO EVENT SHALL Mark Tarver BE LIABLE FOR ANY
-DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
-(INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
-LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND
-ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
-(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
-SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
--}
-
-kl_shen_shen :: Types.KLContext Types.Env Types.KLValue
-kl_shen_shen = do !appl_0 <- kl_shen_credits
-                  !appl_1 <- kl_shen_loop
-                  let !aw_2 = Types.Atom (Types.UnboundSym "do")
-                  appl_0 `pseq` (appl_1 `pseq` applyWrapper aw_2 [appl_0, appl_1])
-
-kl_shen_loop :: Types.KLContext Types.Env Types.KLValue
-kl_shen_loop = do !appl_0 <- kl_shen_initialise_environment
-                  !appl_1 <- kl_shen_prompt
-                  !appl_2 <- (do kl_shen_read_evaluate_print) `catchError` (\(!kl_E) -> do !appl_3 <- kl_E `pseq` errorToString (Excep kl_E)
-                                                                                           let !aw_4 = Types.Atom (Types.UnboundSym "stoutput")
-                                                                                           !appl_5 <- applyWrapper aw_4 []
-                                                                                           let !aw_6 = Types.Atom (Types.UnboundSym "pr")
-                                                                                           appl_3 `pseq` (appl_5 `pseq` applyWrapper aw_6 [appl_3,
-                                                                                                                                           appl_5]))
-                  !appl_7 <- kl_shen_loop
-                  let !aw_8 = Types.Atom (Types.UnboundSym "do")
-                  !appl_9 <- appl_2 `pseq` (appl_7 `pseq` applyWrapper aw_8 [appl_2,
-                                                                             appl_7])
-                  let !aw_10 = Types.Atom (Types.UnboundSym "do")
-                  !appl_11 <- appl_1 `pseq` (appl_9 `pseq` applyWrapper aw_10 [appl_1,
-                                                                               appl_9])
-                  let !aw_12 = Types.Atom (Types.UnboundSym "do")
-                  appl_0 `pseq` (appl_11 `pseq` applyWrapper aw_12 [appl_0, appl_11])
-
-kl_shen_credits :: Types.KLContext Types.Env Types.KLValue
-kl_shen_credits = do let !aw_0 = Types.Atom (Types.UnboundSym "stoutput")
-                     !appl_1 <- applyWrapper aw_0 []
-                     let !aw_2 = Types.Atom (Types.UnboundSym "shen.prhush")
-                     !appl_3 <- appl_1 `pseq` applyWrapper aw_2 [Types.Atom (Types.Str "\nShen, copyright (C) 2010-2015 Mark Tarver\n"),
-                                                                 appl_1]
-                     !appl_4 <- value (Types.Atom (Types.UnboundSym "*version*"))
-                     let !aw_5 = Types.Atom (Types.UnboundSym "shen.app")
-                     !appl_6 <- appl_4 `pseq` applyWrapper aw_5 [appl_4,
-                                                                 Types.Atom (Types.Str "\n"),
-                                                                 Types.Atom (Types.UnboundSym "shen.a")]
-                     !appl_7 <- appl_6 `pseq` cn (Types.Atom (Types.Str "www.shenlanguage.org, ")) appl_6
-                     let !aw_8 = Types.Atom (Types.UnboundSym "stoutput")
-                     !appl_9 <- applyWrapper aw_8 []
-                     let !aw_10 = Types.Atom (Types.UnboundSym "shen.prhush")
-                     !appl_11 <- appl_7 `pseq` (appl_9 `pseq` applyWrapper aw_10 [appl_7,
-                                                                                  appl_9])
-                     !appl_12 <- value (Types.Atom (Types.UnboundSym "*language*"))
-                     !appl_13 <- value (Types.Atom (Types.UnboundSym "*implementation*"))
-                     let !aw_14 = Types.Atom (Types.UnboundSym "shen.app")
-                     !appl_15 <- appl_13 `pseq` applyWrapper aw_14 [appl_13,
-                                                                    Types.Atom (Types.Str ""),
-                                                                    Types.Atom (Types.UnboundSym "shen.a")]
-                     !appl_16 <- appl_15 `pseq` cn (Types.Atom (Types.Str ", implementation: ")) appl_15
-                     let !aw_17 = Types.Atom (Types.UnboundSym "shen.app")
-                     !appl_18 <- appl_12 `pseq` (appl_16 `pseq` applyWrapper aw_17 [appl_12,
-                                                                                    appl_16,
-                                                                                    Types.Atom (Types.UnboundSym "shen.a")])
-                     !appl_19 <- appl_18 `pseq` cn (Types.Atom (Types.Str "running under ")) appl_18
-                     let !aw_20 = Types.Atom (Types.UnboundSym "stoutput")
-                     !appl_21 <- applyWrapper aw_20 []
-                     let !aw_22 = Types.Atom (Types.UnboundSym "shen.prhush")
-                     !appl_23 <- appl_19 `pseq` (appl_21 `pseq` applyWrapper aw_22 [appl_19,
-                                                                                    appl_21])
-                     !appl_24 <- value (Types.Atom (Types.UnboundSym "*port*"))
-                     !appl_25 <- value (Types.Atom (Types.UnboundSym "*porters*"))
-                     let !aw_26 = Types.Atom (Types.UnboundSym "shen.app")
-                     !appl_27 <- appl_25 `pseq` applyWrapper aw_26 [appl_25,
-                                                                    Types.Atom (Types.Str "\n"),
-                                                                    Types.Atom (Types.UnboundSym "shen.a")]
-                     !appl_28 <- appl_27 `pseq` cn (Types.Atom (Types.Str " ported by ")) appl_27
-                     let !aw_29 = Types.Atom (Types.UnboundSym "shen.app")
-                     !appl_30 <- appl_24 `pseq` (appl_28 `pseq` applyWrapper aw_29 [appl_24,
-                                                                                    appl_28,
-                                                                                    Types.Atom (Types.UnboundSym "shen.a")])
-                     !appl_31 <- appl_30 `pseq` cn (Types.Atom (Types.Str "\nport ")) appl_30
-                     let !aw_32 = Types.Atom (Types.UnboundSym "stoutput")
-                     !appl_33 <- applyWrapper aw_32 []
-                     let !aw_34 = Types.Atom (Types.UnboundSym "shen.prhush")
-                     !appl_35 <- appl_31 `pseq` (appl_33 `pseq` applyWrapper aw_34 [appl_31,
-                                                                                    appl_33])
-                     let !aw_36 = Types.Atom (Types.UnboundSym "do")
-                     !appl_37 <- appl_23 `pseq` (appl_35 `pseq` applyWrapper aw_36 [appl_23,
-                                                                                    appl_35])
-                     let !aw_38 = Types.Atom (Types.UnboundSym "do")
-                     !appl_39 <- appl_11 `pseq` (appl_37 `pseq` applyWrapper aw_38 [appl_11,
-                                                                                    appl_37])
-                     let !aw_40 = Types.Atom (Types.UnboundSym "do")
-                     appl_3 `pseq` (appl_39 `pseq` applyWrapper aw_40 [appl_3, appl_39])
-
-kl_shen_initialise_environment :: Types.KLContext Types.Env
-                                                  Types.KLValue
-kl_shen_initialise_environment = do !appl_0 <- klCons (Types.Atom (Types.N (Types.KI 0))) (Types.Atom Types.Nil)
-                                    !appl_1 <- appl_0 `pseq` klCons (Types.Atom (Types.UnboundSym "shen.*catch*")) appl_0
-                                    !appl_2 <- appl_1 `pseq` klCons (Types.Atom (Types.N (Types.KI 0))) appl_1
-                                    !appl_3 <- appl_2 `pseq` klCons (Types.Atom (Types.UnboundSym "shen.*process-counter*")) appl_2
-                                    !appl_4 <- appl_3 `pseq` klCons (Types.Atom (Types.N (Types.KI 0))) appl_3
-                                    !appl_5 <- appl_4 `pseq` klCons (Types.Atom (Types.UnboundSym "shen.*infs*")) appl_4
-                                    !appl_6 <- appl_5 `pseq` klCons (Types.Atom (Types.N (Types.KI 0))) appl_5
-                                    !appl_7 <- appl_6 `pseq` klCons (Types.Atom (Types.UnboundSym "shen.*call*")) appl_6
-                                    appl_7 `pseq` kl_shen_multiple_set appl_7
-
-kl_shen_multiple_set :: Types.KLValue ->
-                        Types.KLContext Types.Env Types.KLValue
-kl_shen_multiple_set (!kl_V3668) = do let pat_cond_0 = do return (Types.Atom Types.Nil)
-                                          pat_cond_1 kl_V3668 kl_V3668h kl_V3668t kl_V3668th kl_V3668tt = do !appl_2 <- kl_V3668h `pseq` (kl_V3668th `pseq` klSet kl_V3668h kl_V3668th)
-                                                                                                             !appl_3 <- kl_V3668tt `pseq` kl_shen_multiple_set kl_V3668tt
-                                                                                                             let !aw_4 = Types.Atom (Types.UnboundSym "do")
-                                                                                                             appl_2 `pseq` (appl_3 `pseq` applyWrapper aw_4 [appl_2,
-                                                                                                                                                             appl_3])
-                                          pat_cond_5 = do do let !aw_6 = Types.Atom (Types.UnboundSym "shen.f_error")
-                                                             applyWrapper aw_6 [ApplC (wrapNamed "shen.multiple-set" kl_shen_multiple_set)]
-                                       in case kl_V3668 of
-                                              kl_V3668@(Atom (Nil)) -> pat_cond_0
-                                              !(kl_V3668@(Cons (!kl_V3668h)
-                                                               (!(kl_V3668t@(Cons (!kl_V3668th)
-                                                                                  (!kl_V3668tt)))))) -> pat_cond_1 kl_V3668 kl_V3668h kl_V3668t kl_V3668th kl_V3668tt
-                                              _ -> pat_cond_5
-
-kl_destroy :: Types.KLValue ->
-              Types.KLContext Types.Env Types.KLValue
-kl_destroy (!kl_V3670) = do let !aw_0 = Types.Atom (Types.UnboundSym "declare")
-                            kl_V3670 `pseq` applyWrapper aw_0 [kl_V3670,
-                                                               Types.Atom (Types.UnboundSym "symbol")]
-
-kl_shen_read_evaluate_print :: Types.KLContext Types.Env
-                                               Types.KLValue
-kl_shen_read_evaluate_print = do let !appl_0 = ApplC (Func "lambda" (Context (\(!kl_Lineread) -> do let !appl_1 = ApplC (Func "lambda" (Context (\(!kl_History) -> do let !appl_2 = ApplC (Func "lambda" (Context (\(!kl_NewLineread) -> do let !appl_3 = ApplC (Func "lambda" (Context (\(!kl_NewHistory) -> do let !appl_4 = ApplC (Func "lambda" (Context (\(!kl_Parsed) -> do kl_Parsed `pseq` kl_shen_toplevel kl_Parsed)))
-                                                                                                                                                                                                                                                                                                                 let !aw_5 = Types.Atom (Types.UnboundSym "fst")
-                                                                                                                                                                                                                                                                                                                 !appl_6 <- kl_NewLineread `pseq` applyWrapper aw_5 [kl_NewLineread]
-                                                                                                                                                                                                                                                                                                                 appl_6 `pseq` applyWrapper appl_4 [appl_6])))
-                                                                                                                                                                                                                                            !appl_7 <- kl_NewLineread `pseq` (kl_History `pseq` kl_shen_update_history kl_NewLineread kl_History)
-                                                                                                                                                                                                                                            appl_7 `pseq` applyWrapper appl_3 [appl_7])))
-                                                                                                                                                                      !appl_8 <- kl_Lineread `pseq` (kl_History `pseq` kl_shen_retrieve_from_history_if_needed kl_Lineread kl_History)
-                                                                                                                                                                      appl_8 `pseq` applyWrapper appl_2 [appl_8])))
-                                                                                                    !appl_9 <- value (Types.Atom (Types.UnboundSym "shen.*history*"))
-                                                                                                    appl_9 `pseq` applyWrapper appl_1 [appl_9])))
-                                 !appl_10 <- kl_shen_toplineread
-                                 appl_10 `pseq` applyWrapper appl_0 [appl_10]
-
-kl_shen_retrieve_from_history_if_needed :: Types.KLValue ->
-                                           Types.KLValue -> Types.KLContext Types.Env Types.KLValue
-kl_shen_retrieve_from_history_if_needed (!kl_V3682) (!kl_V3683) = do let !aw_0 = Types.Atom (Types.UnboundSym "tuple?")
-                                                                     !kl_if_1 <- kl_V3682 `pseq` applyWrapper aw_0 [kl_V3682]
-                                                                     !kl_if_2 <- case kl_if_1 of
-                                                                                     Atom (B (True)) -> do let !aw_3 = Types.Atom (Types.UnboundSym "snd")
-                                                                                                           !appl_4 <- kl_V3682 `pseq` applyWrapper aw_3 [kl_V3682]
-                                                                                                           !kl_if_5 <- appl_4 `pseq` consP appl_4
-                                                                                                           !kl_if_6 <- case kl_if_5 of
-                                                                                                                           Atom (B (True)) -> do let !aw_7 = Types.Atom (Types.UnboundSym "snd")
-                                                                                                                                                 !appl_8 <- kl_V3682 `pseq` applyWrapper aw_7 [kl_V3682]
-                                                                                                                                                 !appl_9 <- appl_8 `pseq` hd appl_8
-                                                                                                                                                 !appl_10 <- kl_shen_space
-                                                                                                                                                 !appl_11 <- kl_shen_newline
-                                                                                                                                                 !appl_12 <- appl_11 `pseq` klCons appl_11 (Types.Atom Types.Nil)
-                                                                                                                                                 !appl_13 <- appl_10 `pseq` (appl_12 `pseq` klCons appl_10 appl_12)
-                                                                                                                                                 let !aw_14 = Types.Atom (Types.UnboundSym "element?")
-                                                                                                                                                 !kl_if_15 <- appl_9 `pseq` (appl_13 `pseq` applyWrapper aw_14 [appl_9,
-                                                                                                                                                                                                                appl_13])
-                                                                                                                                                 case kl_if_15 of
-                                                                                                                                                     Atom (B (True)) -> do return (Atom (B True))
-                                                                                                                                                     Atom (B (False)) -> do do return (Atom (B False))
-                                                                                                                                                     _ -> throwError "if: expected boolean"
-                                                                                                                           Atom (B (False)) -> do do return (Atom (B False))
-                                                                                                                           _ -> throwError "if: expected boolean"
-                                                                                                           case kl_if_6 of
-                                                                                                               Atom (B (True)) -> do return (Atom (B True))
-                                                                                                               Atom (B (False)) -> do do return (Atom (B False))
-                                                                                                               _ -> throwError "if: expected boolean"
-                                                                                     Atom (B (False)) -> do do return (Atom (B False))
-                                                                                     _ -> throwError "if: expected boolean"
-                                                                     case kl_if_2 of
-                                                                         Atom (B (True)) -> do let !aw_16 = Types.Atom (Types.UnboundSym "fst")
-                                                                                               !appl_17 <- kl_V3682 `pseq` applyWrapper aw_16 [kl_V3682]
-                                                                                               let !aw_18 = Types.Atom (Types.UnboundSym "snd")
-                                                                                               !appl_19 <- kl_V3682 `pseq` applyWrapper aw_18 [kl_V3682]
-                                                                                               !appl_20 <- appl_19 `pseq` tl appl_19
-                                                                                               let !aw_21 = Types.Atom (Types.UnboundSym "@p")
-                                                                                               !appl_22 <- appl_17 `pseq` (appl_20 `pseq` applyWrapper aw_21 [appl_17,
-                                                                                                                                                              appl_20])
-                                                                                               appl_22 `pseq` (kl_V3683 `pseq` kl_shen_retrieve_from_history_if_needed appl_22 kl_V3683)
-                                                                         Atom (B (False)) -> do let !aw_23 = Types.Atom (Types.UnboundSym "tuple?")
-                                                                                                !kl_if_24 <- kl_V3682 `pseq` applyWrapper aw_23 [kl_V3682]
-                                                                                                !kl_if_25 <- case kl_if_24 of
-                                                                                                                 Atom (B (True)) -> do let !aw_26 = Types.Atom (Types.UnboundSym "snd")
-                                                                                                                                       !appl_27 <- kl_V3682 `pseq` applyWrapper aw_26 [kl_V3682]
-                                                                                                                                       !kl_if_28 <- appl_27 `pseq` consP appl_27
-                                                                                                                                       !kl_if_29 <- case kl_if_28 of
-                                                                                                                                                        Atom (B (True)) -> do let !aw_30 = Types.Atom (Types.UnboundSym "snd")
-                                                                                                                                                                              !appl_31 <- kl_V3682 `pseq` applyWrapper aw_30 [kl_V3682]
-                                                                                                                                                                              !appl_32 <- appl_31 `pseq` tl appl_31
-                                                                                                                                                                              !kl_if_33 <- appl_32 `pseq` consP appl_32
-                                                                                                                                                                              !kl_if_34 <- case kl_if_33 of
-                                                                                                                                                                                               Atom (B (True)) -> do let !aw_35 = Types.Atom (Types.UnboundSym "snd")
-                                                                                                                                                                                                                     !appl_36 <- kl_V3682 `pseq` applyWrapper aw_35 [kl_V3682]
-                                                                                                                                                                                                                     !appl_37 <- appl_36 `pseq` tl appl_36
-                                                                                                                                                                                                                     !appl_38 <- appl_37 `pseq` tl appl_37
-                                                                                                                                                                                                                     !kl_if_39 <- appl_38 `pseq` eq (Types.Atom Types.Nil) appl_38
-                                                                                                                                                                                                                     !kl_if_40 <- case kl_if_39 of
-                                                                                                                                                                                                                                      Atom (B (True)) -> do !kl_if_41 <- let pat_cond_42 kl_V3683 kl_V3683h kl_V3683t = do let !aw_43 = Types.Atom (Types.UnboundSym "snd")
-                                                                                                                                                                                                                                                                                                                           !appl_44 <- kl_V3682 `pseq` applyWrapper aw_43 [kl_V3682]
-                                                                                                                                                                                                                                                                                                                           !appl_45 <- appl_44 `pseq` hd appl_44
-                                                                                                                                                                                                                                                                                                                           !appl_46 <- kl_shen_exclamation
-                                                                                                                                                                                                                                                                                                                           !kl_if_47 <- appl_45 `pseq` (appl_46 `pseq` eq appl_45 appl_46)
-                                                                                                                                                                                                                                                                                                                           !kl_if_48 <- case kl_if_47 of
-                                                                                                                                                                                                                                                                                                                                            Atom (B (True)) -> do let !aw_49 = Types.Atom (Types.UnboundSym "snd")
-                                                                                                                                                                                                                                                                                                                                                                  !appl_50 <- kl_V3682 `pseq` applyWrapper aw_49 [kl_V3682]
-                                                                                                                                                                                                                                                                                                                                                                  !appl_51 <- appl_50 `pseq` tl appl_50
-                                                                                                                                                                                                                                                                                                                                                                  !appl_52 <- appl_51 `pseq` hd appl_51
-                                                                                                                                                                                                                                                                                                                                                                  !appl_53 <- kl_shen_exclamation
-                                                                                                                                                                                                                                                                                                                                                                  !kl_if_54 <- appl_52 `pseq` (appl_53 `pseq` eq appl_52 appl_53)
-                                                                                                                                                                                                                                                                                                                                                                  case kl_if_54 of
-                                                                                                                                                                                                                                                                                                                                                                      Atom (B (True)) -> do return (Atom (B True))
-                                                                                                                                                                                                                                                                                                                                                                      Atom (B (False)) -> do do return (Atom (B False))
-                                                                                                                                                                                                                                                                                                                                                                      _ -> throwError "if: expected boolean"
-                                                                                                                                                                                                                                                                                                                                            Atom (B (False)) -> do do return (Atom (B False))
-                                                                                                                                                                                                                                                                                                                                            _ -> throwError "if: expected boolean"
-                                                                                                                                                                                                                                                                                                                           case kl_if_48 of
-                                                                                                                                                                                                                                                                                                                               Atom (B (True)) -> do return (Atom (B True))
-                                                                                                                                                                                                                                                                                                                               Atom (B (False)) -> do do return (Atom (B False))
-                                                                                                                                                                                                                                                                                                                               _ -> throwError "if: expected boolean"
-                                                                                                                                                                                                                                                                             pat_cond_55 = do do return (Atom (B False))
-                                                                                                                                                                                                                                                                          in case kl_V3683 of
-                                                                                                                                                                                                                                                                                 !(kl_V3683@(Cons (!kl_V3683h)
-                                                                                                                                                                                                                                                                                                  (!kl_V3683t))) -> pat_cond_42 kl_V3683 kl_V3683h kl_V3683t
-                                                                                                                                                                                                                                                                                 _ -> pat_cond_55
-                                                                                                                                                                                                                                                            case kl_if_41 of
-                                                                                                                                                                                                                                                                Atom (B (True)) -> do return (Atom (B True))
-                                                                                                                                                                                                                                                                Atom (B (False)) -> do do return (Atom (B False))
-                                                                                                                                                                                                                                                                _ -> throwError "if: expected boolean"
-                                                                                                                                                                                                                                      Atom (B (False)) -> do do return (Atom (B False))
-                                                                                                                                                                                                                                      _ -> throwError "if: expected boolean"
-                                                                                                                                                                                                                     case kl_if_40 of
-                                                                                                                                                                                                                         Atom (B (True)) -> do return (Atom (B True))
-                                                                                                                                                                                                                         Atom (B (False)) -> do do return (Atom (B False))
-                                                                                                                                                                                                                         _ -> throwError "if: expected boolean"
-                                                                                                                                                                                               Atom (B (False)) -> do do return (Atom (B False))
-                                                                                                                                                                                               _ -> throwError "if: expected boolean"
-                                                                                                                                                                              case kl_if_34 of
-                                                                                                                                                                                  Atom (B (True)) -> do return (Atom (B True))
-                                                                                                                                                                                  Atom (B (False)) -> do do return (Atom (B False))
-                                                                                                                                                                                  _ -> throwError "if: expected boolean"
-                                                                                                                                                        Atom (B (False)) -> do do return (Atom (B False))
-                                                                                                                                                        _ -> throwError "if: expected boolean"
-                                                                                                                                       case kl_if_29 of
-                                                                                                                                           Atom (B (True)) -> do return (Atom (B True))
-                                                                                                                                           Atom (B (False)) -> do do return (Atom (B False))
-                                                                                                                                           _ -> throwError "if: expected boolean"
-                                                                                                                 Atom (B (False)) -> do do return (Atom (B False))
-                                                                                                                 _ -> throwError "if: expected boolean"
-                                                                                                case kl_if_25 of
-                                                                                                    Atom (B (True)) -> do let !appl_56 = ApplC (Func "lambda" (Context (\(!kl_PastPrint) -> do kl_V3683 `pseq` hd kl_V3683)))
-                                                                                                                          !appl_57 <- kl_V3683 `pseq` hd kl_V3683
-                                                                                                                          let !aw_58 = Types.Atom (Types.UnboundSym "snd")
-                                                                                                                          !appl_59 <- appl_57 `pseq` applyWrapper aw_58 [appl_57]
-                                                                                                                          !appl_60 <- appl_59 `pseq` kl_shen_prbytes appl_59
-                                                                                                                          appl_60 `pseq` applyWrapper appl_56 [appl_60]
-                                                                                                    Atom (B (False)) -> do let !aw_61 = Types.Atom (Types.UnboundSym "tuple?")
-                                                                                                                           !kl_if_62 <- kl_V3682 `pseq` applyWrapper aw_61 [kl_V3682]
-                                                                                                                           !kl_if_63 <- case kl_if_62 of
-                                                                                                                                            Atom (B (True)) -> do let !aw_64 = Types.Atom (Types.UnboundSym "snd")
-                                                                                                                                                                  !appl_65 <- kl_V3682 `pseq` applyWrapper aw_64 [kl_V3682]
-                                                                                                                                                                  !kl_if_66 <- appl_65 `pseq` consP appl_65
-                                                                                                                                                                  !kl_if_67 <- case kl_if_66 of
-                                                                                                                                                                                   Atom (B (True)) -> do let !aw_68 = Types.Atom (Types.UnboundSym "snd")
-                                                                                                                                                                                                         !appl_69 <- kl_V3682 `pseq` applyWrapper aw_68 [kl_V3682]
-                                                                                                                                                                                                         !appl_70 <- appl_69 `pseq` hd appl_69
-                                                                                                                                                                                                         !appl_71 <- kl_shen_exclamation
-                                                                                                                                                                                                         !kl_if_72 <- appl_70 `pseq` (appl_71 `pseq` eq appl_70 appl_71)
-                                                                                                                                                                                                         case kl_if_72 of
-                                                                                                                                                                                                             Atom (B (True)) -> do return (Atom (B True))
-                                                                                                                                                                                                             Atom (B (False)) -> do do return (Atom (B False))
-                                                                                                                                                                                                             _ -> throwError "if: expected boolean"
-                                                                                                                                                                                   Atom (B (False)) -> do do return (Atom (B False))
-                                                                                                                                                                                   _ -> throwError "if: expected boolean"
-                                                                                                                                                                  case kl_if_67 of
-                                                                                                                                                                      Atom (B (True)) -> do return (Atom (B True))
-                                                                                                                                                                      Atom (B (False)) -> do do return (Atom (B False))
-                                                                                                                                                                      _ -> throwError "if: expected boolean"
-                                                                                                                                            Atom (B (False)) -> do do return (Atom (B False))
-                                                                                                                                            _ -> throwError "if: expected boolean"
-                                                                                                                           case kl_if_63 of
-                                                                                                                               Atom (B (True)) -> do let !appl_73 = ApplC (Func "lambda" (Context (\(!kl_KeyP) -> do let !appl_74 = ApplC (Func "lambda" (Context (\(!kl_Find) -> do let !appl_75 = ApplC (Func "lambda" (Context (\(!kl_PastPrint) -> do return kl_Find)))
-                                                                                                                                                                                                                                                                                     let !aw_76 = Types.Atom (Types.UnboundSym "snd")
-                                                                                                                                                                                                                                                                                     !appl_77 <- kl_Find `pseq` applyWrapper aw_76 [kl_Find]
-                                                                                                                                                                                                                                                                                     !appl_78 <- appl_77 `pseq` kl_shen_prbytes appl_77
-                                                                                                                                                                                                                                                                                     appl_78 `pseq` applyWrapper appl_75 [appl_78])))
-                                                                                                                                                                                                                     !appl_79 <- kl_KeyP `pseq` (kl_V3683 `pseq` kl_shen_find_past_inputs kl_KeyP kl_V3683)
-                                                                                                                                                                                                                     let !aw_80 = Types.Atom (Types.UnboundSym "head")
-                                                                                                                                                                                                                     !appl_81 <- appl_79 `pseq` applyWrapper aw_80 [appl_79]
-                                                                                                                                                                                                                     appl_81 `pseq` applyWrapper appl_74 [appl_81])))
-                                                                                                                                                     let !aw_82 = Types.Atom (Types.UnboundSym "snd")
-                                                                                                                                                     !appl_83 <- kl_V3682 `pseq` applyWrapper aw_82 [kl_V3682]
-                                                                                                                                                     !appl_84 <- appl_83 `pseq` tl appl_83
-                                                                                                                                                     !appl_85 <- appl_84 `pseq` (kl_V3683 `pseq` kl_shen_make_key appl_84 kl_V3683)
-                                                                                                                                                     appl_85 `pseq` applyWrapper appl_73 [appl_85]
-                                                                                                                               Atom (B (False)) -> do let !aw_86 = Types.Atom (Types.UnboundSym "tuple?")
-                                                                                                                                                      !kl_if_87 <- kl_V3682 `pseq` applyWrapper aw_86 [kl_V3682]
-                                                                                                                                                      !kl_if_88 <- case kl_if_87 of
-                                                                                                                                                                       Atom (B (True)) -> do let !aw_89 = Types.Atom (Types.UnboundSym "snd")
-                                                                                                                                                                                             !appl_90 <- kl_V3682 `pseq` applyWrapper aw_89 [kl_V3682]
-                                                                                                                                                                                             !kl_if_91 <- appl_90 `pseq` consP appl_90
-                                                                                                                                                                                             !kl_if_92 <- case kl_if_91 of
-                                                                                                                                                                                                              Atom (B (True)) -> do let !aw_93 = Types.Atom (Types.UnboundSym "snd")
-                                                                                                                                                                                                                                    !appl_94 <- kl_V3682 `pseq` applyWrapper aw_93 [kl_V3682]
-                                                                                                                                                                                                                                    !appl_95 <- appl_94 `pseq` tl appl_94
-                                                                                                                                                                                                                                    !kl_if_96 <- appl_95 `pseq` eq (Types.Atom Types.Nil) appl_95
-                                                                                                                                                                                                                                    !kl_if_97 <- case kl_if_96 of
-                                                                                                                                                                                                                                                     Atom (B (True)) -> do let !aw_98 = Types.Atom (Types.UnboundSym "snd")
-                                                                                                                                                                                                                                                                           !appl_99 <- kl_V3682 `pseq` applyWrapper aw_98 [kl_V3682]
-                                                                                                                                                                                                                                                                           !appl_100 <- appl_99 `pseq` hd appl_99
-                                                                                                                                                                                                                                                                           !appl_101 <- kl_shen_percent
-                                                                                                                                                                                                                                                                           !kl_if_102 <- appl_100 `pseq` (appl_101 `pseq` eq appl_100 appl_101)
-                                                                                                                                                                                                                                                                           case kl_if_102 of
-                                                                                                                                                                                                                                                                               Atom (B (True)) -> do return (Atom (B True))
-                                                                                                                                                                                                                                                                               Atom (B (False)) -> do do return (Atom (B False))
-                                                                                                                                                                                                                                                                               _ -> throwError "if: expected boolean"
-                                                                                                                                                                                                                                                     Atom (B (False)) -> do do return (Atom (B False))
-                                                                                                                                                                                                                                                     _ -> throwError "if: expected boolean"
-                                                                                                                                                                                                                                    case kl_if_97 of
-                                                                                                                                                                                                                                        Atom (B (True)) -> do return (Atom (B True))
-                                                                                                                                                                                                                                        Atom (B (False)) -> do do return (Atom (B False))
-                                                                                                                                                                                                                                        _ -> throwError "if: expected boolean"
-                                                                                                                                                                                                              Atom (B (False)) -> do do return (Atom (B False))
-                                                                                                                                                                                                              _ -> throwError "if: expected boolean"
-                                                                                                                                                                                             case kl_if_92 of
-                                                                                                                                                                                                 Atom (B (True)) -> do return (Atom (B True))
-                                                                                                                                                                                                 Atom (B (False)) -> do do return (Atom (B False))
-                                                                                                                                                                                                 _ -> throwError "if: expected boolean"
-                                                                                                                                                                       Atom (B (False)) -> do do return (Atom (B False))
-                                                                                                                                                                       _ -> throwError "if: expected boolean"
-                                                                                                                                                      case kl_if_88 of
-                                                                                                                                                          Atom (B (True)) -> do let !appl_103 = ApplC (Func "lambda" (Context (\(!kl_X) -> do return (Atom (B True)))))
-                                                                                                                                                                                let !aw_104 = Types.Atom (Types.UnboundSym "reverse")
-                                                                                                                                                                                !appl_105 <- kl_V3683 `pseq` applyWrapper aw_104 [kl_V3683]
-                                                                                                                                                                                !appl_106 <- appl_103 `pseq` (appl_105 `pseq` kl_shen_print_past_inputs appl_103 appl_105 (Types.Atom (Types.N (Types.KI 0))))
-                                                                                                                                                                                let !aw_107 = Types.Atom (Types.UnboundSym "abort")
-                                                                                                                                                                                !appl_108 <- applyWrapper aw_107 []
-                                                                                                                                                                                let !aw_109 = Types.Atom (Types.UnboundSym "do")
-                                                                                                                                                                                appl_106 `pseq` (appl_108 `pseq` applyWrapper aw_109 [appl_106,
-                                                                                                                                                                                                                                      appl_108])
-                                                                                                                                                          Atom (B (False)) -> do let !aw_110 = Types.Atom (Types.UnboundSym "tuple?")
-                                                                                                                                                                                 !kl_if_111 <- kl_V3682 `pseq` applyWrapper aw_110 [kl_V3682]
-                                                                                                                                                                                 !kl_if_112 <- case kl_if_111 of
-                                                                                                                                                                                                   Atom (B (True)) -> do let !aw_113 = Types.Atom (Types.UnboundSym "snd")
-                                                                                                                                                                                                                         !appl_114 <- kl_V3682 `pseq` applyWrapper aw_113 [kl_V3682]
-                                                                                                                                                                                                                         !kl_if_115 <- appl_114 `pseq` consP appl_114
-                                                                                                                                                                                                                         !kl_if_116 <- case kl_if_115 of
-                                                                                                                                                                                                                                           Atom (B (True)) -> do let !aw_117 = Types.Atom (Types.UnboundSym "snd")
-                                                                                                                                                                                                                                                                 !appl_118 <- kl_V3682 `pseq` applyWrapper aw_117 [kl_V3682]
-                                                                                                                                                                                                                                                                 !appl_119 <- appl_118 `pseq` hd appl_118
-                                                                                                                                                                                                                                                                 !appl_120 <- kl_shen_percent
-                                                                                                                                                                                                                                                                 !kl_if_121 <- appl_119 `pseq` (appl_120 `pseq` eq appl_119 appl_120)
-                                                                                                                                                                                                                                                                 case kl_if_121 of
-                                                                                                                                                                                                                                                                     Atom (B (True)) -> do return (Atom (B True))
-                                                                                                                                                                                                                                                                     Atom (B (False)) -> do do return (Atom (B False))
-                                                                                                                                                                                                                                                                     _ -> throwError "if: expected boolean"
-                                                                                                                                                                                                                                           Atom (B (False)) -> do do return (Atom (B False))
-                                                                                                                                                                                                                                           _ -> throwError "if: expected boolean"
-                                                                                                                                                                                                                         case kl_if_116 of
-                                                                                                                                                                                                                             Atom (B (True)) -> do return (Atom (B True))
-                                                                                                                                                                                                                             Atom (B (False)) -> do do return (Atom (B False))
-                                                                                                                                                                                                                             _ -> throwError "if: expected boolean"
-                                                                                                                                                                                                   Atom (B (False)) -> do do return (Atom (B False))
-                                                                                                                                                                                                   _ -> throwError "if: expected boolean"
-                                                                                                                                                                                 case kl_if_112 of
-                                                                                                                                                                                     Atom (B (True)) -> do let !appl_122 = ApplC (Func "lambda" (Context (\(!kl_KeyP) -> do let !appl_123 = ApplC (Func "lambda" (Context (\(!kl_Pastprint) -> do let !aw_124 = Types.Atom (Types.UnboundSym "abort")
-                                                                                                                                                                                                                                                                                                                                                  applyWrapper aw_124 [])))
-                                                                                                                                                                                                                                                                            let !aw_125 = Types.Atom (Types.UnboundSym "reverse")
-                                                                                                                                                                                                                                                                            !appl_126 <- kl_V3683 `pseq` applyWrapper aw_125 [kl_V3683]
-                                                                                                                                                                                                                                                                            !appl_127 <- kl_KeyP `pseq` (appl_126 `pseq` kl_shen_print_past_inputs kl_KeyP appl_126 (Types.Atom (Types.N (Types.KI 0))))
-                                                                                                                                                                                                                                                                            appl_127 `pseq` applyWrapper appl_123 [appl_127])))
-                                                                                                                                                                                                           let !aw_128 = Types.Atom (Types.UnboundSym "snd")
-                                                                                                                                                                                                           !appl_129 <- kl_V3682 `pseq` applyWrapper aw_128 [kl_V3682]
-                                                                                                                                                                                                           !appl_130 <- appl_129 `pseq` tl appl_129
-                                                                                                                                                                                                           !appl_131 <- appl_130 `pseq` (kl_V3683 `pseq` kl_shen_make_key appl_130 kl_V3683)
-                                                                                                                                                                                                           appl_131 `pseq` applyWrapper appl_122 [appl_131]
-                                                                                                                                                                                     Atom (B (False)) -> do do return kl_V3682
-                                                                                                                                                                                     _ -> throwError "if: expected boolean"
-                                                                                                                                                          _ -> throwError "if: expected boolean"
-                                                                                                                               _ -> throwError "if: expected boolean"
-                                                                                                    _ -> throwError "if: expected boolean"
-                                                                         _ -> throwError "if: expected boolean"
-
-kl_shen_percent :: Types.KLContext Types.Env Types.KLValue
-kl_shen_percent = do return (Types.Atom (Types.N (Types.KI 37)))
-
-kl_shen_exclamation :: Types.KLContext Types.Env Types.KLValue
-kl_shen_exclamation = do return (Types.Atom (Types.N (Types.KI 33)))
-
-kl_shen_prbytes :: Types.KLValue ->
-                   Types.KLContext Types.Env Types.KLValue
-kl_shen_prbytes (!kl_V3685) = do let !appl_0 = ApplC (Func "lambda" (Context (\(!kl_Byte) -> do !appl_1 <- kl_Byte `pseq` nToString kl_Byte
-                                                                                                let !aw_2 = Types.Atom (Types.UnboundSym "stoutput")
-                                                                                                !appl_3 <- applyWrapper aw_2 []
-                                                                                                let !aw_4 = Types.Atom (Types.UnboundSym "pr")
-                                                                                                appl_1 `pseq` (appl_3 `pseq` applyWrapper aw_4 [appl_1,
-                                                                                                                                                appl_3]))))
-                                 let !aw_5 = Types.Atom (Types.UnboundSym "map")
-                                 !appl_6 <- appl_0 `pseq` (kl_V3685 `pseq` applyWrapper aw_5 [appl_0,
-                                                                                              kl_V3685])
-                                 let !aw_7 = Types.Atom (Types.UnboundSym "nl")
-                                 !appl_8 <- applyWrapper aw_7 [Types.Atom (Types.N (Types.KI 1))]
-                                 let !aw_9 = Types.Atom (Types.UnboundSym "do")
-                                 appl_6 `pseq` (appl_8 `pseq` applyWrapper aw_9 [appl_6, appl_8])
-
-kl_shen_update_history :: Types.KLValue ->
-                          Types.KLValue -> Types.KLContext Types.Env Types.KLValue
-kl_shen_update_history (!kl_V3688) (!kl_V3689) = do !appl_0 <- kl_V3688 `pseq` (kl_V3689 `pseq` klCons kl_V3688 kl_V3689)
-                                                    appl_0 `pseq` klSet (Types.Atom (Types.UnboundSym "shen.*history*")) appl_0
-
-kl_shen_toplineread :: Types.KLContext Types.Env Types.KLValue
-kl_shen_toplineread = do let !aw_0 = Types.Atom (Types.UnboundSym "stinput")
-                         !appl_1 <- applyWrapper aw_0 []
-                         !appl_2 <- appl_1 `pseq` readByte appl_1
-                         appl_2 `pseq` kl_shen_toplineread_loop appl_2 (Types.Atom Types.Nil)
-
-kl_shen_toplineread_loop :: Types.KLValue ->
-                            Types.KLValue -> Types.KLContext Types.Env Types.KLValue
-kl_shen_toplineread_loop (!kl_V3693) (!kl_V3694) = do !appl_0 <- kl_shen_hat
-                                                      !kl_if_1 <- kl_V3693 `pseq` (appl_0 `pseq` eq kl_V3693 appl_0)
-                                                      case kl_if_1 of
-                                                          Atom (B (True)) -> do simpleError (Types.Atom (Types.Str "line read aborted"))
-                                                          Atom (B (False)) -> do !appl_2 <- kl_shen_newline
-                                                                                 !appl_3 <- kl_shen_carriage_return
-                                                                                 !appl_4 <- appl_3 `pseq` klCons appl_3 (Types.Atom Types.Nil)
-                                                                                 !appl_5 <- appl_2 `pseq` (appl_4 `pseq` klCons appl_2 appl_4)
-                                                                                 let !aw_6 = Types.Atom (Types.UnboundSym "element?")
-                                                                                 !kl_if_7 <- kl_V3693 `pseq` (appl_5 `pseq` applyWrapper aw_6 [kl_V3693,
-                                                                                                                                               appl_5])
-                                                                                 case kl_if_7 of
-                                                                                     Atom (B (True)) -> do let !appl_8 = ApplC (Func "lambda" (Context (\(!kl_Line) -> do let !appl_9 = ApplC (Func "lambda" (Context (\(!kl_It) -> do !kl_if_10 <- let pat_cond_11 = do return (Atom (B True))
-                                                                                                                                                                                                                                                        pat_cond_12 = do do let !aw_13 = Types.Atom (Types.UnboundSym "empty?")
-                                                                                                                                                                                                                                                                            !kl_if_14 <- kl_Line `pseq` applyWrapper aw_13 [kl_Line]
-                                                                                                                                                                                                                                                                            case kl_if_14 of
-                                                                                                                                                                                                                                                                                Atom (B (True)) -> do return (Atom (B True))
-                                                                                                                                                                                                                                                                                Atom (B (False)) -> do do return (Atom (B False))
-                                                                                                                                                                                                                                                                                _ -> throwError "if: expected boolean"
-                                                                                                                                                                                                                                                     in case kl_Line of
-                                                                                                                                                                                                                                                            kl_Line@(Atom (UnboundSym "shen.nextline")) -> pat_cond_11
-                                                                                                                                                                                                                                                            kl_Line@(ApplC (PL "shen.nextline"
-                                                                                                                                                                                                                                                                               _)) -> pat_cond_11
-                                                                                                                                                                                                                                                            kl_Line@(ApplC (Func "shen.nextline"
-                                                                                                                                                                                                                                                                                 _)) -> pat_cond_11
-                                                                                                                                                                                                                                                            _ -> pat_cond_12
-                                                                                                                                                                                                                                       case kl_if_10 of
-                                                                                                                                                                                                                                           Atom (B (True)) -> do let !aw_15 = Types.Atom (Types.UnboundSym "stinput")
-                                                                                                                                                                                                                                                                 !appl_16 <- applyWrapper aw_15 []
-                                                                                                                                                                                                                                                                 !appl_17 <- appl_16 `pseq` readByte appl_16
-                                                                                                                                                                                                                                                                 !appl_18 <- kl_V3693 `pseq` klCons kl_V3693 (Types.Atom Types.Nil)
-                                                                                                                                                                                                                                                                 let !aw_19 = Types.Atom (Types.UnboundSym "append")
-                                                                                                                                                                                                                                                                 !appl_20 <- kl_V3694 `pseq` (appl_18 `pseq` applyWrapper aw_19 [kl_V3694,
-                                                                                                                                                                                                                                                                                                                                 appl_18])
-                                                                                                                                                                                                                                                                 appl_17 `pseq` (appl_20 `pseq` kl_shen_toplineread_loop appl_17 appl_20)
-                                                                                                                                                                                                                                           Atom (B (False)) -> do do let !aw_21 = Types.Atom (Types.UnboundSym "@p")
-                                                                                                                                                                                                                                                                     kl_Line `pseq` (kl_V3694 `pseq` applyWrapper aw_21 [kl_Line,
-                                                                                                                                                                                                                                                                                                                         kl_V3694])
-                                                                                                                                                                                                                                           _ -> throwError "if: expected boolean")))
-                                                                                                                                                                          let !aw_22 = Types.Atom (Types.UnboundSym "shen.record-it")
-                                                                                                                                                                          !appl_23 <- kl_V3694 `pseq` applyWrapper aw_22 [kl_V3694]
-                                                                                                                                                                          appl_23 `pseq` applyWrapper appl_9 [appl_23])))
-                                                                                                           let !appl_24 = ApplC (Func "lambda" (Context (\(!kl_X) -> do let !aw_25 = Types.Atom (Types.UnboundSym "shen.<st_input>")
-                                                                                                                                                                        kl_X `pseq` applyWrapper aw_25 [kl_X])))
-                                                                                                           let !appl_26 = ApplC (Func "lambda" (Context (\(!kl_E) -> do return (Types.Atom (Types.UnboundSym "shen.nextline")))))
-                                                                                                           let !aw_27 = Types.Atom (Types.UnboundSym "compile")
-                                                                                                           !appl_28 <- appl_24 `pseq` (kl_V3694 `pseq` (appl_26 `pseq` applyWrapper aw_27 [appl_24,
-                                                                                                                                                                                           kl_V3694,
-                                                                                                                                                                                           appl_26]))
-                                                                                                           appl_28 `pseq` applyWrapper appl_8 [appl_28]
-                                                                                     Atom (B (False)) -> do do let !aw_29 = Types.Atom (Types.UnboundSym "stinput")
-                                                                                                               !appl_30 <- applyWrapper aw_29 []
-                                                                                                               !appl_31 <- appl_30 `pseq` readByte appl_30
-                                                                                                               !appl_32 <- kl_V3693 `pseq` klCons kl_V3693 (Types.Atom Types.Nil)
-                                                                                                               let !aw_33 = Types.Atom (Types.UnboundSym "append")
-                                                                                                               !appl_34 <- kl_V3694 `pseq` (appl_32 `pseq` applyWrapper aw_33 [kl_V3694,
-                                                                                                                                                                               appl_32])
-                                                                                                               appl_31 `pseq` (appl_34 `pseq` kl_shen_toplineread_loop appl_31 appl_34)
-                                                                                     _ -> throwError "if: expected boolean"
-                                                          _ -> throwError "if: expected boolean"
-
-kl_shen_hat :: Types.KLContext Types.Env Types.KLValue
-kl_shen_hat = do return (Types.Atom (Types.N (Types.KI 94)))
-
-kl_shen_newline :: Types.KLContext Types.Env Types.KLValue
-kl_shen_newline = do return (Types.Atom (Types.N (Types.KI 10)))
-
-kl_shen_carriage_return :: Types.KLContext Types.Env Types.KLValue
-kl_shen_carriage_return = do return (Types.Atom (Types.N (Types.KI 13)))
-
-kl_tc :: Types.KLValue -> Types.KLContext Types.Env Types.KLValue
-kl_tc (!kl_V3700) = do let pat_cond_0 = do klSet (Types.Atom (Types.UnboundSym "shen.*tc*")) (Atom (B True))
-                           pat_cond_1 = do klSet (Types.Atom (Types.UnboundSym "shen.*tc*")) (Atom (B False))
-                           pat_cond_2 = do do simpleError (Types.Atom (Types.Str "tc expects a + or -"))
-                        in case kl_V3700 of
-                               kl_V3700@(Atom (UnboundSym "+")) -> pat_cond_0
-                               kl_V3700@(ApplC (PL "+" _)) -> pat_cond_0
-                               kl_V3700@(ApplC (Func "+" _)) -> pat_cond_0
-                               kl_V3700@(Atom (UnboundSym "-")) -> pat_cond_1
-                               kl_V3700@(ApplC (PL "-" _)) -> pat_cond_1
-                               kl_V3700@(ApplC (Func "-" _)) -> pat_cond_1
-                               _ -> pat_cond_2
-
-kl_shen_prompt :: Types.KLContext Types.Env Types.KLValue
-kl_shen_prompt = do !kl_if_0 <- value (Types.Atom (Types.UnboundSym "shen.*tc*"))
-                    case kl_if_0 of
-                        Atom (B (True)) -> do !appl_1 <- value (Types.Atom (Types.UnboundSym "shen.*history*"))
-                                              let !aw_2 = Types.Atom (Types.UnboundSym "length")
-                                              !appl_3 <- appl_1 `pseq` applyWrapper aw_2 [appl_1]
-                                              let !aw_4 = Types.Atom (Types.UnboundSym "shen.app")
-                                              !appl_5 <- appl_3 `pseq` applyWrapper aw_4 [appl_3,
-                                                                                          Types.Atom (Types.Str "+) "),
-                                                                                          Types.Atom (Types.UnboundSym "shen.a")]
-                                              !appl_6 <- appl_5 `pseq` cn (Types.Atom (Types.Str "\n\n(")) appl_5
-                                              let !aw_7 = Types.Atom (Types.UnboundSym "stoutput")
-                                              !appl_8 <- applyWrapper aw_7 []
-                                              let !aw_9 = Types.Atom (Types.UnboundSym "shen.prhush")
-                                              appl_6 `pseq` (appl_8 `pseq` applyWrapper aw_9 [appl_6,
-                                                                                              appl_8])
-                        Atom (B (False)) -> do do !appl_10 <- value (Types.Atom (Types.UnboundSym "shen.*history*"))
-                                                  let !aw_11 = Types.Atom (Types.UnboundSym "length")
-                                                  !appl_12 <- appl_10 `pseq` applyWrapper aw_11 [appl_10]
-                                                  let !aw_13 = Types.Atom (Types.UnboundSym "shen.app")
-                                                  !appl_14 <- appl_12 `pseq` applyWrapper aw_13 [appl_12,
-                                                                                                 Types.Atom (Types.Str "-) "),
-                                                                                                 Types.Atom (Types.UnboundSym "shen.a")]
-                                                  !appl_15 <- appl_14 `pseq` cn (Types.Atom (Types.Str "\n\n(")) appl_14
-                                                  let !aw_16 = Types.Atom (Types.UnboundSym "stoutput")
-                                                  !appl_17 <- applyWrapper aw_16 []
-                                                  let !aw_18 = Types.Atom (Types.UnboundSym "shen.prhush")
-                                                  appl_15 `pseq` (appl_17 `pseq` applyWrapper aw_18 [appl_15,
-                                                                                                     appl_17])
-                        _ -> throwError "if: expected boolean"
-
-kl_shen_toplevel :: Types.KLValue ->
-                    Types.KLContext Types.Env Types.KLValue
-kl_shen_toplevel (!kl_V3702) = do !appl_0 <- value (Types.Atom (Types.UnboundSym "shen.*tc*"))
-                                  kl_V3702 `pseq` (appl_0 `pseq` kl_shen_toplevel_evaluate kl_V3702 appl_0)
-
-kl_shen_find_past_inputs :: Types.KLValue ->
-                            Types.KLValue -> Types.KLContext Types.Env Types.KLValue
-kl_shen_find_past_inputs (!kl_V3705) (!kl_V3706) = do let !appl_0 = ApplC (Func "lambda" (Context (\(!kl_F) -> do let !aw_1 = Types.Atom (Types.UnboundSym "empty?")
-                                                                                                                  !kl_if_2 <- kl_F `pseq` applyWrapper aw_1 [kl_F]
-                                                                                                                  case kl_if_2 of
-                                                                                                                      Atom (B (True)) -> do simpleError (Types.Atom (Types.Str "input not found\n"))
-                                                                                                                      Atom (B (False)) -> do do return kl_F
-                                                                                                                      _ -> throwError "if: expected boolean")))
-                                                      !appl_3 <- kl_V3705 `pseq` (kl_V3706 `pseq` kl_shen_find kl_V3705 kl_V3706)
-                                                      appl_3 `pseq` applyWrapper appl_0 [appl_3]
-
-kl_shen_make_key :: Types.KLValue ->
-                    Types.KLValue -> Types.KLContext Types.Env Types.KLValue
-kl_shen_make_key (!kl_V3709) (!kl_V3710) = do let !appl_0 = ApplC (Func "lambda" (Context (\(!kl_Atom) -> do let !aw_1 = Types.Atom (Types.UnboundSym "integer?")
-                                                                                                             !kl_if_2 <- kl_Atom `pseq` applyWrapper aw_1 [kl_Atom]
-                                                                                                             case kl_if_2 of
-                                                                                                                 Atom (B (True)) -> do return (ApplC (Func "lambda" (Context (\(!kl_X) -> do !appl_3 <- kl_Atom `pseq` add kl_Atom (Types.Atom (Types.N (Types.KI 1)))
-                                                                                                                                                                                             let !aw_4 = Types.Atom (Types.UnboundSym "reverse")
-                                                                                                                                                                                             !appl_5 <- kl_V3710 `pseq` applyWrapper aw_4 [kl_V3710]
-                                                                                                                                                                                             let !aw_6 = Types.Atom (Types.UnboundSym "nth")
-                                                                                                                                                                                             !appl_7 <- appl_3 `pseq` (appl_5 `pseq` applyWrapper aw_6 [appl_3,
-                                                                                                                                                                                                                                                        appl_5])
-                                                                                                                                                                                             kl_X `pseq` (appl_7 `pseq` eq kl_X appl_7)))))
-                                                                                                                 Atom (B (False)) -> do do return (ApplC (Func "lambda" (Context (\(!kl_X) -> do let !aw_8 = Types.Atom (Types.UnboundSym "snd")
-                                                                                                                                                                                                 !appl_9 <- kl_X `pseq` applyWrapper aw_8 [kl_X]
-                                                                                                                                                                                                 !appl_10 <- appl_9 `pseq` kl_shen_trim_gubbins appl_9
-                                                                                                                                                                                                 kl_V3709 `pseq` (appl_10 `pseq` kl_shen_prefixP kl_V3709 appl_10)))))
-                                                                                                                 _ -> throwError "if: expected boolean")))
-                                              let !appl_11 = ApplC (Func "lambda" (Context (\(!kl_X) -> do let !aw_12 = Types.Atom (Types.UnboundSym "shen.<st_input>")
-                                                                                                           kl_X `pseq` applyWrapper aw_12 [kl_X])))
-                                              let !appl_13 = ApplC (Func "lambda" (Context (\(!kl_E) -> do let pat_cond_14 kl_E kl_Eh kl_Et = do let !aw_15 = Types.Atom (Types.UnboundSym "shen.app")
-                                                                                                                                                 !appl_16 <- kl_E `pseq` applyWrapper aw_15 [kl_E,
-                                                                                                                                                                                             Types.Atom (Types.Str "\n"),
-                                                                                                                                                                                             Types.Atom (Types.UnboundSym "shen.s")]
-                                                                                                                                                 !appl_17 <- appl_16 `pseq` cn (Types.Atom (Types.Str "parse error here: ")) appl_16
-                                                                                                                                                 appl_17 `pseq` simpleError appl_17
-                                                                                                               pat_cond_18 = do do simpleError (Types.Atom (Types.Str "parse error\n"))
-                                                                                                            in case kl_E of
-                                                                                                                   !(kl_E@(Cons (!kl_Eh)
-                                                                                                                                (!kl_Et))) -> pat_cond_14 kl_E kl_Eh kl_Et
-                                                                                                                   _ -> pat_cond_18)))
-                                              let !aw_19 = Types.Atom (Types.UnboundSym "compile")
-                                              !appl_20 <- appl_11 `pseq` (kl_V3709 `pseq` (appl_13 `pseq` applyWrapper aw_19 [appl_11,
-                                                                                                                              kl_V3709,
-                                                                                                                              appl_13]))
-                                              !appl_21 <- appl_20 `pseq` hd appl_20
-                                              appl_21 `pseq` applyWrapper appl_0 [appl_21]
-
-kl_shen_trim_gubbins :: Types.KLValue ->
-                        Types.KLContext Types.Env Types.KLValue
-kl_shen_trim_gubbins (!kl_V3712) = do !kl_if_0 <- let pat_cond_1 kl_V3712 kl_V3712h kl_V3712t = do !appl_2 <- kl_shen_space
-                                                                                                   !kl_if_3 <- kl_V3712h `pseq` (appl_2 `pseq` eq kl_V3712h appl_2)
-                                                                                                   case kl_if_3 of
-                                                                                                       Atom (B (True)) -> do return (Atom (B True))
-                                                                                                       Atom (B (False)) -> do do return (Atom (B False))
-                                                                                                       _ -> throwError "if: expected boolean"
-                                                      pat_cond_4 = do do return (Atom (B False))
-                                                   in case kl_V3712 of
-                                                          !(kl_V3712@(Cons (!kl_V3712h)
-                                                                           (!kl_V3712t))) -> pat_cond_1 kl_V3712 kl_V3712h kl_V3712t
-                                                          _ -> pat_cond_4
-                                      case kl_if_0 of
-                                          Atom (B (True)) -> do !appl_5 <- kl_V3712 `pseq` tl kl_V3712
-                                                                appl_5 `pseq` kl_shen_trim_gubbins appl_5
-                                          Atom (B (False)) -> do !kl_if_6 <- let pat_cond_7 kl_V3712 kl_V3712h kl_V3712t = do !appl_8 <- kl_shen_newline
-                                                                                                                              !kl_if_9 <- kl_V3712h `pseq` (appl_8 `pseq` eq kl_V3712h appl_8)
-                                                                                                                              case kl_if_9 of
-                                                                                                                                  Atom (B (True)) -> do return (Atom (B True))
-                                                                                                                                  Atom (B (False)) -> do do return (Atom (B False))
-                                                                                                                                  _ -> throwError "if: expected boolean"
-                                                                                 pat_cond_10 = do do return (Atom (B False))
-                                                                              in case kl_V3712 of
-                                                                                     !(kl_V3712@(Cons (!kl_V3712h)
-                                                                                                      (!kl_V3712t))) -> pat_cond_7 kl_V3712 kl_V3712h kl_V3712t
-                                                                                     _ -> pat_cond_10
-                                                                 case kl_if_6 of
-                                                                     Atom (B (True)) -> do !appl_11 <- kl_V3712 `pseq` tl kl_V3712
-                                                                                           appl_11 `pseq` kl_shen_trim_gubbins appl_11
-                                                                     Atom (B (False)) -> do !kl_if_12 <- let pat_cond_13 kl_V3712 kl_V3712h kl_V3712t = do !appl_14 <- kl_shen_carriage_return
-                                                                                                                                                           !kl_if_15 <- kl_V3712h `pseq` (appl_14 `pseq` eq kl_V3712h appl_14)
-                                                                                                                                                           case kl_if_15 of
-                                                                                                                                                               Atom (B (True)) -> do return (Atom (B True))
-                                                                                                                                                               Atom (B (False)) -> do do return (Atom (B False))
-                                                                                                                                                               _ -> throwError "if: expected boolean"
-                                                                                                             pat_cond_16 = do do return (Atom (B False))
-                                                                                                          in case kl_V3712 of
-                                                                                                                 !(kl_V3712@(Cons (!kl_V3712h)
-                                                                                                                                  (!kl_V3712t))) -> pat_cond_13 kl_V3712 kl_V3712h kl_V3712t
-                                                                                                                 _ -> pat_cond_16
-                                                                                            case kl_if_12 of
-                                                                                                Atom (B (True)) -> do !appl_17 <- kl_V3712 `pseq` tl kl_V3712
-                                                                                                                      appl_17 `pseq` kl_shen_trim_gubbins appl_17
-                                                                                                Atom (B (False)) -> do !kl_if_18 <- let pat_cond_19 kl_V3712 kl_V3712h kl_V3712t = do !appl_20 <- kl_shen_tab
-                                                                                                                                                                                      !kl_if_21 <- kl_V3712h `pseq` (appl_20 `pseq` eq kl_V3712h appl_20)
-                                                                                                                                                                                      case kl_if_21 of
-                                                                                                                                                                                          Atom (B (True)) -> do return (Atom (B True))
-                                                                                                                                                                                          Atom (B (False)) -> do do return (Atom (B False))
-                                                                                                                                                                                          _ -> throwError "if: expected boolean"
-                                                                                                                                        pat_cond_22 = do do return (Atom (B False))
-                                                                                                                                     in case kl_V3712 of
-                                                                                                                                            !(kl_V3712@(Cons (!kl_V3712h)
-                                                                                                                                                             (!kl_V3712t))) -> pat_cond_19 kl_V3712 kl_V3712h kl_V3712t
-                                                                                                                                            _ -> pat_cond_22
-                                                                                                                       case kl_if_18 of
-                                                                                                                           Atom (B (True)) -> do !appl_23 <- kl_V3712 `pseq` tl kl_V3712
-                                                                                                                                                 appl_23 `pseq` kl_shen_trim_gubbins appl_23
-                                                                                                                           Atom (B (False)) -> do !kl_if_24 <- let pat_cond_25 kl_V3712 kl_V3712h kl_V3712t = do !appl_26 <- kl_shen_left_round
-                                                                                                                                                                                                                 !kl_if_27 <- kl_V3712h `pseq` (appl_26 `pseq` eq kl_V3712h appl_26)
-                                                                                                                                                                                                                 case kl_if_27 of
-                                                                                                                                                                                                                     Atom (B (True)) -> do return (Atom (B True))
-                                                                                                                                                                                                                     Atom (B (False)) -> do do return (Atom (B False))
-                                                                                                                                                                                                                     _ -> throwError "if: expected boolean"
-                                                                                                                                                                   pat_cond_28 = do do return (Atom (B False))
-                                                                                                                                                                in case kl_V3712 of
-                                                                                                                                                                       !(kl_V3712@(Cons (!kl_V3712h)
-                                                                                                                                                                                        (!kl_V3712t))) -> pat_cond_25 kl_V3712 kl_V3712h kl_V3712t
-                                                                                                                                                                       _ -> pat_cond_28
-                                                                                                                                                  case kl_if_24 of
-                                                                                                                                                      Atom (B (True)) -> do !appl_29 <- kl_V3712 `pseq` tl kl_V3712
-                                                                                                                                                                            appl_29 `pseq` kl_shen_trim_gubbins appl_29
-                                                                                                                                                      Atom (B (False)) -> do do return kl_V3712
-                                                                                                                                                      _ -> throwError "if: expected boolean"
-                                                                                                                           _ -> throwError "if: expected boolean"
-                                                                                                _ -> throwError "if: expected boolean"
-                                                                     _ -> throwError "if: expected boolean"
-                                          _ -> throwError "if: expected boolean"
-
-kl_shen_space :: Types.KLContext Types.Env Types.KLValue
-kl_shen_space = do return (Types.Atom (Types.N (Types.KI 32)))
-
-kl_shen_tab :: Types.KLContext Types.Env Types.KLValue
-kl_shen_tab = do return (Types.Atom (Types.N (Types.KI 9)))
-
-kl_shen_left_round :: Types.KLContext Types.Env Types.KLValue
-kl_shen_left_round = do return (Types.Atom (Types.N (Types.KI 40)))
-
-kl_shen_find :: Types.KLValue ->
-                Types.KLValue -> Types.KLContext Types.Env Types.KLValue
-kl_shen_find (!kl_V3721) (!kl_V3722) = do let pat_cond_0 = do return (Types.Atom Types.Nil)
-                                              pat_cond_1 = do !kl_if_2 <- let pat_cond_3 kl_V3722 kl_V3722h kl_V3722t = do !kl_if_4 <- kl_V3722h `pseq` applyWrapper kl_V3721 [kl_V3722h]
-                                                                                                                           case kl_if_4 of
-                                                                                                                               Atom (B (True)) -> do return (Atom (B True))
-                                                                                                                               Atom (B (False)) -> do do return (Atom (B False))
-                                                                                                                               _ -> throwError "if: expected boolean"
-                                                                              pat_cond_5 = do do return (Atom (B False))
-                                                                           in case kl_V3722 of
-                                                                                  !(kl_V3722@(Cons (!kl_V3722h)
-                                                                                                   (!kl_V3722t))) -> pat_cond_3 kl_V3722 kl_V3722h kl_V3722t
-                                                                                  _ -> pat_cond_5
-                                                              case kl_if_2 of
-                                                                  Atom (B (True)) -> do !appl_6 <- kl_V3722 `pseq` hd kl_V3722
-                                                                                        !appl_7 <- kl_V3722 `pseq` tl kl_V3722
-                                                                                        !appl_8 <- kl_V3721 `pseq` (appl_7 `pseq` kl_shen_find kl_V3721 appl_7)
-                                                                                        appl_6 `pseq` (appl_8 `pseq` klCons appl_6 appl_8)
-                                                                  Atom (B (False)) -> do let pat_cond_9 kl_V3722 kl_V3722h kl_V3722t = do kl_V3721 `pseq` (kl_V3722t `pseq` kl_shen_find kl_V3721 kl_V3722t)
-                                                                                             pat_cond_10 = do do let !aw_11 = Types.Atom (Types.UnboundSym "shen.f_error")
-                                                                                                                 applyWrapper aw_11 [ApplC (wrapNamed "shen.find" kl_shen_find)]
-                                                                                          in case kl_V3722 of
-                                                                                                 !(kl_V3722@(Cons (!kl_V3722h)
-                                                                                                                  (!kl_V3722t))) -> pat_cond_9 kl_V3722 kl_V3722h kl_V3722t
-                                                                                                 _ -> pat_cond_10
-                                                                  _ -> throwError "if: expected boolean"
-                                           in case kl_V3722 of
-                                                  kl_V3722@(Atom (Nil)) -> pat_cond_0
-                                                  _ -> pat_cond_1
-
-kl_shen_prefixP :: Types.KLValue ->
-                   Types.KLValue -> Types.KLContext Types.Env Types.KLValue
-kl_shen_prefixP (!kl_V3736) (!kl_V3737) = do let pat_cond_0 = do return (Atom (B True))
-                                                 pat_cond_1 = do !kl_if_2 <- let pat_cond_3 kl_V3736 kl_V3736h kl_V3736t = do let pat_cond_4 kl_V3737 kl_V3737h kl_V3737t = do return (Atom (B True))
-                                                                                                                                  pat_cond_5 = do do return (Atom (B False))
-                                                                                                                               in case kl_V3737 of
-                                                                                                                                      !(kl_V3737@(Cons (!kl_V3737h)
-                                                                                                                                                       (!kl_V3737t))) | eqCore kl_V3737h kl_V3736h -> pat_cond_4 kl_V3737 kl_V3737h kl_V3737t
-                                                                                                                                      _ -> pat_cond_5
-                                                                                 pat_cond_6 = do do return (Atom (B False))
-                                                                              in case kl_V3736 of
-                                                                                     !(kl_V3736@(Cons (!kl_V3736h)
-                                                                                                      (!kl_V3736t))) -> pat_cond_3 kl_V3736 kl_V3736h kl_V3736t
-                                                                                     _ -> pat_cond_6
-                                                                 case kl_if_2 of
-                                                                     Atom (B (True)) -> do !appl_7 <- kl_V3736 `pseq` tl kl_V3736
-                                                                                           !appl_8 <- kl_V3737 `pseq` tl kl_V3737
-                                                                                           appl_7 `pseq` (appl_8 `pseq` kl_shen_prefixP appl_7 appl_8)
-                                                                     Atom (B (False)) -> do do return (Atom (B False))
-                                                                     _ -> throwError "if: expected boolean"
-                                              in case kl_V3736 of
-                                                     kl_V3736@(Atom (Nil)) -> pat_cond_0
-                                                     _ -> pat_cond_1
-
-kl_shen_print_past_inputs :: Types.KLValue ->
-                             Types.KLValue ->
-                             Types.KLValue -> Types.KLContext Types.Env Types.KLValue
-kl_shen_print_past_inputs (!kl_V3749) (!kl_V3750) (!kl_V3751) = do let pat_cond_0 = do return (Types.Atom (Types.UnboundSym "_"))
-                                                                       pat_cond_1 = do !kl_if_2 <- let pat_cond_3 kl_V3750 kl_V3750h kl_V3750t = do !appl_4 <- kl_V3750h `pseq` applyWrapper kl_V3749 [kl_V3750h]
-                                                                                                                                                    let !aw_5 = Types.Atom (Types.UnboundSym "not")
-                                                                                                                                                    !kl_if_6 <- appl_4 `pseq` applyWrapper aw_5 [appl_4]
-                                                                                                                                                    case kl_if_6 of
-                                                                                                                                                        Atom (B (True)) -> do return (Atom (B True))
-                                                                                                                                                        Atom (B (False)) -> do do return (Atom (B False))
-                                                                                                                                                        _ -> throwError "if: expected boolean"
-                                                                                                       pat_cond_7 = do do return (Atom (B False))
-                                                                                                    in case kl_V3750 of
-                                                                                                           !(kl_V3750@(Cons (!kl_V3750h)
-                                                                                                                            (!kl_V3750t))) -> pat_cond_3 kl_V3750 kl_V3750h kl_V3750t
-                                                                                                           _ -> pat_cond_7
-                                                                                       case kl_if_2 of
-                                                                                           Atom (B (True)) -> do !appl_8 <- kl_V3750 `pseq` tl kl_V3750
-                                                                                                                 !appl_9 <- kl_V3751 `pseq` add kl_V3751 (Types.Atom (Types.N (Types.KI 1)))
-                                                                                                                 kl_V3749 `pseq` (appl_8 `pseq` (appl_9 `pseq` kl_shen_print_past_inputs kl_V3749 appl_8 appl_9))
-                                                                                           Atom (B (False)) -> do !kl_if_10 <- let pat_cond_11 kl_V3750 kl_V3750h kl_V3750t = do let !aw_12 = Types.Atom (Types.UnboundSym "tuple?")
-                                                                                                                                                                                 !kl_if_13 <- kl_V3750h `pseq` applyWrapper aw_12 [kl_V3750h]
-                                                                                                                                                                                 case kl_if_13 of
-                                                                                                                                                                                     Atom (B (True)) -> do return (Atom (B True))
-                                                                                                                                                                                     Atom (B (False)) -> do do return (Atom (B False))
-                                                                                                                                                                                     _ -> throwError "if: expected boolean"
-                                                                                                                                   pat_cond_14 = do do return (Atom (B False))
-                                                                                                                                in case kl_V3750 of
-                                                                                                                                       !(kl_V3750@(Cons (!kl_V3750h)
-                                                                                                                                                        (!kl_V3750t))) -> pat_cond_11 kl_V3750 kl_V3750h kl_V3750t
-                                                                                                                                       _ -> pat_cond_14
-                                                                                                                  case kl_if_10 of
-                                                                                                                      Atom (B (True)) -> do let !aw_15 = Types.Atom (Types.UnboundSym "shen.app")
-                                                                                                                                            !appl_16 <- kl_V3751 `pseq` applyWrapper aw_15 [kl_V3751,
-                                                                                                                                                                                            Types.Atom (Types.Str ". "),
-                                                                                                                                                                                            Types.Atom (Types.UnboundSym "shen.a")]
-                                                                                                                                            let !aw_17 = Types.Atom (Types.UnboundSym "stoutput")
-                                                                                                                                            !appl_18 <- applyWrapper aw_17 []
-                                                                                                                                            let !aw_19 = Types.Atom (Types.UnboundSym "shen.prhush")
-                                                                                                                                            !appl_20 <- appl_16 `pseq` (appl_18 `pseq` applyWrapper aw_19 [appl_16,
-                                                                                                                                                                                                           appl_18])
-                                                                                                                                            !appl_21 <- kl_V3750 `pseq` hd kl_V3750
-                                                                                                                                            let !aw_22 = Types.Atom (Types.UnboundSym "snd")
-                                                                                                                                            !appl_23 <- appl_21 `pseq` applyWrapper aw_22 [appl_21]
-                                                                                                                                            !appl_24 <- appl_23 `pseq` kl_shen_prbytes appl_23
-                                                                                                                                            !appl_25 <- kl_V3750 `pseq` tl kl_V3750
-                                                                                                                                            !appl_26 <- kl_V3751 `pseq` add kl_V3751 (Types.Atom (Types.N (Types.KI 1)))
-                                                                                                                                            !appl_27 <- kl_V3749 `pseq` (appl_25 `pseq` (appl_26 `pseq` kl_shen_print_past_inputs kl_V3749 appl_25 appl_26))
-                                                                                                                                            let !aw_28 = Types.Atom (Types.UnboundSym "do")
-                                                                                                                                            !appl_29 <- appl_24 `pseq` (appl_27 `pseq` applyWrapper aw_28 [appl_24,
-                                                                                                                                                                                                           appl_27])
-                                                                                                                                            let !aw_30 = Types.Atom (Types.UnboundSym "do")
-                                                                                                                                            appl_20 `pseq` (appl_29 `pseq` applyWrapper aw_30 [appl_20,
-                                                                                                                                                                                               appl_29])
-                                                                                                                      Atom (B (False)) -> do do let !aw_31 = Types.Atom (Types.UnboundSym "shen.f_error")
-                                                                                                                                                applyWrapper aw_31 [ApplC (wrapNamed "shen.print-past-inputs" kl_shen_print_past_inputs)]
-                                                                                                                      _ -> throwError "if: expected boolean"
-                                                                                           _ -> throwError "if: expected boolean"
-                                                                    in case kl_V3750 of
-                                                                           kl_V3750@(Atom (Nil)) -> pat_cond_0
-                                                                           _ -> pat_cond_1
-
-kl_shen_toplevel_evaluate :: Types.KLValue ->
-                             Types.KLValue -> Types.KLContext Types.Env Types.KLValue
-kl_shen_toplevel_evaluate (!kl_V3754) (!kl_V3755) = do !kl_if_0 <- let pat_cond_1 kl_V3754 kl_V3754h kl_V3754t = do !kl_if_2 <- let pat_cond_3 kl_V3754t kl_V3754th kl_V3754tt = do !kl_if_4 <- let pat_cond_5 = do !kl_if_6 <- let pat_cond_7 kl_V3754tt kl_V3754tth kl_V3754ttt = do !kl_if_8 <- let pat_cond_9 = do let pat_cond_10 = do return (Atom (B True))
-                                                                                                                                                                                                                                                                                                                           pat_cond_11 = do do return (Atom (B False))
-                                                                                                                                                                                                                                                                                                                        in case kl_V3755 of
-                                                                                                                                                                                                                                                                                                                               kl_V3755@(Atom (UnboundSym "true")) -> pat_cond_10
-                                                                                                                                                                                                                                                                                                                               kl_V3755@(Atom (B (True))) -> pat_cond_10
-                                                                                                                                                                                                                                                                                                                               _ -> pat_cond_11
-                                                                                                                                                                                                                                                                                                       pat_cond_12 = do do return (Atom (B False))
-                                                                                                                                                                                                                                                                                                    in case kl_V3754ttt of
-                                                                                                                                                                                                                                                                                                           kl_V3754ttt@(Atom (Nil)) -> pat_cond_9
-                                                                                                                                                                                                                                                                                                           _ -> pat_cond_12
-                                                                                                                                                                                                                                                                                       case kl_if_8 of
-                                                                                                                                                                                                                                                                                           Atom (B (True)) -> do return (Atom (B True))
-                                                                                                                                                                                                                                                                                           Atom (B (False)) -> do do return (Atom (B False))
-                                                                                                                                                                                                                                                                                           _ -> throwError "if: expected boolean"
-                                                                                                                                                                                                                                    pat_cond_13 = do do return (Atom (B False))
-                                                                                                                                                                                                                                 in case kl_V3754tt of
-                                                                                                                                                                                                                                        !(kl_V3754tt@(Cons (!kl_V3754tth)
-                                                                                                                                                                                                                                                           (!kl_V3754ttt))) -> pat_cond_7 kl_V3754tt kl_V3754tth kl_V3754ttt
-                                                                                                                                                                                                                                        _ -> pat_cond_13
-                                                                                                                                                                                                                    case kl_if_6 of
-                                                                                                                                                                                                                        Atom (B (True)) -> do return (Atom (B True))
-                                                                                                                                                                                                                        Atom (B (False)) -> do do return (Atom (B False))
-                                                                                                                                                                                                                        _ -> throwError "if: expected boolean"
-                                                                                                                                                                                                    pat_cond_14 = do do return (Atom (B False))
-                                                                                                                                                                                                 in case kl_V3754th of
-                                                                                                                                                                                                        kl_V3754th@(Atom (UnboundSym ":")) -> pat_cond_5
-                                                                                                                                                                                                        kl_V3754th@(ApplC (PL ":"
-                                                                                                                                                                                                                              _)) -> pat_cond_5
-                                                                                                                                                                                                        kl_V3754th@(ApplC (Func ":"
-                                                                                                                                                                                                                                _)) -> pat_cond_5
-                                                                                                                                                                                                        _ -> pat_cond_14
-                                                                                                                                                                                    case kl_if_4 of
-                                                                                                                                                                                        Atom (B (True)) -> do return (Atom (B True))
-                                                                                                                                                                                        Atom (B (False)) -> do do return (Atom (B False))
-                                                                                                                                                                                        _ -> throwError "if: expected boolean"
-                                                                                                                                    pat_cond_15 = do do return (Atom (B False))
-                                                                                                                                 in case kl_V3754t of
-                                                                                                                                        !(kl_V3754t@(Cons (!kl_V3754th)
-                                                                                                                                                          (!kl_V3754tt))) -> pat_cond_3 kl_V3754t kl_V3754th kl_V3754tt
-                                                                                                                                        _ -> pat_cond_15
-                                                                                                                    case kl_if_2 of
-                                                                                                                        Atom (B (True)) -> do return (Atom (B True))
-                                                                                                                        Atom (B (False)) -> do do return (Atom (B False))
-                                                                                                                        _ -> throwError "if: expected boolean"
-                                                                       pat_cond_16 = do do return (Atom (B False))
-                                                                    in case kl_V3754 of
-                                                                           !(kl_V3754@(Cons (!kl_V3754h)
-                                                                                            (!kl_V3754t))) -> pat_cond_1 kl_V3754 kl_V3754h kl_V3754t
-                                                                           _ -> pat_cond_16
-                                                       case kl_if_0 of
-                                                           Atom (B (True)) -> do !appl_17 <- kl_V3754 `pseq` hd kl_V3754
-                                                                                 !appl_18 <- kl_V3754 `pseq` tl kl_V3754
-                                                                                 !appl_19 <- appl_18 `pseq` tl appl_18
-                                                                                 !appl_20 <- appl_19 `pseq` hd appl_19
-                                                                                 appl_17 `pseq` (appl_20 `pseq` kl_shen_typecheck_and_evaluate appl_17 appl_20)
-                                                           Atom (B (False)) -> do let pat_cond_21 kl_V3754 kl_V3754h kl_V3754t kl_V3754th kl_V3754tt = do !appl_22 <- kl_V3754h `pseq` klCons kl_V3754h (Types.Atom Types.Nil)
-                                                                                                                                                          !appl_23 <- appl_22 `pseq` (kl_V3755 `pseq` kl_shen_toplevel_evaluate appl_22 kl_V3755)
-                                                                                                                                                          let !aw_24 = Types.Atom (Types.UnboundSym "nl")
-                                                                                                                                                          !appl_25 <- applyWrapper aw_24 [Types.Atom (Types.N (Types.KI 1))]
-                                                                                                                                                          !appl_26 <- kl_V3754t `pseq` (kl_V3755 `pseq` kl_shen_toplevel_evaluate kl_V3754t kl_V3755)
-                                                                                                                                                          let !aw_27 = Types.Atom (Types.UnboundSym "do")
-                                                                                                                                                          !appl_28 <- appl_25 `pseq` (appl_26 `pseq` applyWrapper aw_27 [appl_25,
-                                                                                                                                                                                                                         appl_26])
-                                                                                                                                                          let !aw_29 = Types.Atom (Types.UnboundSym "do")
-                                                                                                                                                          appl_23 `pseq` (appl_28 `pseq` applyWrapper aw_29 [appl_23,
-                                                                                                                                                                                                             appl_28])
-                                                                                      pat_cond_30 = do !kl_if_31 <- let pat_cond_32 kl_V3754 kl_V3754h kl_V3754t = do !kl_if_33 <- let pat_cond_34 = do let pat_cond_35 = do return (Atom (B True))
-                                                                                                                                                                                                            pat_cond_36 = do do return (Atom (B False))
-                                                                                                                                                                                                         in case kl_V3755 of
-                                                                                                                                                                                                                kl_V3755@(Atom (UnboundSym "true")) -> pat_cond_35
-                                                                                                                                                                                                                kl_V3755@(Atom (B (True))) -> pat_cond_35
-                                                                                                                                                                                                                _ -> pat_cond_36
-                                                                                                                                                                                       pat_cond_37 = do do return (Atom (B False))
-                                                                                                                                                                                    in case kl_V3754t of
-                                                                                                                                                                                           kl_V3754t@(Atom (Nil)) -> pat_cond_34
-                                                                                                                                                                                           _ -> pat_cond_37
-                                                                                                                                                                      case kl_if_33 of
-                                                                                                                                                                          Atom (B (True)) -> do return (Atom (B True))
-                                                                                                                                                                          Atom (B (False)) -> do do return (Atom (B False))
-                                                                                                                                                                          _ -> throwError "if: expected boolean"
-                                                                                                                        pat_cond_38 = do do return (Atom (B False))
-                                                                                                                     in case kl_V3754 of
-                                                                                                                            !(kl_V3754@(Cons (!kl_V3754h)
-                                                                                                                                             (!kl_V3754t))) -> pat_cond_32 kl_V3754 kl_V3754h kl_V3754t
-                                                                                                                            _ -> pat_cond_38
-                                                                                                       case kl_if_31 of
-                                                                                                           Atom (B (True)) -> do !appl_39 <- kl_V3754 `pseq` hd kl_V3754
-                                                                                                                                 let !aw_40 = Types.Atom (Types.UnboundSym "gensym")
-                                                                                                                                 !appl_41 <- applyWrapper aw_40 [Types.Atom (Types.UnboundSym "A")]
-                                                                                                                                 appl_39 `pseq` (appl_41 `pseq` kl_shen_typecheck_and_evaluate appl_39 appl_41)
-                                                                                                           Atom (B (False)) -> do !kl_if_42 <- let pat_cond_43 kl_V3754 kl_V3754h kl_V3754t = do !kl_if_44 <- let pat_cond_45 = do let pat_cond_46 = do return (Atom (B True))
-                                                                                                                                                                                                                                       pat_cond_47 = do do return (Atom (B False))
-                                                                                                                                                                                                                                    in case kl_V3755 of
-                                                                                                                                                                                                                                           kl_V3755@(Atom (UnboundSym "false")) -> pat_cond_46
-                                                                                                                                                                                                                                           kl_V3755@(Atom (B (False))) -> pat_cond_46
-                                                                                                                                                                                                                                           _ -> pat_cond_47
-                                                                                                                                                                                                                  pat_cond_48 = do do return (Atom (B False))
-                                                                                                                                                                                                               in case kl_V3754t of
-                                                                                                                                                                                                                      kl_V3754t@(Atom (Nil)) -> pat_cond_45
-                                                                                                                                                                                                                      _ -> pat_cond_48
-                                                                                                                                                                                                 case kl_if_44 of
-                                                                                                                                                                                                     Atom (B (True)) -> do return (Atom (B True))
-                                                                                                                                                                                                     Atom (B (False)) -> do do return (Atom (B False))
-                                                                                                                                                                                                     _ -> throwError "if: expected boolean"
-                                                                                                                                                   pat_cond_49 = do do return (Atom (B False))
-                                                                                                                                                in case kl_V3754 of
-                                                                                                                                                       !(kl_V3754@(Cons (!kl_V3754h)
-                                                                                                                                                                        (!kl_V3754t))) -> pat_cond_43 kl_V3754 kl_V3754h kl_V3754t
-                                                                                                                                                       _ -> pat_cond_49
-                                                                                                                                  case kl_if_42 of
-                                                                                                                                      Atom (B (True)) -> do let !appl_50 = ApplC (Func "lambda" (Context (\(!kl_Eval) -> do let !aw_51 = Types.Atom (Types.UnboundSym "print")
-                                                                                                                                                                                                                            kl_Eval `pseq` applyWrapper aw_51 [kl_Eval])))
-                                                                                                                                                            !appl_52 <- kl_V3754 `pseq` hd kl_V3754
-                                                                                                                                                            let !aw_53 = Types.Atom (Types.UnboundSym "shen.eval-without-macros")
-                                                                                                                                                            !appl_54 <- appl_52 `pseq` applyWrapper aw_53 [appl_52]
-                                                                                                                                                            appl_54 `pseq` applyWrapper appl_50 [appl_54]
-                                                                                                                                      Atom (B (False)) -> do do let !aw_55 = Types.Atom (Types.UnboundSym "shen.f_error")
-                                                                                                                                                                applyWrapper aw_55 [ApplC (wrapNamed "shen.toplevel_evaluate" kl_shen_toplevel_evaluate)]
-                                                                                                                                      _ -> throwError "if: expected boolean"
-                                                                                                           _ -> throwError "if: expected boolean"
-                                                                                   in case kl_V3754 of
-                                                                                          !(kl_V3754@(Cons (!kl_V3754h)
-                                                                                                           (!(kl_V3754t@(Cons (!kl_V3754th)
-                                                                                                                              (!kl_V3754tt)))))) -> pat_cond_21 kl_V3754 kl_V3754h kl_V3754t kl_V3754th kl_V3754tt
-                                                                                          _ -> pat_cond_30
-                                                           _ -> throwError "if: expected boolean"
-
-kl_shen_typecheck_and_evaluate :: Types.KLValue ->
-                                  Types.KLValue -> Types.KLContext Types.Env Types.KLValue
-kl_shen_typecheck_and_evaluate (!kl_V3758) (!kl_V3759) = do let !appl_0 = ApplC (Func "lambda" (Context (\(!kl_Typecheck) -> do let pat_cond_1 = do simpleError (Types.Atom (Types.Str "type error\n"))
-                                                                                                                                    pat_cond_2 = do do let !appl_3 = ApplC (Func "lambda" (Context (\(!kl_Eval) -> do let !appl_4 = ApplC (Func "lambda" (Context (\(!kl_Type) -> do let !aw_5 = Types.Atom (Types.UnboundSym "shen.app")
-                                                                                                                                                                                                                                                                                     !appl_6 <- kl_Type `pseq` applyWrapper aw_5 [kl_Type,
-                                                                                                                                                                                                                                                                                                                                  Types.Atom (Types.Str ""),
-                                                                                                                                                                                                                                                                                                                                  Types.Atom (Types.UnboundSym "shen.r")]
-                                                                                                                                                                                                                                                                                     !appl_7 <- appl_6 `pseq` cn (Types.Atom (Types.Str " : ")) appl_6
-                                                                                                                                                                                                                                                                                     let !aw_8 = Types.Atom (Types.UnboundSym "shen.app")
-                                                                                                                                                                                                                                                                                     !appl_9 <- kl_Eval `pseq` (appl_7 `pseq` applyWrapper aw_8 [kl_Eval,
-                                                                                                                                                                                                                                                                                                                                                 appl_7,
-                                                                                                                                                                                                                                                                                                                                                 Types.Atom (Types.UnboundSym "shen.s")])
-                                                                                                                                                                                                                                                                                     let !aw_10 = Types.Atom (Types.UnboundSym "stoutput")
-                                                                                                                                                                                                                                                                                     !appl_11 <- applyWrapper aw_10 []
-                                                                                                                                                                                                                                                                                     let !aw_12 = Types.Atom (Types.UnboundSym "shen.prhush")
-                                                                                                                                                                                                                                                                                     appl_9 `pseq` (appl_11 `pseq` applyWrapper aw_12 [appl_9,
-                                                                                                                                                                                                                                                                                                                                       appl_11]))))
-                                                                                                                                                                                                                      !appl_13 <- kl_Typecheck `pseq` kl_shen_pretty_type kl_Typecheck
-                                                                                                                                                                                                                      appl_13 `pseq` applyWrapper appl_4 [appl_13])))
-                                                                                                                                                       let !aw_14 = Types.Atom (Types.UnboundSym "shen.eval-without-macros")
-                                                                                                                                                       !appl_15 <- kl_V3758 `pseq` applyWrapper aw_14 [kl_V3758]
-                                                                                                                                                       appl_15 `pseq` applyWrapper appl_3 [appl_15]
-                                                                                                                                 in case kl_Typecheck of
-                                                                                                                                        kl_Typecheck@(Atom (UnboundSym "false")) -> pat_cond_1
-                                                                                                                                        kl_Typecheck@(Atom (B (False))) -> pat_cond_1
-                                                                                                                                        _ -> pat_cond_2)))
-                                                            let !aw_16 = Types.Atom (Types.UnboundSym "shen.typecheck")
-                                                            !appl_17 <- kl_V3758 `pseq` (kl_V3759 `pseq` applyWrapper aw_16 [kl_V3758,
-                                                                                                                             kl_V3759])
-                                                            appl_17 `pseq` applyWrapper appl_0 [appl_17]
-
-kl_shen_pretty_type :: Types.KLValue ->
-                       Types.KLContext Types.Env Types.KLValue
-kl_shen_pretty_type (!kl_V3761) = do !appl_0 <- value (Types.Atom (Types.UnboundSym "shen.*alphabet*"))
-                                     !appl_1 <- kl_V3761 `pseq` kl_shen_extract_pvars kl_V3761
-                                     appl_0 `pseq` (appl_1 `pseq` (kl_V3761 `pseq` kl_shen_mult_subst appl_0 appl_1 kl_V3761))
-
-kl_shen_extract_pvars :: Types.KLValue ->
-                         Types.KLContext Types.Env Types.KLValue
-kl_shen_extract_pvars (!kl_V3767) = do let !aw_0 = Types.Atom (Types.UnboundSym "shen.pvar?")
-                                       !kl_if_1 <- kl_V3767 `pseq` applyWrapper aw_0 [kl_V3767]
-                                       case kl_if_1 of
-                                           Atom (B (True)) -> do kl_V3767 `pseq` klCons kl_V3767 (Types.Atom Types.Nil)
-                                           Atom (B (False)) -> do let pat_cond_2 kl_V3767 kl_V3767h kl_V3767t = do !appl_3 <- kl_V3767h `pseq` kl_shen_extract_pvars kl_V3767h
-                                                                                                                   !appl_4 <- kl_V3767t `pseq` kl_shen_extract_pvars kl_V3767t
-                                                                                                                   let !aw_5 = Types.Atom (Types.UnboundSym "union")
-                                                                                                                   appl_3 `pseq` (appl_4 `pseq` applyWrapper aw_5 [appl_3,
-                                                                                                                                                                   appl_4])
-                                                                      pat_cond_6 = do do return (Types.Atom Types.Nil)
-                                                                   in case kl_V3767 of
-                                                                          !(kl_V3767@(Cons (!kl_V3767h)
-                                                                                           (!kl_V3767t))) -> pat_cond_2 kl_V3767 kl_V3767h kl_V3767t
-                                                                          _ -> pat_cond_6
-                                           _ -> throwError "if: expected boolean"
-
-kl_shen_mult_subst :: Types.KLValue ->
-                      Types.KLValue ->
-                      Types.KLValue -> Types.KLContext Types.Env Types.KLValue
-kl_shen_mult_subst (!kl_V3775) (!kl_V3776) (!kl_V3777) = do let pat_cond_0 = do return kl_V3777
-                                                                pat_cond_1 = do let pat_cond_2 = do return kl_V3777
-                                                                                    pat_cond_3 = do !kl_if_4 <- let pat_cond_5 kl_V3775 kl_V3775h kl_V3775t = do let pat_cond_6 kl_V3776 kl_V3776h kl_V3776t = do return (Atom (B True))
-                                                                                                                                                                     pat_cond_7 = do do return (Atom (B False))
-                                                                                                                                                                  in case kl_V3776 of
-                                                                                                                                                                         !(kl_V3776@(Cons (!kl_V3776h)
-                                                                                                                                                                                          (!kl_V3776t))) -> pat_cond_6 kl_V3776 kl_V3776h kl_V3776t
-                                                                                                                                                                         _ -> pat_cond_7
-                                                                                                                    pat_cond_8 = do do return (Atom (B False))
-                                                                                                                 in case kl_V3775 of
-                                                                                                                        !(kl_V3775@(Cons (!kl_V3775h)
-                                                                                                                                         (!kl_V3775t))) -> pat_cond_5 kl_V3775 kl_V3775h kl_V3775t
-                                                                                                                        _ -> pat_cond_8
-                                                                                                    case kl_if_4 of
-                                                                                                        Atom (B (True)) -> do !appl_9 <- kl_V3775 `pseq` tl kl_V3775
-                                                                                                                              !appl_10 <- kl_V3776 `pseq` tl kl_V3776
-                                                                                                                              !appl_11 <- kl_V3775 `pseq` hd kl_V3775
-                                                                                                                              !appl_12 <- kl_V3776 `pseq` hd kl_V3776
-                                                                                                                              let !aw_13 = Types.Atom (Types.UnboundSym "subst")
-                                                                                                                              !appl_14 <- appl_11 `pseq` (appl_12 `pseq` (kl_V3777 `pseq` applyWrapper aw_13 [appl_11,
-                                                                                                                                                                                                              appl_12,
-                                                                                                                                                                                                              kl_V3777]))
-                                                                                                                              appl_9 `pseq` (appl_10 `pseq` (appl_14 `pseq` kl_shen_mult_subst appl_9 appl_10 appl_14))
-                                                                                                        Atom (B (False)) -> do do let !aw_15 = Types.Atom (Types.UnboundSym "shen.f_error")
-                                                                                                                                  applyWrapper aw_15 [ApplC (wrapNamed "shen.mult_subst" kl_shen_mult_subst)]
-                                                                                                        _ -> throwError "if: expected boolean"
-                                                                                 in case kl_V3776 of
-                                                                                        kl_V3776@(Atom (Nil)) -> pat_cond_2
-                                                                                        _ -> pat_cond_3
-                                                             in case kl_V3775 of
-                                                                    kl_V3775@(Atom (Nil)) -> pat_cond_0
-                                                                    _ -> pat_cond_1
-
-expr0 :: Types.KLContext Types.Env Types.KLValue
-expr0 = do (do return (Types.Atom (Types.Str "Copyright (c) 2015, Mark Tarver\n\nAll rights reserved.\n\nRedistribution and use in source and binary forms, with or without\nmodification, are permitted provided that the following conditions are met:\n1. Redistributions of source code must retain the above copyright\n   notice, this list of conditions and the following disclaimer.\n2. Redistributions in binary form must reproduce the above copyright\n   notice, this list of conditions and the following disclaimer in the\n   documentation and/or other materials provided with the distribution.\n3. The name of Mark Tarver may not be used to endorse or promote products\n   derived from this software without specific prior written permission.\n\nTHIS SOFTWARE IS PROVIDED BY Mark Tarver ''AS IS'' AND ANY\nEXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED\nWARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE\nDISCLAIMED. IN NO EVENT SHALL Mark Tarver BE LIABLE FOR ANY\nDIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES\n(INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;\nLOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND\nON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT\n(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS\nSOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE."))) `catchError` (\(!kl_E) -> do return (Types.Atom (Types.Str "E")))
-           (do klSet (Types.Atom (Types.UnboundSym "shen.*history*")) (Types.Atom Types.Nil)) `catchError` (\(!kl_E) -> do return (Types.Atom (Types.Str "E")))
+{-# LANGUAGE BangPatterns #-}+{-# LANGUAGE OverloadedStrings #-}+{-# LANGUAGE Strict #-}+{-# LANGUAGE StrictData #-}+{-# LANGUAGE ViewPatterns #-}++module Backend.Toplevel where++import Control.Monad.Except+import Control.Parallel+import Environment+import Core.Primitives as Primitives+import Backend.Utils+import Core.Types+import Core.Utils+import Wrap++{-+Copyright (c) 2015, Mark Tarver+All rights reserved.++Redistribution and use in source and binary forms, with or without+modification, are permitted provided that the following conditions are met:++1. Redistributions of source code must retain the above copyright+   notice, this list of conditions and the following disclaimer.+2. Redistributions in binary form must reproduce the above copyright+   notice, this list of conditions and the following disclaimer in the+   documentation and/or other materials provided with the distribution.+3. The name of Mark Tarver may not be used to endorse or promote products+   derived from this software without specific prior written permission.++THIS SOFTWARE IS PROVIDED BY Mark Tarver ''AS IS'' AND ANY+EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED+WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE+DISCLAIMED. IN NO EVENT SHALL Mark Tarver BE LIABLE FOR ANY+DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES+(INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;+LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND+ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT+(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS+SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.+-}++kl_shen_shen :: Core.Types.KLContext Core.Types.Env+                                     Core.Types.KLValue+kl_shen_shen = do !appl_0 <- kl_shen_credits+                  !appl_1 <- kl_shen_loop+                  let !aw_2 = Core.Types.Atom (Core.Types.UnboundSym "do")+                  appl_0 `pseq` (appl_1 `pseq` applyWrapper aw_2 [appl_0, appl_1])++kl_exit :: Core.Types.KLValue ->+           Core.Types.KLContext Core.Types.Env Core.Types.KLValue+kl_exit (!kl_V3800) = do klSet (Core.Types.Atom (Core.Types.UnboundSym "shen.*continue-repl-loop*")) (Atom (B False))++kl_shen_loop :: Core.Types.KLContext Core.Types.Env+                                     Core.Types.KLValue+kl_shen_loop = do !appl_0 <- kl_shen_initialise_environment+                  !appl_1 <- kl_shen_prompt+                  !appl_2 <- (do kl_shen_read_evaluate_print) `catchError` (\(!kl_E) -> do !appl_3 <- kl_E `pseq` errorToString (Excep kl_E)+                                                                                           let !aw_4 = Core.Types.Atom (Core.Types.UnboundSym "stoutput")+                                                                                           !appl_5 <- applyWrapper aw_4 []+                                                                                           let !aw_6 = Core.Types.Atom (Core.Types.UnboundSym "pr")+                                                                                           appl_3 `pseq` (appl_5 `pseq` applyWrapper aw_6 [appl_3,+                                                                                                                                           appl_5]))+                  !kl_if_7 <- value (Core.Types.Atom (Core.Types.UnboundSym "shen.*continue-repl-loop*"))+                  !appl_8 <- case kl_if_7 of+                                 Atom (B (True)) -> do kl_shen_loop+                                 Atom (B (False)) -> do do return (ApplC (wrapNamed "exit" kl_exit))+                                 _ -> throwError "if: expected boolean"+                  let !aw_9 = Core.Types.Atom (Core.Types.UnboundSym "do")+                  !appl_10 <- appl_2 `pseq` (appl_8 `pseq` applyWrapper aw_9 [appl_2,+                                                                              appl_8])+                  let !aw_11 = Core.Types.Atom (Core.Types.UnboundSym "do")+                  !appl_12 <- appl_1 `pseq` (appl_10 `pseq` applyWrapper aw_11 [appl_1,+                                                                                appl_10])+                  let !aw_13 = Core.Types.Atom (Core.Types.UnboundSym "do")+                  appl_0 `pseq` (appl_12 `pseq` applyWrapper aw_13 [appl_0, appl_12])++kl_shen_credits :: Core.Types.KLContext Core.Types.Env+                                        Core.Types.KLValue+kl_shen_credits = do let !aw_0 = Core.Types.Atom (Core.Types.UnboundSym "stoutput")+                     !appl_1 <- applyWrapper aw_0 []+                     let !aw_2 = Core.Types.Atom (Core.Types.UnboundSym "shen.prhush")+                     !appl_3 <- appl_1 `pseq` applyWrapper aw_2 [Core.Types.Atom (Core.Types.Str "\nShen, copyright (C) 2010-2015 Mark Tarver\n"),+                                                                 appl_1]+                     !appl_4 <- value (Core.Types.Atom (Core.Types.UnboundSym "*version*"))+                     let !aw_5 = Core.Types.Atom (Core.Types.UnboundSym "shen.app")+                     !appl_6 <- appl_4 `pseq` applyWrapper aw_5 [appl_4,+                                                                 Core.Types.Atom (Core.Types.Str "\n"),+                                                                 Core.Types.Atom (Core.Types.UnboundSym "shen.a")]+                     !appl_7 <- appl_6 `pseq` cn (Core.Types.Atom (Core.Types.Str "www.shenlanguage.org, ")) appl_6+                     let !aw_8 = Core.Types.Atom (Core.Types.UnboundSym "stoutput")+                     !appl_9 <- applyWrapper aw_8 []+                     let !aw_10 = Core.Types.Atom (Core.Types.UnboundSym "shen.prhush")+                     !appl_11 <- appl_7 `pseq` (appl_9 `pseq` applyWrapper aw_10 [appl_7,+                                                                                  appl_9])+                     !appl_12 <- value (Core.Types.Atom (Core.Types.UnboundSym "*language*"))+                     !appl_13 <- value (Core.Types.Atom (Core.Types.UnboundSym "*implementation*"))+                     let !aw_14 = Core.Types.Atom (Core.Types.UnboundSym "shen.app")+                     !appl_15 <- appl_13 `pseq` applyWrapper aw_14 [appl_13,+                                                                    Core.Types.Atom (Core.Types.Str ""),+                                                                    Core.Types.Atom (Core.Types.UnboundSym "shen.a")]+                     !appl_16 <- appl_15 `pseq` cn (Core.Types.Atom (Core.Types.Str ", implementation: ")) appl_15+                     let !aw_17 = Core.Types.Atom (Core.Types.UnboundSym "shen.app")+                     !appl_18 <- appl_12 `pseq` (appl_16 `pseq` applyWrapper aw_17 [appl_12,+                                                                                    appl_16,+                                                                                    Core.Types.Atom (Core.Types.UnboundSym "shen.a")])+                     !appl_19 <- appl_18 `pseq` cn (Core.Types.Atom (Core.Types.Str "running under ")) appl_18+                     let !aw_20 = Core.Types.Atom (Core.Types.UnboundSym "stoutput")+                     !appl_21 <- applyWrapper aw_20 []+                     let !aw_22 = Core.Types.Atom (Core.Types.UnboundSym "shen.prhush")+                     !appl_23 <- appl_19 `pseq` (appl_21 `pseq` applyWrapper aw_22 [appl_19,+                                                                                    appl_21])+                     !appl_24 <- value (Core.Types.Atom (Core.Types.UnboundSym "*port*"))+                     !appl_25 <- value (Core.Types.Atom (Core.Types.UnboundSym "*porters*"))+                     let !aw_26 = Core.Types.Atom (Core.Types.UnboundSym "shen.app")+                     !appl_27 <- appl_25 `pseq` applyWrapper aw_26 [appl_25,+                                                                    Core.Types.Atom (Core.Types.Str "\n"),+                                                                    Core.Types.Atom (Core.Types.UnboundSym "shen.a")]+                     !appl_28 <- appl_27 `pseq` cn (Core.Types.Atom (Core.Types.Str " ported by ")) appl_27+                     let !aw_29 = Core.Types.Atom (Core.Types.UnboundSym "shen.app")+                     !appl_30 <- appl_24 `pseq` (appl_28 `pseq` applyWrapper aw_29 [appl_24,+                                                                                    appl_28,+                                                                                    Core.Types.Atom (Core.Types.UnboundSym "shen.a")])+                     !appl_31 <- appl_30 `pseq` cn (Core.Types.Atom (Core.Types.Str "\nport ")) appl_30+                     let !aw_32 = Core.Types.Atom (Core.Types.UnboundSym "stoutput")+                     !appl_33 <- applyWrapper aw_32 []+                     let !aw_34 = Core.Types.Atom (Core.Types.UnboundSym "shen.prhush")+                     !appl_35 <- appl_31 `pseq` (appl_33 `pseq` applyWrapper aw_34 [appl_31,+                                                                                    appl_33])+                     let !aw_36 = Core.Types.Atom (Core.Types.UnboundSym "do")+                     !appl_37 <- appl_23 `pseq` (appl_35 `pseq` applyWrapper aw_36 [appl_23,+                                                                                    appl_35])+                     let !aw_38 = Core.Types.Atom (Core.Types.UnboundSym "do")+                     !appl_39 <- appl_11 `pseq` (appl_37 `pseq` applyWrapper aw_38 [appl_11,+                                                                                    appl_37])+                     let !aw_40 = Core.Types.Atom (Core.Types.UnboundSym "do")+                     appl_3 `pseq` (appl_39 `pseq` applyWrapper aw_40 [appl_3, appl_39])++kl_shen_initialise_environment :: Core.Types.KLContext Core.Types.Env+                                                       Core.Types.KLValue+kl_shen_initialise_environment = do let !appl_0 = Atom Nil+                                    !appl_1 <- appl_0 `pseq` klCons (Core.Types.Atom (Core.Types.N (Core.Types.KI 0))) appl_0+                                    !appl_2 <- appl_1 `pseq` klCons (Core.Types.Atom (Core.Types.UnboundSym "shen.*catch*")) appl_1+                                    !appl_3 <- appl_2 `pseq` klCons (Core.Types.Atom (Core.Types.N (Core.Types.KI 0))) appl_2+                                    !appl_4 <- appl_3 `pseq` klCons (Core.Types.Atom (Core.Types.UnboundSym "shen.*process-counter*")) appl_3+                                    !appl_5 <- appl_4 `pseq` klCons (Core.Types.Atom (Core.Types.N (Core.Types.KI 0))) appl_4+                                    !appl_6 <- appl_5 `pseq` klCons (Core.Types.Atom (Core.Types.UnboundSym "shen.*infs*")) appl_5+                                    !appl_7 <- appl_6 `pseq` klCons (Core.Types.Atom (Core.Types.N (Core.Types.KI 0))) appl_6+                                    !appl_8 <- appl_7 `pseq` klCons (Core.Types.Atom (Core.Types.UnboundSym "shen.*call*")) appl_7+                                    appl_8 `pseq` kl_shen_multiple_set appl_8++kl_shen_multiple_set :: Core.Types.KLValue ->+                        Core.Types.KLContext Core.Types.Env Core.Types.KLValue+kl_shen_multiple_set (!kl_V3802) = do let !appl_0 = Atom Nil+                                      !kl_if_1 <- appl_0 `pseq` (kl_V3802 `pseq` eq appl_0 kl_V3802)+                                      case kl_if_1 of+                                          Atom (B (True)) -> do return (Atom Nil)+                                          Atom (B (False)) -> do let pat_cond_2 kl_V3802 kl_V3802h kl_V3802t kl_V3802th kl_V3802tt = do !appl_3 <- kl_V3802h `pseq` (kl_V3802th `pseq` klSet kl_V3802h kl_V3802th)+                                                                                                                                        !appl_4 <- kl_V3802tt `pseq` kl_shen_multiple_set kl_V3802tt+                                                                                                                                        let !aw_5 = Core.Types.Atom (Core.Types.UnboundSym "do")+                                                                                                                                        appl_3 `pseq` (appl_4 `pseq` applyWrapper aw_5 [appl_3,+                                                                                                                                                                                        appl_4])+                                                                     pat_cond_6 = do do let !aw_7 = Core.Types.Atom (Core.Types.UnboundSym "shen.f_error")+                                                                                        applyWrapper aw_7 [ApplC (wrapNamed "shen.multiple-set" kl_shen_multiple_set)]+                                                                  in case kl_V3802 of+                                                                         !(kl_V3802@(Cons (!kl_V3802h)+                                                                                          (!(kl_V3802t@(Cons (!kl_V3802th)+                                                                                                             (!kl_V3802tt)))))) -> pat_cond_2 kl_V3802 kl_V3802h kl_V3802t kl_V3802th kl_V3802tt+                                                                         _ -> pat_cond_6+                                          _ -> throwError "if: expected boolean"++kl_destroy :: Core.Types.KLValue ->+              Core.Types.KLContext Core.Types.Env Core.Types.KLValue+kl_destroy (!kl_V3804) = do let !aw_0 = Core.Types.Atom (Core.Types.UnboundSym "declare")+                            kl_V3804 `pseq` applyWrapper aw_0 [kl_V3804,+                                                               Core.Types.Atom (Core.Types.UnboundSym "symbol")]++kl_shen_read_evaluate_print :: Core.Types.KLContext Core.Types.Env+                                                    Core.Types.KLValue+kl_shen_read_evaluate_print = do let !appl_0 = ApplC (Func "lambda" (Context (\(!kl_Lineread) -> do let !appl_1 = ApplC (Func "lambda" (Context (\(!kl_History) -> do let !appl_2 = ApplC (Func "lambda" (Context (\(!kl_NewLineread) -> do let !appl_3 = ApplC (Func "lambda" (Context (\(!kl_NewHistory) -> do let !appl_4 = ApplC (Func "lambda" (Context (\(!kl_Parsed) -> do kl_Parsed `pseq` kl_shen_toplevel kl_Parsed)))+                                                                                                                                                                                                                                                                                                                 let !aw_5 = Core.Types.Atom (Core.Types.UnboundSym "fst")+                                                                                                                                                                                                                                                                                                                 !appl_6 <- kl_NewLineread `pseq` applyWrapper aw_5 [kl_NewLineread]+                                                                                                                                                                                                                                                                                                                 appl_6 `pseq` applyWrapper appl_4 [appl_6])))+                                                                                                                                                                                                                                            !appl_7 <- kl_NewLineread `pseq` (kl_History `pseq` kl_shen_update_history kl_NewLineread kl_History)+                                                                                                                                                                                                                                            appl_7 `pseq` applyWrapper appl_3 [appl_7])))+                                                                                                                                                                      !appl_8 <- kl_Lineread `pseq` (kl_History `pseq` kl_shen_retrieve_from_history_if_needed kl_Lineread kl_History)+                                                                                                                                                                      appl_8 `pseq` applyWrapper appl_2 [appl_8])))+                                                                                                    !appl_9 <- value (Core.Types.Atom (Core.Types.UnboundSym "shen.*history*"))+                                                                                                    appl_9 `pseq` applyWrapper appl_1 [appl_9])))+                                 !appl_10 <- kl_shen_toplineread+                                 appl_10 `pseq` applyWrapper appl_0 [appl_10]++kl_shen_retrieve_from_history_if_needed :: Core.Types.KLValue ->+                                           Core.Types.KLValue ->+                                           Core.Types.KLContext Core.Types.Env Core.Types.KLValue+kl_shen_retrieve_from_history_if_needed (!kl_V3816) (!kl_V3817) = do let !aw_0 = Core.Types.Atom (Core.Types.UnboundSym "tuple?")+                                                                     !kl_if_1 <- kl_V3816 `pseq` applyWrapper aw_0 [kl_V3816]+                                                                     !kl_if_2 <- case kl_if_1 of+                                                                                     Atom (B (True)) -> do let !aw_3 = Core.Types.Atom (Core.Types.UnboundSym "snd")+                                                                                                           !appl_4 <- kl_V3816 `pseq` applyWrapper aw_3 [kl_V3816]+                                                                                                           !kl_if_5 <- appl_4 `pseq` consP appl_4+                                                                                                           !kl_if_6 <- case kl_if_5 of+                                                                                                                           Atom (B (True)) -> do let !aw_7 = Core.Types.Atom (Core.Types.UnboundSym "snd")+                                                                                                                                                 !appl_8 <- kl_V3816 `pseq` applyWrapper aw_7 [kl_V3816]+                                                                                                                                                 !appl_9 <- appl_8 `pseq` hd appl_8+                                                                                                                                                 !appl_10 <- kl_shen_space+                                                                                                                                                 !appl_11 <- kl_shen_newline+                                                                                                                                                 let !appl_12 = Atom Nil+                                                                                                                                                 !appl_13 <- appl_11 `pseq` (appl_12 `pseq` klCons appl_11 appl_12)+                                                                                                                                                 !appl_14 <- appl_10 `pseq` (appl_13 `pseq` klCons appl_10 appl_13)+                                                                                                                                                 let !aw_15 = Core.Types.Atom (Core.Types.UnboundSym "element?")+                                                                                                                                                 !kl_if_16 <- appl_9 `pseq` (appl_14 `pseq` applyWrapper aw_15 [appl_9,+                                                                                                                                                                                                                appl_14])+                                                                                                                                                 case kl_if_16 of+                                                                                                                                                     Atom (B (True)) -> do return (Atom (B True))+                                                                                                                                                     Atom (B (False)) -> do do return (Atom (B False))+                                                                                                                                                     _ -> throwError "if: expected boolean"+                                                                                                                           Atom (B (False)) -> do do return (Atom (B False))+                                                                                                                           _ -> throwError "if: expected boolean"+                                                                                                           case kl_if_6 of+                                                                                                               Atom (B (True)) -> do return (Atom (B True))+                                                                                                               Atom (B (False)) -> do do return (Atom (B False))+                                                                                                               _ -> throwError "if: expected boolean"+                                                                                     Atom (B (False)) -> do do return (Atom (B False))+                                                                                     _ -> throwError "if: expected boolean"+                                                                     case kl_if_2 of+                                                                         Atom (B (True)) -> do let !aw_17 = Core.Types.Atom (Core.Types.UnboundSym "fst")+                                                                                               !appl_18 <- kl_V3816 `pseq` applyWrapper aw_17 [kl_V3816]+                                                                                               let !aw_19 = Core.Types.Atom (Core.Types.UnboundSym "snd")+                                                                                               !appl_20 <- kl_V3816 `pseq` applyWrapper aw_19 [kl_V3816]+                                                                                               !appl_21 <- appl_20 `pseq` tl appl_20+                                                                                               let !aw_22 = Core.Types.Atom (Core.Types.UnboundSym "@p")+                                                                                               !appl_23 <- appl_18 `pseq` (appl_21 `pseq` applyWrapper aw_22 [appl_18,+                                                                                                                                                              appl_21])+                                                                                               appl_23 `pseq` (kl_V3817 `pseq` kl_shen_retrieve_from_history_if_needed appl_23 kl_V3817)+                                                                         Atom (B (False)) -> do let !aw_24 = Core.Types.Atom (Core.Types.UnboundSym "tuple?")+                                                                                                !kl_if_25 <- kl_V3816 `pseq` applyWrapper aw_24 [kl_V3816]+                                                                                                !kl_if_26 <- case kl_if_25 of+                                                                                                                 Atom (B (True)) -> do let !aw_27 = Core.Types.Atom (Core.Types.UnboundSym "snd")+                                                                                                                                       !appl_28 <- kl_V3816 `pseq` applyWrapper aw_27 [kl_V3816]+                                                                                                                                       !kl_if_29 <- appl_28 `pseq` consP appl_28+                                                                                                                                       !kl_if_30 <- case kl_if_29 of+                                                                                                                                                        Atom (B (True)) -> do let !aw_31 = Core.Types.Atom (Core.Types.UnboundSym "snd")+                                                                                                                                                                              !appl_32 <- kl_V3816 `pseq` applyWrapper aw_31 [kl_V3816]+                                                                                                                                                                              !appl_33 <- appl_32 `pseq` tl appl_32+                                                                                                                                                                              !kl_if_34 <- appl_33 `pseq` consP appl_33+                                                                                                                                                                              !kl_if_35 <- case kl_if_34 of+                                                                                                                                                                                               Atom (B (True)) -> do let !appl_36 = Atom Nil+                                                                                                                                                                                                                     let !aw_37 = Core.Types.Atom (Core.Types.UnboundSym "snd")+                                                                                                                                                                                                                     !appl_38 <- kl_V3816 `pseq` applyWrapper aw_37 [kl_V3816]+                                                                                                                                                                                                                     !appl_39 <- appl_38 `pseq` tl appl_38+                                                                                                                                                                                                                     !appl_40 <- appl_39 `pseq` tl appl_39+                                                                                                                                                                                                                     !kl_if_41 <- appl_36 `pseq` (appl_40 `pseq` eq appl_36 appl_40)+                                                                                                                                                                                                                     !kl_if_42 <- case kl_if_41 of+                                                                                                                                                                                                                                      Atom (B (True)) -> do !kl_if_43 <- let pat_cond_44 kl_V3817 kl_V3817h kl_V3817t = do let !aw_45 = Core.Types.Atom (Core.Types.UnboundSym "snd")+                                                                                                                                                                                                                                                                                                                           !appl_46 <- kl_V3816 `pseq` applyWrapper aw_45 [kl_V3816]+                                                                                                                                                                                                                                                                                                                           !appl_47 <- appl_46 `pseq` hd appl_46+                                                                                                                                                                                                                                                                                                                           !appl_48 <- kl_shen_exclamation+                                                                                                                                                                                                                                                                                                                           !kl_if_49 <- appl_47 `pseq` (appl_48 `pseq` eq appl_47 appl_48)+                                                                                                                                                                                                                                                                                                                           !kl_if_50 <- case kl_if_49 of+                                                                                                                                                                                                                                                                                                                                            Atom (B (True)) -> do let !aw_51 = Core.Types.Atom (Core.Types.UnboundSym "snd")+                                                                                                                                                                                                                                                                                                                                                                  !appl_52 <- kl_V3816 `pseq` applyWrapper aw_51 [kl_V3816]+                                                                                                                                                                                                                                                                                                                                                                  !appl_53 <- appl_52 `pseq` tl appl_52+                                                                                                                                                                                                                                                                                                                                                                  !appl_54 <- appl_53 `pseq` hd appl_53+                                                                                                                                                                                                                                                                                                                                                                  !appl_55 <- kl_shen_exclamation+                                                                                                                                                                                                                                                                                                                                                                  !kl_if_56 <- appl_54 `pseq` (appl_55 `pseq` eq appl_54 appl_55)+                                                                                                                                                                                                                                                                                                                                                                  case kl_if_56 of+                                                                                                                                                                                                                                                                                                                                                                      Atom (B (True)) -> do return (Atom (B True))+                                                                                                                                                                                                                                                                                                                                                                      Atom (B (False)) -> do do return (Atom (B False))+                                                                                                                                                                                                                                                                                                                                                                      _ -> throwError "if: expected boolean"+                                                                                                                                                                                                                                                                                                                                            Atom (B (False)) -> do do return (Atom (B False))+                                                                                                                                                                                                                                                                                                                                            _ -> throwError "if: expected boolean"+                                                                                                                                                                                                                                                                                                                           case kl_if_50 of+                                                                                                                                                                                                                                                                                                                               Atom (B (True)) -> do return (Atom (B True))+                                                                                                                                                                                                                                                                                                                               Atom (B (False)) -> do do return (Atom (B False))+                                                                                                                                                                                                                                                                                                                               _ -> throwError "if: expected boolean"+                                                                                                                                                                                                                                                                             pat_cond_57 = do do return (Atom (B False))+                                                                                                                                                                                                                                                                          in case kl_V3817 of+                                                                                                                                                                                                                                                                                 !(kl_V3817@(Cons (!kl_V3817h)+                                                                                                                                                                                                                                                                                                  (!kl_V3817t))) -> pat_cond_44 kl_V3817 kl_V3817h kl_V3817t+                                                                                                                                                                                                                                                                                 _ -> pat_cond_57+                                                                                                                                                                                                                                                            case kl_if_43 of+                                                                                                                                                                                                                                                                Atom (B (True)) -> do return (Atom (B True))+                                                                                                                                                                                                                                                                Atom (B (False)) -> do do return (Atom (B False))+                                                                                                                                                                                                                                                                _ -> throwError "if: expected boolean"+                                                                                                                                                                                                                                      Atom (B (False)) -> do do return (Atom (B False))+                                                                                                                                                                                                                                      _ -> throwError "if: expected boolean"+                                                                                                                                                                                                                     case kl_if_42 of+                                                                                                                                                                                                                         Atom (B (True)) -> do return (Atom (B True))+                                                                                                                                                                                                                         Atom (B (False)) -> do do return (Atom (B False))+                                                                                                                                                                                                                         _ -> throwError "if: expected boolean"+                                                                                                                                                                                               Atom (B (False)) -> do do return (Atom (B False))+                                                                                                                                                                                               _ -> throwError "if: expected boolean"+                                                                                                                                                                              case kl_if_35 of+                                                                                                                                                                                  Atom (B (True)) -> do return (Atom (B True))+                                                                                                                                                                                  Atom (B (False)) -> do do return (Atom (B False))+                                                                                                                                                                                  _ -> throwError "if: expected boolean"+                                                                                                                                                        Atom (B (False)) -> do do return (Atom (B False))+                                                                                                                                                        _ -> throwError "if: expected boolean"+                                                                                                                                       case kl_if_30 of+                                                                                                                                           Atom (B (True)) -> do return (Atom (B True))+                                                                                                                                           Atom (B (False)) -> do do return (Atom (B False))+                                                                                                                                           _ -> throwError "if: expected boolean"+                                                                                                                 Atom (B (False)) -> do do return (Atom (B False))+                                                                                                                 _ -> throwError "if: expected boolean"+                                                                                                case kl_if_26 of+                                                                                                    Atom (B (True)) -> do let !appl_58 = ApplC (Func "lambda" (Context (\(!kl_PastPrint) -> do kl_V3817 `pseq` hd kl_V3817)))+                                                                                                                          !appl_59 <- kl_V3817 `pseq` hd kl_V3817+                                                                                                                          let !aw_60 = Core.Types.Atom (Core.Types.UnboundSym "snd")+                                                                                                                          !appl_61 <- appl_59 `pseq` applyWrapper aw_60 [appl_59]+                                                                                                                          !appl_62 <- appl_61 `pseq` kl_shen_prbytes appl_61+                                                                                                                          appl_62 `pseq` applyWrapper appl_58 [appl_62]+                                                                                                    Atom (B (False)) -> do let !aw_63 = Core.Types.Atom (Core.Types.UnboundSym "tuple?")+                                                                                                                           !kl_if_64 <- kl_V3816 `pseq` applyWrapper aw_63 [kl_V3816]+                                                                                                                           !kl_if_65 <- case kl_if_64 of+                                                                                                                                            Atom (B (True)) -> do let !aw_66 = Core.Types.Atom (Core.Types.UnboundSym "snd")+                                                                                                                                                                  !appl_67 <- kl_V3816 `pseq` applyWrapper aw_66 [kl_V3816]+                                                                                                                                                                  !kl_if_68 <- appl_67 `pseq` consP appl_67+                                                                                                                                                                  !kl_if_69 <- case kl_if_68 of+                                                                                                                                                                                   Atom (B (True)) -> do let !aw_70 = Core.Types.Atom (Core.Types.UnboundSym "snd")+                                                                                                                                                                                                         !appl_71 <- kl_V3816 `pseq` applyWrapper aw_70 [kl_V3816]+                                                                                                                                                                                                         !appl_72 <- appl_71 `pseq` hd appl_71+                                                                                                                                                                                                         !appl_73 <- kl_shen_exclamation+                                                                                                                                                                                                         !kl_if_74 <- appl_72 `pseq` (appl_73 `pseq` eq appl_72 appl_73)+                                                                                                                                                                                                         case kl_if_74 of+                                                                                                                                                                                                             Atom (B (True)) -> do return (Atom (B True))+                                                                                                                                                                                                             Atom (B (False)) -> do do return (Atom (B False))+                                                                                                                                                                                                             _ -> throwError "if: expected boolean"+                                                                                                                                                                                   Atom (B (False)) -> do do return (Atom (B False))+                                                                                                                                                                                   _ -> throwError "if: expected boolean"+                                                                                                                                                                  case kl_if_69 of+                                                                                                                                                                      Atom (B (True)) -> do return (Atom (B True))+                                                                                                                                                                      Atom (B (False)) -> do do return (Atom (B False))+                                                                                                                                                                      _ -> throwError "if: expected boolean"+                                                                                                                                            Atom (B (False)) -> do do return (Atom (B False))+                                                                                                                                            _ -> throwError "if: expected boolean"+                                                                                                                           case kl_if_65 of+                                                                                                                               Atom (B (True)) -> do let !appl_75 = ApplC (Func "lambda" (Context (\(!kl_KeyP) -> do let !appl_76 = ApplC (Func "lambda" (Context (\(!kl_Find) -> do let !appl_77 = ApplC (Func "lambda" (Context (\(!kl_PastPrint) -> do return kl_Find)))+                                                                                                                                                                                                                                                                                     let !aw_78 = Core.Types.Atom (Core.Types.UnboundSym "snd")+                                                                                                                                                                                                                                                                                     !appl_79 <- kl_Find `pseq` applyWrapper aw_78 [kl_Find]+                                                                                                                                                                                                                                                                                     !appl_80 <- appl_79 `pseq` kl_shen_prbytes appl_79+                                                                                                                                                                                                                                                                                     appl_80 `pseq` applyWrapper appl_77 [appl_80])))+                                                                                                                                                                                                                     !appl_81 <- kl_KeyP `pseq` (kl_V3817 `pseq` kl_shen_find_past_inputs kl_KeyP kl_V3817)+                                                                                                                                                                                                                     let !aw_82 = Core.Types.Atom (Core.Types.UnboundSym "head")+                                                                                                                                                                                                                     !appl_83 <- appl_81 `pseq` applyWrapper aw_82 [appl_81]+                                                                                                                                                                                                                     appl_83 `pseq` applyWrapper appl_76 [appl_83])))+                                                                                                                                                     let !aw_84 = Core.Types.Atom (Core.Types.UnboundSym "snd")+                                                                                                                                                     !appl_85 <- kl_V3816 `pseq` applyWrapper aw_84 [kl_V3816]+                                                                                                                                                     !appl_86 <- appl_85 `pseq` tl appl_85+                                                                                                                                                     !appl_87 <- appl_86 `pseq` (kl_V3817 `pseq` kl_shen_make_key appl_86 kl_V3817)+                                                                                                                                                     appl_87 `pseq` applyWrapper appl_75 [appl_87]+                                                                                                                               Atom (B (False)) -> do let !aw_88 = Core.Types.Atom (Core.Types.UnboundSym "tuple?")+                                                                                                                                                      !kl_if_89 <- kl_V3816 `pseq` applyWrapper aw_88 [kl_V3816]+                                                                                                                                                      !kl_if_90 <- case kl_if_89 of+                                                                                                                                                                       Atom (B (True)) -> do let !aw_91 = Core.Types.Atom (Core.Types.UnboundSym "snd")+                                                                                                                                                                                             !appl_92 <- kl_V3816 `pseq` applyWrapper aw_91 [kl_V3816]+                                                                                                                                                                                             !kl_if_93 <- appl_92 `pseq` consP appl_92+                                                                                                                                                                                             !kl_if_94 <- case kl_if_93 of+                                                                                                                                                                                                              Atom (B (True)) -> do let !appl_95 = Atom Nil+                                                                                                                                                                                                                                    let !aw_96 = Core.Types.Atom (Core.Types.UnboundSym "snd")+                                                                                                                                                                                                                                    !appl_97 <- kl_V3816 `pseq` applyWrapper aw_96 [kl_V3816]+                                                                                                                                                                                                                                    !appl_98 <- appl_97 `pseq` tl appl_97+                                                                                                                                                                                                                                    !kl_if_99 <- appl_95 `pseq` (appl_98 `pseq` eq appl_95 appl_98)+                                                                                                                                                                                                                                    !kl_if_100 <- case kl_if_99 of+                                                                                                                                                                                                                                                      Atom (B (True)) -> do let !aw_101 = Core.Types.Atom (Core.Types.UnboundSym "snd")+                                                                                                                                                                                                                                                                            !appl_102 <- kl_V3816 `pseq` applyWrapper aw_101 [kl_V3816]+                                                                                                                                                                                                                                                                            !appl_103 <- appl_102 `pseq` hd appl_102+                                                                                                                                                                                                                                                                            !appl_104 <- kl_shen_percent+                                                                                                                                                                                                                                                                            !kl_if_105 <- appl_103 `pseq` (appl_104 `pseq` eq appl_103 appl_104)+                                                                                                                                                                                                                                                                            case kl_if_105 of+                                                                                                                                                                                                                                                                                Atom (B (True)) -> do return (Atom (B True))+                                                                                                                                                                                                                                                                                Atom (B (False)) -> do do return (Atom (B False))+                                                                                                                                                                                                                                                                                _ -> throwError "if: expected boolean"+                                                                                                                                                                                                                                                      Atom (B (False)) -> do do return (Atom (B False))+                                                                                                                                                                                                                                                      _ -> throwError "if: expected boolean"+                                                                                                                                                                                                                                    case kl_if_100 of+                                                                                                                                                                                                                                        Atom (B (True)) -> do return (Atom (B True))+                                                                                                                                                                                                                                        Atom (B (False)) -> do do return (Atom (B False))+                                                                                                                                                                                                                                        _ -> throwError "if: expected boolean"+                                                                                                                                                                                                              Atom (B (False)) -> do do return (Atom (B False))+                                                                                                                                                                                                              _ -> throwError "if: expected boolean"+                                                                                                                                                                                             case kl_if_94 of+                                                                                                                                                                                                 Atom (B (True)) -> do return (Atom (B True))+                                                                                                                                                                                                 Atom (B (False)) -> do do return (Atom (B False))+                                                                                                                                                                                                 _ -> throwError "if: expected boolean"+                                                                                                                                                                       Atom (B (False)) -> do do return (Atom (B False))+                                                                                                                                                                       _ -> throwError "if: expected boolean"+                                                                                                                                                      case kl_if_90 of+                                                                                                                                                          Atom (B (True)) -> do let !appl_106 = ApplC (Func "lambda" (Context (\(!kl_X) -> do return (Atom (B True)))))+                                                                                                                                                                                let !aw_107 = Core.Types.Atom (Core.Types.UnboundSym "reverse")+                                                                                                                                                                                !appl_108 <- kl_V3817 `pseq` applyWrapper aw_107 [kl_V3817]+                                                                                                                                                                                !appl_109 <- appl_106 `pseq` (appl_108 `pseq` kl_shen_print_past_inputs appl_106 appl_108 (Core.Types.Atom (Core.Types.N (Core.Types.KI 0))))+                                                                                                                                                                                let !aw_110 = Core.Types.Atom (Core.Types.UnboundSym "abort")+                                                                                                                                                                                !appl_111 <- applyWrapper aw_110 []+                                                                                                                                                                                let !aw_112 = Core.Types.Atom (Core.Types.UnboundSym "do")+                                                                                                                                                                                appl_109 `pseq` (appl_111 `pseq` applyWrapper aw_112 [appl_109,+                                                                                                                                                                                                                                      appl_111])+                                                                                                                                                          Atom (B (False)) -> do let !aw_113 = Core.Types.Atom (Core.Types.UnboundSym "tuple?")+                                                                                                                                                                                 !kl_if_114 <- kl_V3816 `pseq` applyWrapper aw_113 [kl_V3816]+                                                                                                                                                                                 !kl_if_115 <- case kl_if_114 of+                                                                                                                                                                                                   Atom (B (True)) -> do let !aw_116 = Core.Types.Atom (Core.Types.UnboundSym "snd")+                                                                                                                                                                                                                         !appl_117 <- kl_V3816 `pseq` applyWrapper aw_116 [kl_V3816]+                                                                                                                                                                                                                         !kl_if_118 <- appl_117 `pseq` consP appl_117+                                                                                                                                                                                                                         !kl_if_119 <- case kl_if_118 of+                                                                                                                                                                                                                                           Atom (B (True)) -> do let !aw_120 = Core.Types.Atom (Core.Types.UnboundSym "snd")+                                                                                                                                                                                                                                                                 !appl_121 <- kl_V3816 `pseq` applyWrapper aw_120 [kl_V3816]+                                                                                                                                                                                                                                                                 !appl_122 <- appl_121 `pseq` hd appl_121+                                                                                                                                                                                                                                                                 !appl_123 <- kl_shen_percent+                                                                                                                                                                                                                                                                 !kl_if_124 <- appl_122 `pseq` (appl_123 `pseq` eq appl_122 appl_123)+                                                                                                                                                                                                                                                                 case kl_if_124 of+                                                                                                                                                                                                                                                                     Atom (B (True)) -> do return (Atom (B True))+                                                                                                                                                                                                                                                                     Atom (B (False)) -> do do return (Atom (B False))+                                                                                                                                                                                                                                                                     _ -> throwError "if: expected boolean"+                                                                                                                                                                                                                                           Atom (B (False)) -> do do return (Atom (B False))+                                                                                                                                                                                                                                           _ -> throwError "if: expected boolean"+                                                                                                                                                                                                                         case kl_if_119 of+                                                                                                                                                                                                                             Atom (B (True)) -> do return (Atom (B True))+                                                                                                                                                                                                                             Atom (B (False)) -> do do return (Atom (B False))+                                                                                                                                                                                                                             _ -> throwError "if: expected boolean"+                                                                                                                                                                                                   Atom (B (False)) -> do do return (Atom (B False))+                                                                                                                                                                                                   _ -> throwError "if: expected boolean"+                                                                                                                                                                                 case kl_if_115 of+                                                                                                                                                                                     Atom (B (True)) -> do let !appl_125 = ApplC (Func "lambda" (Context (\(!kl_KeyP) -> do let !appl_126 = ApplC (Func "lambda" (Context (\(!kl_Pastprint) -> do let !aw_127 = Core.Types.Atom (Core.Types.UnboundSym "abort")+                                                                                                                                                                                                                                                                                                                                                  applyWrapper aw_127 [])))+                                                                                                                                                                                                                                                                            let !aw_128 = Core.Types.Atom (Core.Types.UnboundSym "reverse")+                                                                                                                                                                                                                                                                            !appl_129 <- kl_V3817 `pseq` applyWrapper aw_128 [kl_V3817]+                                                                                                                                                                                                                                                                            !appl_130 <- kl_KeyP `pseq` (appl_129 `pseq` kl_shen_print_past_inputs kl_KeyP appl_129 (Core.Types.Atom (Core.Types.N (Core.Types.KI 0))))+                                                                                                                                                                                                                                                                            appl_130 `pseq` applyWrapper appl_126 [appl_130])))+                                                                                                                                                                                                           let !aw_131 = Core.Types.Atom (Core.Types.UnboundSym "snd")+                                                                                                                                                                                                           !appl_132 <- kl_V3816 `pseq` applyWrapper aw_131 [kl_V3816]+                                                                                                                                                                                                           !appl_133 <- appl_132 `pseq` tl appl_132+                                                                                                                                                                                                           !appl_134 <- appl_133 `pseq` (kl_V3817 `pseq` kl_shen_make_key appl_133 kl_V3817)+                                                                                                                                                                                                           appl_134 `pseq` applyWrapper appl_125 [appl_134]+                                                                                                                                                                                     Atom (B (False)) -> do do return kl_V3816+                                                                                                                                                                                     _ -> throwError "if: expected boolean"+                                                                                                                                                          _ -> throwError "if: expected boolean"+                                                                                                                               _ -> throwError "if: expected boolean"+                                                                                                    _ -> throwError "if: expected boolean"+                                                                         _ -> throwError "if: expected boolean"++kl_shen_percent :: Core.Types.KLContext Core.Types.Env+                                        Core.Types.KLValue+kl_shen_percent = do return (Core.Types.Atom (Core.Types.N (Core.Types.KI 37)))++kl_shen_exclamation :: Core.Types.KLContext Core.Types.Env+                                            Core.Types.KLValue+kl_shen_exclamation = do return (Core.Types.Atom (Core.Types.N (Core.Types.KI 33)))++kl_shen_prbytes :: Core.Types.KLValue ->+                   Core.Types.KLContext Core.Types.Env Core.Types.KLValue+kl_shen_prbytes (!kl_V3819) = do let !appl_0 = ApplC (Func "lambda" (Context (\(!kl_Byte) -> do !appl_1 <- kl_Byte `pseq` nToString kl_Byte+                                                                                                let !aw_2 = Core.Types.Atom (Core.Types.UnboundSym "stoutput")+                                                                                                !appl_3 <- applyWrapper aw_2 []+                                                                                                let !aw_4 = Core.Types.Atom (Core.Types.UnboundSym "pr")+                                                                                                appl_1 `pseq` (appl_3 `pseq` applyWrapper aw_4 [appl_1,+                                                                                                                                                appl_3]))))+                                 let !aw_5 = Core.Types.Atom (Core.Types.UnboundSym "for-each")+                                 !appl_6 <- appl_0 `pseq` (kl_V3819 `pseq` applyWrapper aw_5 [appl_0,+                                                                                              kl_V3819])+                                 let !aw_7 = Core.Types.Atom (Core.Types.UnboundSym "nl")+                                 !appl_8 <- applyWrapper aw_7 [Core.Types.Atom (Core.Types.N (Core.Types.KI 1))]+                                 let !aw_9 = Core.Types.Atom (Core.Types.UnboundSym "do")+                                 appl_6 `pseq` (appl_8 `pseq` applyWrapper aw_9 [appl_6, appl_8])++kl_shen_update_history :: Core.Types.KLValue ->+                          Core.Types.KLValue ->+                          Core.Types.KLContext Core.Types.Env Core.Types.KLValue+kl_shen_update_history (!kl_V3822) (!kl_V3823) = do !appl_0 <- kl_V3822 `pseq` (kl_V3823 `pseq` klCons kl_V3822 kl_V3823)+                                                    appl_0 `pseq` klSet (Core.Types.Atom (Core.Types.UnboundSym "shen.*history*")) appl_0++kl_shen_toplineread :: Core.Types.KLContext Core.Types.Env+                                            Core.Types.KLValue+kl_shen_toplineread = do let !aw_0 = Core.Types.Atom (Core.Types.UnboundSym "stinput")+                         !appl_1 <- applyWrapper aw_0 []+                         let !aw_2 = Core.Types.Atom (Core.Types.UnboundSym "read-char-code")+                         !appl_3 <- appl_1 `pseq` applyWrapper aw_2 [appl_1]+                         let !appl_4 = Atom Nil+                         appl_3 `pseq` (appl_4 `pseq` kl_shen_toplineread_loop appl_3 appl_4)++kl_shen_toplineread_loop :: Core.Types.KLValue ->+                            Core.Types.KLValue ->+                            Core.Types.KLContext Core.Types.Env Core.Types.KLValue+kl_shen_toplineread_loop (!kl_V3827) (!kl_V3828) = do !kl_if_0 <- let pat_cond_1 = do let !appl_2 = Atom Nil+                                                                                      !kl_if_3 <- appl_2 `pseq` (kl_V3828 `pseq` eq appl_2 kl_V3828)+                                                                                      case kl_if_3 of+                                                                                          Atom (B (True)) -> do return (Atom (B True))+                                                                                          Atom (B (False)) -> do do return (Atom (B False))+                                                                                          _ -> throwError "if: expected boolean"+                                                                      pat_cond_4 = do do return (Atom (B False))+                                                                   in case kl_V3827 of+                                                                          kl_V3827@(Atom (N (KI (-1)))) -> pat_cond_1+                                                                          _ -> pat_cond_4+                                                      case kl_if_0 of+                                                          Atom (B (True)) -> do kl_exit (Core.Types.Atom (Core.Types.N (Core.Types.KI 0)))+                                                          Atom (B (False)) -> do !appl_5 <- kl_shen_hat+                                                                                 !kl_if_6 <- kl_V3827 `pseq` (appl_5 `pseq` eq kl_V3827 appl_5)+                                                                                 case kl_if_6 of+                                                                                     Atom (B (True)) -> do simpleError (Core.Types.Atom (Core.Types.Str "line read aborted"))+                                                                                     Atom (B (False)) -> do !appl_7 <- kl_shen_newline+                                                                                                            !appl_8 <- kl_shen_carriage_return+                                                                                                            let !appl_9 = Atom Nil+                                                                                                            !appl_10 <- appl_8 `pseq` (appl_9 `pseq` klCons appl_8 appl_9)+                                                                                                            !appl_11 <- appl_7 `pseq` (appl_10 `pseq` klCons appl_7 appl_10)+                                                                                                            let !aw_12 = Core.Types.Atom (Core.Types.UnboundSym "element?")+                                                                                                            !kl_if_13 <- kl_V3827 `pseq` (appl_11 `pseq` applyWrapper aw_12 [kl_V3827,+                                                                                                                                                                             appl_11])+                                                                                                            case kl_if_13 of+                                                                                                                Atom (B (True)) -> do let !appl_14 = ApplC (Func "lambda" (Context (\(!kl_Line) -> do let !appl_15 = ApplC (Func "lambda" (Context (\(!kl_It) -> do !kl_if_16 <- let pat_cond_17 = do return (Atom (B True))+                                                                                                                                                                                                                                                                                     pat_cond_18 = do do let !aw_19 = Core.Types.Atom (Core.Types.UnboundSym "empty?")+                                                                                                                                                                                                                                                                                                         !kl_if_20 <- kl_Line `pseq` applyWrapper aw_19 [kl_Line]+                                                                                                                                                                                                                                                                                                         case kl_if_20 of+                                                                                                                                                                                                                                                                                                             Atom (B (True)) -> do return (Atom (B True))+                                                                                                                                                                                                                                                                                                             Atom (B (False)) -> do do return (Atom (B False))+                                                                                                                                                                                                                                                                                                             _ -> throwError "if: expected boolean"+                                                                                                                                                                                                                                                                                  in case kl_Line of+                                                                                                                                                                                                                                                                                         kl_Line@(Atom (UnboundSym "shen.nextline")) -> pat_cond_17+                                                                                                                                                                                                                                                                                         kl_Line@(ApplC (PL "shen.nextline"+                                                                                                                                                                                                                                                                                                            _)) -> pat_cond_17+                                                                                                                                                                                                                                                                                         kl_Line@(ApplC (Func "shen.nextline"+                                                                                                                                                                                                                                                                                                              _)) -> pat_cond_17+                                                                                                                                                                                                                                                                                         _ -> pat_cond_18+                                                                                                                                                                                                                                                                    case kl_if_16 of+                                                                                                                                                                                                                                                                        Atom (B (True)) -> do let !aw_21 = Core.Types.Atom (Core.Types.UnboundSym "stinput")+                                                                                                                                                                                                                                                                                              !appl_22 <- applyWrapper aw_21 []+                                                                                                                                                                                                                                                                                              let !aw_23 = Core.Types.Atom (Core.Types.UnboundSym "read-char-code")+                                                                                                                                                                                                                                                                                              !appl_24 <- appl_22 `pseq` applyWrapper aw_23 [appl_22]+                                                                                                                                                                                                                                                                                              let !appl_25 = Atom Nil+                                                                                                                                                                                                                                                                                              !appl_26 <- kl_V3827 `pseq` (appl_25 `pseq` klCons kl_V3827 appl_25)+                                                                                                                                                                                                                                                                                              let !aw_27 = Core.Types.Atom (Core.Types.UnboundSym "append")+                                                                                                                                                                                                                                                                                              !appl_28 <- kl_V3828 `pseq` (appl_26 `pseq` applyWrapper aw_27 [kl_V3828,+                                                                                                                                                                                                                                                                                                                                                              appl_26])+                                                                                                                                                                                                                                                                                              appl_24 `pseq` (appl_28 `pseq` kl_shen_toplineread_loop appl_24 appl_28)+                                                                                                                                                                                                                                                                        Atom (B (False)) -> do do let !aw_29 = Core.Types.Atom (Core.Types.UnboundSym "@p")+                                                                                                                                                                                                                                                                                                  kl_Line `pseq` (kl_V3828 `pseq` applyWrapper aw_29 [kl_Line,+                                                                                                                                                                                                                                                                                                                                                      kl_V3828])+                                                                                                                                                                                                                                                                        _ -> throwError "if: expected boolean")))+                                                                                                                                                                                                      let !aw_30 = Core.Types.Atom (Core.Types.UnboundSym "shen.record-it")+                                                                                                                                                                                                      !appl_31 <- kl_V3828 `pseq` applyWrapper aw_30 [kl_V3828]+                                                                                                                                                                                                      appl_31 `pseq` applyWrapper appl_15 [appl_31])))+                                                                                                                                      let !appl_32 = ApplC (Func "lambda" (Context (\(!kl_X) -> do let !aw_33 = Core.Types.Atom (Core.Types.UnboundSym "shen.<st_input>")+                                                                                                                                                                                                   kl_X `pseq` applyWrapper aw_33 [kl_X])))+                                                                                                                                      let !appl_34 = ApplC (Func "lambda" (Context (\(!kl_E) -> do return (Core.Types.Atom (Core.Types.UnboundSym "shen.nextline")))))+                                                                                                                                      let !aw_35 = Core.Types.Atom (Core.Types.UnboundSym "compile")+                                                                                                                                      !appl_36 <- appl_32 `pseq` (kl_V3828 `pseq` (appl_34 `pseq` applyWrapper aw_35 [appl_32,+                                                                                                                                                                                                                      kl_V3828,+                                                                                                                                                                                                                      appl_34]))+                                                                                                                                      appl_36 `pseq` applyWrapper appl_14 [appl_36]+                                                                                                                Atom (B (False)) -> do do let !aw_37 = Core.Types.Atom (Core.Types.UnboundSym "stinput")+                                                                                                                                          !appl_38 <- applyWrapper aw_37 []+                                                                                                                                          let !aw_39 = Core.Types.Atom (Core.Types.UnboundSym "read-char-code")+                                                                                                                                          !appl_40 <- appl_38 `pseq` applyWrapper aw_39 [appl_38]+                                                                                                                                          !appl_41 <- let pat_cond_42 = do return kl_V3828+                                                                                                                                                          pat_cond_43 = do do let !appl_44 = Atom Nil+                                                                                                                                                                              !appl_45 <- kl_V3827 `pseq` (appl_44 `pseq` klCons kl_V3827 appl_44)+                                                                                                                                                                              let !aw_46 = Core.Types.Atom (Core.Types.UnboundSym "append")+                                                                                                                                                                              kl_V3828 `pseq` (appl_45 `pseq` applyWrapper aw_46 [kl_V3828,+                                                                                                                                                                                                                                  appl_45])+                                                                                                                                                       in case kl_V3827 of+                                                                                                                                                              kl_V3827@(Atom (N (KI (-1)))) -> pat_cond_42+                                                                                                                                                              _ -> pat_cond_43+                                                                                                                                          appl_40 `pseq` (appl_41 `pseq` kl_shen_toplineread_loop appl_40 appl_41)+                                                                                                                _ -> throwError "if: expected boolean"+                                                                                     _ -> throwError "if: expected boolean"+                                                          _ -> throwError "if: expected boolean"++kl_shen_hat :: Core.Types.KLContext Core.Types.Env+                                    Core.Types.KLValue+kl_shen_hat = do return (Core.Types.Atom (Core.Types.N (Core.Types.KI 94)))++kl_shen_newline :: Core.Types.KLContext Core.Types.Env+                                        Core.Types.KLValue+kl_shen_newline = do return (Core.Types.Atom (Core.Types.N (Core.Types.KI 10)))++kl_shen_carriage_return :: Core.Types.KLContext Core.Types.Env+                                                Core.Types.KLValue+kl_shen_carriage_return = do return (Core.Types.Atom (Core.Types.N (Core.Types.KI 13)))++kl_tc :: Core.Types.KLValue ->+         Core.Types.KLContext Core.Types.Env Core.Types.KLValue+kl_tc (!kl_V3834) = do let pat_cond_0 = do klSet (Core.Types.Atom (Core.Types.UnboundSym "shen.*tc*")) (Atom (B True))+                           pat_cond_1 = do klSet (Core.Types.Atom (Core.Types.UnboundSym "shen.*tc*")) (Atom (B False))+                           pat_cond_2 = do do simpleError (Core.Types.Atom (Core.Types.Str "tc expects a + or -"))+                        in case kl_V3834 of+                               kl_V3834@(Atom (UnboundSym "+")) -> pat_cond_0+                               kl_V3834@(ApplC (PL "+" _)) -> pat_cond_0+                               kl_V3834@(ApplC (Func "+" _)) -> pat_cond_0+                               kl_V3834@(Atom (UnboundSym "-")) -> pat_cond_1+                               kl_V3834@(ApplC (PL "-" _)) -> pat_cond_1+                               kl_V3834@(ApplC (Func "-" _)) -> pat_cond_1+                               _ -> pat_cond_2++kl_shen_prompt :: Core.Types.KLContext Core.Types.Env+                                       Core.Types.KLValue+kl_shen_prompt = do !kl_if_0 <- value (Core.Types.Atom (Core.Types.UnboundSym "shen.*tc*"))+                    case kl_if_0 of+                        Atom (B (True)) -> do !appl_1 <- value (Core.Types.Atom (Core.Types.UnboundSym "shen.*history*"))+                                              let !aw_2 = Core.Types.Atom (Core.Types.UnboundSym "length")+                                              !appl_3 <- appl_1 `pseq` applyWrapper aw_2 [appl_1]+                                              let !aw_4 = Core.Types.Atom (Core.Types.UnboundSym "shen.app")+                                              !appl_5 <- appl_3 `pseq` applyWrapper aw_4 [appl_3,+                                                                                          Core.Types.Atom (Core.Types.Str "+) "),+                                                                                          Core.Types.Atom (Core.Types.UnboundSym "shen.a")]+                                              !appl_6 <- appl_5 `pseq` cn (Core.Types.Atom (Core.Types.Str "\n\n(")) appl_5+                                              let !aw_7 = Core.Types.Atom (Core.Types.UnboundSym "stoutput")+                                              !appl_8 <- applyWrapper aw_7 []+                                              let !aw_9 = Core.Types.Atom (Core.Types.UnboundSym "shen.prhush")+                                              appl_6 `pseq` (appl_8 `pseq` applyWrapper aw_9 [appl_6,+                                                                                              appl_8])+                        Atom (B (False)) -> do do !appl_10 <- value (Core.Types.Atom (Core.Types.UnboundSym "shen.*history*"))+                                                  let !aw_11 = Core.Types.Atom (Core.Types.UnboundSym "length")+                                                  !appl_12 <- appl_10 `pseq` applyWrapper aw_11 [appl_10]+                                                  let !aw_13 = Core.Types.Atom (Core.Types.UnboundSym "shen.app")+                                                  !appl_14 <- appl_12 `pseq` applyWrapper aw_13 [appl_12,+                                                                                                 Core.Types.Atom (Core.Types.Str "-) "),+                                                                                                 Core.Types.Atom (Core.Types.UnboundSym "shen.a")]+                                                  !appl_15 <- appl_14 `pseq` cn (Core.Types.Atom (Core.Types.Str "\n\n(")) appl_14+                                                  let !aw_16 = Core.Types.Atom (Core.Types.UnboundSym "stoutput")+                                                  !appl_17 <- applyWrapper aw_16 []+                                                  let !aw_18 = Core.Types.Atom (Core.Types.UnboundSym "shen.prhush")+                                                  appl_15 `pseq` (appl_17 `pseq` applyWrapper aw_18 [appl_15,+                                                                                                     appl_17])+                        _ -> throwError "if: expected boolean"++kl_shen_toplevel :: Core.Types.KLValue ->+                    Core.Types.KLContext Core.Types.Env Core.Types.KLValue+kl_shen_toplevel (!kl_V3836) = do !appl_0 <- value (Core.Types.Atom (Core.Types.UnboundSym "shen.*tc*"))+                                  kl_V3836 `pseq` (appl_0 `pseq` kl_shen_toplevel_evaluate kl_V3836 appl_0)++kl_shen_find_past_inputs :: Core.Types.KLValue ->+                            Core.Types.KLValue ->+                            Core.Types.KLContext Core.Types.Env Core.Types.KLValue+kl_shen_find_past_inputs (!kl_V3839) (!kl_V3840) = do let !appl_0 = ApplC (Func "lambda" (Context (\(!kl_F) -> do let !aw_1 = Core.Types.Atom (Core.Types.UnboundSym "empty?")+                                                                                                                  !kl_if_2 <- kl_F `pseq` applyWrapper aw_1 [kl_F]+                                                                                                                  case kl_if_2 of+                                                                                                                      Atom (B (True)) -> do simpleError (Core.Types.Atom (Core.Types.Str "input not found\n"))+                                                                                                                      Atom (B (False)) -> do do return kl_F+                                                                                                                      _ -> throwError "if: expected boolean")))+                                                      !appl_3 <- kl_V3839 `pseq` (kl_V3840 `pseq` kl_shen_find kl_V3839 kl_V3840)+                                                      appl_3 `pseq` applyWrapper appl_0 [appl_3]++kl_shen_make_key :: Core.Types.KLValue ->+                    Core.Types.KLValue ->+                    Core.Types.KLContext Core.Types.Env Core.Types.KLValue+kl_shen_make_key (!kl_V3843) (!kl_V3844) = do let !appl_0 = ApplC (Func "lambda" (Context (\(!kl_Atom) -> do let !aw_1 = Core.Types.Atom (Core.Types.UnboundSym "integer?")+                                                                                                             !kl_if_2 <- kl_Atom `pseq` applyWrapper aw_1 [kl_Atom]+                                                                                                             case kl_if_2 of+                                                                                                                 Atom (B (True)) -> do return (ApplC (Func "lambda" (Context (\(!kl_X) -> do !appl_3 <- kl_Atom `pseq` add kl_Atom (Core.Types.Atom (Core.Types.N (Core.Types.KI 1)))+                                                                                                                                                                                             let !aw_4 = Core.Types.Atom (Core.Types.UnboundSym "reverse")+                                                                                                                                                                                             !appl_5 <- kl_V3844 `pseq` applyWrapper aw_4 [kl_V3844]+                                                                                                                                                                                             let !aw_6 = Core.Types.Atom (Core.Types.UnboundSym "nth")+                                                                                                                                                                                             !appl_7 <- appl_3 `pseq` (appl_5 `pseq` applyWrapper aw_6 [appl_3,+                                                                                                                                                                                                                                                        appl_5])+                                                                                                                                                                                             kl_X `pseq` (appl_7 `pseq` eq kl_X appl_7)))))+                                                                                                                 Atom (B (False)) -> do do return (ApplC (Func "lambda" (Context (\(!kl_X) -> do let !aw_8 = Core.Types.Atom (Core.Types.UnboundSym "snd")+                                                                                                                                                                                                 !appl_9 <- kl_X `pseq` applyWrapper aw_8 [kl_X]+                                                                                                                                                                                                 !appl_10 <- appl_9 `pseq` kl_shen_trim_gubbins appl_9+                                                                                                                                                                                                 kl_V3843 `pseq` (appl_10 `pseq` kl_shen_prefixP kl_V3843 appl_10)))))+                                                                                                                 _ -> throwError "if: expected boolean")))+                                              let !appl_11 = ApplC (Func "lambda" (Context (\(!kl_X) -> do let !aw_12 = Core.Types.Atom (Core.Types.UnboundSym "shen.<st_input>")+                                                                                                           kl_X `pseq` applyWrapper aw_12 [kl_X])))+                                              let !appl_13 = ApplC (Func "lambda" (Context (\(!kl_E) -> do let pat_cond_14 kl_E kl_Eh kl_Et = do let !aw_15 = Core.Types.Atom (Core.Types.UnboundSym "shen.app")+                                                                                                                                                 !appl_16 <- kl_E `pseq` applyWrapper aw_15 [kl_E,+                                                                                                                                                                                             Core.Types.Atom (Core.Types.Str "\n"),+                                                                                                                                                                                             Core.Types.Atom (Core.Types.UnboundSym "shen.s")]+                                                                                                                                                 !appl_17 <- appl_16 `pseq` cn (Core.Types.Atom (Core.Types.Str "parse error here: ")) appl_16+                                                                                                                                                 appl_17 `pseq` simpleError appl_17+                                                                                                               pat_cond_18 = do do simpleError (Core.Types.Atom (Core.Types.Str "parse error\n"))+                                                                                                            in case kl_E of+                                                                                                                   !(kl_E@(Cons (!kl_Eh)+                                                                                                                                (!kl_Et))) -> pat_cond_14 kl_E kl_Eh kl_Et+                                                                                                                   _ -> pat_cond_18)))+                                              let !aw_19 = Core.Types.Atom (Core.Types.UnboundSym "compile")+                                              !appl_20 <- appl_11 `pseq` (kl_V3843 `pseq` (appl_13 `pseq` applyWrapper aw_19 [appl_11,+                                                                                                                              kl_V3843,+                                                                                                                              appl_13]))+                                              !appl_21 <- appl_20 `pseq` hd appl_20+                                              appl_21 `pseq` applyWrapper appl_0 [appl_21]++kl_shen_trim_gubbins :: Core.Types.KLValue ->+                        Core.Types.KLContext Core.Types.Env Core.Types.KLValue+kl_shen_trim_gubbins (!kl_V3846) = do !kl_if_0 <- let pat_cond_1 kl_V3846 kl_V3846h kl_V3846t = do !appl_2 <- kl_shen_space+                                                                                                   !kl_if_3 <- kl_V3846h `pseq` (appl_2 `pseq` eq kl_V3846h appl_2)+                                                                                                   case kl_if_3 of+                                                                                                       Atom (B (True)) -> do return (Atom (B True))+                                                                                                       Atom (B (False)) -> do do return (Atom (B False))+                                                                                                       _ -> throwError "if: expected boolean"+                                                      pat_cond_4 = do do return (Atom (B False))+                                                   in case kl_V3846 of+                                                          !(kl_V3846@(Cons (!kl_V3846h)+                                                                           (!kl_V3846t))) -> pat_cond_1 kl_V3846 kl_V3846h kl_V3846t+                                                          _ -> pat_cond_4+                                      case kl_if_0 of+                                          Atom (B (True)) -> do !appl_5 <- kl_V3846 `pseq` tl kl_V3846+                                                                appl_5 `pseq` kl_shen_trim_gubbins appl_5+                                          Atom (B (False)) -> do !kl_if_6 <- let pat_cond_7 kl_V3846 kl_V3846h kl_V3846t = do !appl_8 <- kl_shen_newline+                                                                                                                              !kl_if_9 <- kl_V3846h `pseq` (appl_8 `pseq` eq kl_V3846h appl_8)+                                                                                                                              case kl_if_9 of+                                                                                                                                  Atom (B (True)) -> do return (Atom (B True))+                                                                                                                                  Atom (B (False)) -> do do return (Atom (B False))+                                                                                                                                  _ -> throwError "if: expected boolean"+                                                                                 pat_cond_10 = do do return (Atom (B False))+                                                                              in case kl_V3846 of+                                                                                     !(kl_V3846@(Cons (!kl_V3846h)+                                                                                                      (!kl_V3846t))) -> pat_cond_7 kl_V3846 kl_V3846h kl_V3846t+                                                                                     _ -> pat_cond_10+                                                                 case kl_if_6 of+                                                                     Atom (B (True)) -> do !appl_11 <- kl_V3846 `pseq` tl kl_V3846+                                                                                           appl_11 `pseq` kl_shen_trim_gubbins appl_11+                                                                     Atom (B (False)) -> do !kl_if_12 <- let pat_cond_13 kl_V3846 kl_V3846h kl_V3846t = do !appl_14 <- kl_shen_carriage_return+                                                                                                                                                           !kl_if_15 <- kl_V3846h `pseq` (appl_14 `pseq` eq kl_V3846h appl_14)+                                                                                                                                                           case kl_if_15 of+                                                                                                                                                               Atom (B (True)) -> do return (Atom (B True))+                                                                                                                                                               Atom (B (False)) -> do do return (Atom (B False))+                                                                                                                                                               _ -> throwError "if: expected boolean"+                                                                                                             pat_cond_16 = do do return (Atom (B False))+                                                                                                          in case kl_V3846 of+                                                                                                                 !(kl_V3846@(Cons (!kl_V3846h)+                                                                                                                                  (!kl_V3846t))) -> pat_cond_13 kl_V3846 kl_V3846h kl_V3846t+                                                                                                                 _ -> pat_cond_16+                                                                                            case kl_if_12 of+                                                                                                Atom (B (True)) -> do !appl_17 <- kl_V3846 `pseq` tl kl_V3846+                                                                                                                      appl_17 `pseq` kl_shen_trim_gubbins appl_17+                                                                                                Atom (B (False)) -> do !kl_if_18 <- let pat_cond_19 kl_V3846 kl_V3846h kl_V3846t = do !appl_20 <- kl_shen_tab+                                                                                                                                                                                      !kl_if_21 <- kl_V3846h `pseq` (appl_20 `pseq` eq kl_V3846h appl_20)+                                                                                                                                                                                      case kl_if_21 of+                                                                                                                                                                                          Atom (B (True)) -> do return (Atom (B True))+                                                                                                                                                                                          Atom (B (False)) -> do do return (Atom (B False))+                                                                                                                                                                                          _ -> throwError "if: expected boolean"+                                                                                                                                        pat_cond_22 = do do return (Atom (B False))+                                                                                                                                     in case kl_V3846 of+                                                                                                                                            !(kl_V3846@(Cons (!kl_V3846h)+                                                                                                                                                             (!kl_V3846t))) -> pat_cond_19 kl_V3846 kl_V3846h kl_V3846t+                                                                                                                                            _ -> pat_cond_22+                                                                                                                       case kl_if_18 of+                                                                                                                           Atom (B (True)) -> do !appl_23 <- kl_V3846 `pseq` tl kl_V3846+                                                                                                                                                 appl_23 `pseq` kl_shen_trim_gubbins appl_23+                                                                                                                           Atom (B (False)) -> do !kl_if_24 <- let pat_cond_25 kl_V3846 kl_V3846h kl_V3846t = do !appl_26 <- kl_shen_left_round+                                                                                                                                                                                                                 !kl_if_27 <- kl_V3846h `pseq` (appl_26 `pseq` eq kl_V3846h appl_26)+                                                                                                                                                                                                                 case kl_if_27 of+                                                                                                                                                                                                                     Atom (B (True)) -> do return (Atom (B True))+                                                                                                                                                                                                                     Atom (B (False)) -> do do return (Atom (B False))+                                                                                                                                                                                                                     _ -> throwError "if: expected boolean"+                                                                                                                                                                   pat_cond_28 = do do return (Atom (B False))+                                                                                                                                                                in case kl_V3846 of+                                                                                                                                                                       !(kl_V3846@(Cons (!kl_V3846h)+                                                                                                                                                                                        (!kl_V3846t))) -> pat_cond_25 kl_V3846 kl_V3846h kl_V3846t+                                                                                                                                                                       _ -> pat_cond_28+                                                                                                                                                  case kl_if_24 of+                                                                                                                                                      Atom (B (True)) -> do !appl_29 <- kl_V3846 `pseq` tl kl_V3846+                                                                                                                                                                            appl_29 `pseq` kl_shen_trim_gubbins appl_29+                                                                                                                                                      Atom (B (False)) -> do do return kl_V3846+                                                                                                                                                      _ -> throwError "if: expected boolean"+                                                                                                                           _ -> throwError "if: expected boolean"+                                                                                                _ -> throwError "if: expected boolean"+                                                                     _ -> throwError "if: expected boolean"+                                          _ -> throwError "if: expected boolean"++kl_shen_space :: Core.Types.KLContext Core.Types.Env+                                      Core.Types.KLValue+kl_shen_space = do return (Core.Types.Atom (Core.Types.N (Core.Types.KI 32)))++kl_shen_tab :: Core.Types.KLContext Core.Types.Env+                                    Core.Types.KLValue+kl_shen_tab = do return (Core.Types.Atom (Core.Types.N (Core.Types.KI 9)))++kl_shen_left_round :: Core.Types.KLContext Core.Types.Env+                                           Core.Types.KLValue+kl_shen_left_round = do return (Core.Types.Atom (Core.Types.N (Core.Types.KI 40)))++kl_shen_find :: Core.Types.KLValue ->+                Core.Types.KLValue ->+                Core.Types.KLContext Core.Types.Env Core.Types.KLValue+kl_shen_find (!kl_V3855) (!kl_V3856) = do let !appl_0 = Atom Nil+                                          !kl_if_1 <- appl_0 `pseq` (kl_V3856 `pseq` eq appl_0 kl_V3856)+                                          case kl_if_1 of+                                              Atom (B (True)) -> do return (Atom Nil)+                                              Atom (B (False)) -> do !kl_if_2 <- let pat_cond_3 kl_V3856 kl_V3856h kl_V3856t = do !kl_if_4 <- kl_V3856h `pseq` applyWrapper kl_V3855 [kl_V3856h]+                                                                                                                                  case kl_if_4 of+                                                                                                                                      Atom (B (True)) -> do return (Atom (B True))+                                                                                                                                      Atom (B (False)) -> do do return (Atom (B False))+                                                                                                                                      _ -> throwError "if: expected boolean"+                                                                                     pat_cond_5 = do do return (Atom (B False))+                                                                                  in case kl_V3856 of+                                                                                         !(kl_V3856@(Cons (!kl_V3856h)+                                                                                                          (!kl_V3856t))) -> pat_cond_3 kl_V3856 kl_V3856h kl_V3856t+                                                                                         _ -> pat_cond_5+                                                                     case kl_if_2 of+                                                                         Atom (B (True)) -> do !appl_6 <- kl_V3856 `pseq` hd kl_V3856+                                                                                               !appl_7 <- kl_V3856 `pseq` tl kl_V3856+                                                                                               !appl_8 <- kl_V3855 `pseq` (appl_7 `pseq` kl_shen_find kl_V3855 appl_7)+                                                                                               appl_6 `pseq` (appl_8 `pseq` klCons appl_6 appl_8)+                                                                         Atom (B (False)) -> do let pat_cond_9 kl_V3856 kl_V3856h kl_V3856t = do kl_V3855 `pseq` (kl_V3856t `pseq` kl_shen_find kl_V3855 kl_V3856t)+                                                                                                    pat_cond_10 = do do let !aw_11 = Core.Types.Atom (Core.Types.UnboundSym "shen.f_error")+                                                                                                                        applyWrapper aw_11 [ApplC (wrapNamed "shen.find" kl_shen_find)]+                                                                                                 in case kl_V3856 of+                                                                                                        !(kl_V3856@(Cons (!kl_V3856h)+                                                                                                                         (!kl_V3856t))) -> pat_cond_9 kl_V3856 kl_V3856h kl_V3856t+                                                                                                        _ -> pat_cond_10+                                                                         _ -> throwError "if: expected boolean"+                                              _ -> throwError "if: expected boolean"++kl_shen_prefixP :: Core.Types.KLValue ->+                   Core.Types.KLValue ->+                   Core.Types.KLContext Core.Types.Env Core.Types.KLValue+kl_shen_prefixP (!kl_V3870) (!kl_V3871) = do let !appl_0 = Atom Nil+                                             !kl_if_1 <- appl_0 `pseq` (kl_V3870 `pseq` eq appl_0 kl_V3870)+                                             case kl_if_1 of+                                                 Atom (B (True)) -> do return (Atom (B True))+                                                 Atom (B (False)) -> do !kl_if_2 <- let pat_cond_3 kl_V3870 kl_V3870h kl_V3870t = do let pat_cond_4 kl_V3871 kl_V3871h kl_V3871t = do return (Atom (B True))+                                                                                                                                         pat_cond_5 = do do return (Atom (B False))+                                                                                                                                      in case kl_V3871 of+                                                                                                                                             !(kl_V3871@(Cons (!kl_V3871h)+                                                                                                                                                              (!kl_V3871t))) | eqCore kl_V3871h kl_V3870h -> pat_cond_4 kl_V3871 kl_V3871h kl_V3871t+                                                                                                                                             _ -> pat_cond_5+                                                                                        pat_cond_6 = do do return (Atom (B False))+                                                                                     in case kl_V3870 of+                                                                                            !(kl_V3870@(Cons (!kl_V3870h)+                                                                                                             (!kl_V3870t))) -> pat_cond_3 kl_V3870 kl_V3870h kl_V3870t+                                                                                            _ -> pat_cond_6+                                                                        case kl_if_2 of+                                                                            Atom (B (True)) -> do !appl_7 <- kl_V3870 `pseq` tl kl_V3870+                                                                                                  !appl_8 <- kl_V3871 `pseq` tl kl_V3871+                                                                                                  appl_7 `pseq` (appl_8 `pseq` kl_shen_prefixP appl_7 appl_8)+                                                                            Atom (B (False)) -> do do return (Atom (B False))+                                                                            _ -> throwError "if: expected boolean"+                                                 _ -> throwError "if: expected boolean"++kl_shen_print_past_inputs :: Core.Types.KLValue ->+                             Core.Types.KLValue ->+                             Core.Types.KLValue ->+                             Core.Types.KLContext Core.Types.Env Core.Types.KLValue+kl_shen_print_past_inputs (!kl_V3883) (!kl_V3884) (!kl_V3885) = do let !appl_0 = Atom Nil+                                                                   !kl_if_1 <- appl_0 `pseq` (kl_V3884 `pseq` eq appl_0 kl_V3884)+                                                                   case kl_if_1 of+                                                                       Atom (B (True)) -> do return (Core.Types.Atom (Core.Types.UnboundSym "_"))+                                                                       Atom (B (False)) -> do !kl_if_2 <- let pat_cond_3 kl_V3884 kl_V3884h kl_V3884t = do !appl_4 <- kl_V3884h `pseq` applyWrapper kl_V3883 [kl_V3884h]+                                                                                                                                                           let !aw_5 = Core.Types.Atom (Core.Types.UnboundSym "not")+                                                                                                                                                           !kl_if_6 <- appl_4 `pseq` applyWrapper aw_5 [appl_4]+                                                                                                                                                           case kl_if_6 of+                                                                                                                                                               Atom (B (True)) -> do return (Atom (B True))+                                                                                                                                                               Atom (B (False)) -> do do return (Atom (B False))+                                                                                                                                                               _ -> throwError "if: expected boolean"+                                                                                                              pat_cond_7 = do do return (Atom (B False))+                                                                                                           in case kl_V3884 of+                                                                                                                  !(kl_V3884@(Cons (!kl_V3884h)+                                                                                                                                   (!kl_V3884t))) -> pat_cond_3 kl_V3884 kl_V3884h kl_V3884t+                                                                                                                  _ -> pat_cond_7+                                                                                              case kl_if_2 of+                                                                                                  Atom (B (True)) -> do !appl_8 <- kl_V3884 `pseq` tl kl_V3884+                                                                                                                        !appl_9 <- kl_V3885 `pseq` add kl_V3885 (Core.Types.Atom (Core.Types.N (Core.Types.KI 1)))+                                                                                                                        kl_V3883 `pseq` (appl_8 `pseq` (appl_9 `pseq` kl_shen_print_past_inputs kl_V3883 appl_8 appl_9))+                                                                                                  Atom (B (False)) -> do !kl_if_10 <- let pat_cond_11 kl_V3884 kl_V3884h kl_V3884t = do let !aw_12 = Core.Types.Atom (Core.Types.UnboundSym "tuple?")+                                                                                                                                                                                        !kl_if_13 <- kl_V3884h `pseq` applyWrapper aw_12 [kl_V3884h]+                                                                                                                                                                                        case kl_if_13 of+                                                                                                                                                                                            Atom (B (True)) -> do return (Atom (B True))+                                                                                                                                                                                            Atom (B (False)) -> do do return (Atom (B False))+                                                                                                                                                                                            _ -> throwError "if: expected boolean"+                                                                                                                                          pat_cond_14 = do do return (Atom (B False))+                                                                                                                                       in case kl_V3884 of+                                                                                                                                              !(kl_V3884@(Cons (!kl_V3884h)+                                                                                                                                                               (!kl_V3884t))) -> pat_cond_11 kl_V3884 kl_V3884h kl_V3884t+                                                                                                                                              _ -> pat_cond_14+                                                                                                                         case kl_if_10 of+                                                                                                                             Atom (B (True)) -> do let !aw_15 = Core.Types.Atom (Core.Types.UnboundSym "shen.app")+                                                                                                                                                   !appl_16 <- kl_V3885 `pseq` applyWrapper aw_15 [kl_V3885,+                                                                                                                                                                                                   Core.Types.Atom (Core.Types.Str ". "),+                                                                                                                                                                                                   Core.Types.Atom (Core.Types.UnboundSym "shen.a")]+                                                                                                                                                   let !aw_17 = Core.Types.Atom (Core.Types.UnboundSym "stoutput")+                                                                                                                                                   !appl_18 <- applyWrapper aw_17 []+                                                                                                                                                   let !aw_19 = Core.Types.Atom (Core.Types.UnboundSym "shen.prhush")+                                                                                                                                                   !appl_20 <- appl_16 `pseq` (appl_18 `pseq` applyWrapper aw_19 [appl_16,+                                                                                                                                                                                                                  appl_18])+                                                                                                                                                   !appl_21 <- kl_V3884 `pseq` hd kl_V3884+                                                                                                                                                   let !aw_22 = Core.Types.Atom (Core.Types.UnboundSym "snd")+                                                                                                                                                   !appl_23 <- appl_21 `pseq` applyWrapper aw_22 [appl_21]+                                                                                                                                                   !appl_24 <- appl_23 `pseq` kl_shen_prbytes appl_23+                                                                                                                                                   !appl_25 <- kl_V3884 `pseq` tl kl_V3884+                                                                                                                                                   !appl_26 <- kl_V3885 `pseq` add kl_V3885 (Core.Types.Atom (Core.Types.N (Core.Types.KI 1)))+                                                                                                                                                   !appl_27 <- kl_V3883 `pseq` (appl_25 `pseq` (appl_26 `pseq` kl_shen_print_past_inputs kl_V3883 appl_25 appl_26))+                                                                                                                                                   let !aw_28 = Core.Types.Atom (Core.Types.UnboundSym "do")+                                                                                                                                                   !appl_29 <- appl_24 `pseq` (appl_27 `pseq` applyWrapper aw_28 [appl_24,+                                                                                                                                                                                                                  appl_27])+                                                                                                                                                   let !aw_30 = Core.Types.Atom (Core.Types.UnboundSym "do")+                                                                                                                                                   appl_20 `pseq` (appl_29 `pseq` applyWrapper aw_30 [appl_20,+                                                                                                                                                                                                      appl_29])+                                                                                                                             Atom (B (False)) -> do do let !aw_31 = Core.Types.Atom (Core.Types.UnboundSym "shen.f_error")+                                                                                                                                                       applyWrapper aw_31 [ApplC (wrapNamed "shen.print-past-inputs" kl_shen_print_past_inputs)]+                                                                                                                             _ -> throwError "if: expected boolean"+                                                                                                  _ -> throwError "if: expected boolean"+                                                                       _ -> throwError "if: expected boolean"++kl_shen_toplevel_evaluate :: Core.Types.KLValue ->+                             Core.Types.KLValue ->+                             Core.Types.KLContext Core.Types.Env Core.Types.KLValue+kl_shen_toplevel_evaluate (!kl_V3888) (!kl_V3889) = do !kl_if_0 <- let pat_cond_1 kl_V3888 kl_V3888h kl_V3888t = do !kl_if_2 <- let pat_cond_3 kl_V3888t kl_V3888th kl_V3888tt = do !kl_if_4 <- let pat_cond_5 = do !kl_if_6 <- let pat_cond_7 kl_V3888tt kl_V3888tth kl_V3888ttt = do let !appl_8 = Atom Nil+                                                                                                                                                                                                                                                                                       !kl_if_9 <- appl_8 `pseq` (kl_V3888ttt `pseq` eq appl_8 kl_V3888ttt)+                                                                                                                                                                                                                                                                                       !kl_if_10 <- case kl_if_9 of+                                                                                                                                                                                                                                                                                                        Atom (B (True)) -> do let pat_cond_11 = do return (Atom (B True))+                                                                                                                                                                                                                                                                                                                                  pat_cond_12 = do do return (Atom (B False))+                                                                                                                                                                                                                                                                                                                               in case kl_V3889 of+                                                                                                                                                                                                                                                                                                                                      kl_V3889@(Atom (UnboundSym "true")) -> pat_cond_11+                                                                                                                                                                                                                                                                                                                                      kl_V3889@(Atom (B (True))) -> pat_cond_11+                                                                                                                                                                                                                                                                                                                                      _ -> pat_cond_12+                                                                                                                                                                                                                                                                                                        Atom (B (False)) -> do do return (Atom (B False))+                                                                                                                                                                                                                                                                                                        _ -> throwError "if: expected boolean"+                                                                                                                                                                                                                                                                                       case kl_if_10 of+                                                                                                                                                                                                                                                                                           Atom (B (True)) -> do return (Atom (B True))+                                                                                                                                                                                                                                                                                           Atom (B (False)) -> do do return (Atom (B False))+                                                                                                                                                                                                                                                                                           _ -> throwError "if: expected boolean"+                                                                                                                                                                                                                                    pat_cond_13 = do do return (Atom (B False))+                                                                                                                                                                                                                                 in case kl_V3888tt of+                                                                                                                                                                                                                                        !(kl_V3888tt@(Cons (!kl_V3888tth)+                                                                                                                                                                                                                                                           (!kl_V3888ttt))) -> pat_cond_7 kl_V3888tt kl_V3888tth kl_V3888ttt+                                                                                                                                                                                                                                        _ -> pat_cond_13+                                                                                                                                                                                                                    case kl_if_6 of+                                                                                                                                                                                                                        Atom (B (True)) -> do return (Atom (B True))+                                                                                                                                                                                                                        Atom (B (False)) -> do do return (Atom (B False))+                                                                                                                                                                                                                        _ -> throwError "if: expected boolean"+                                                                                                                                                                                                    pat_cond_14 = do do return (Atom (B False))+                                                                                                                                                                                                 in case kl_V3888th of+                                                                                                                                                                                                        kl_V3888th@(Atom (UnboundSym ":")) -> pat_cond_5+                                                                                                                                                                                                        kl_V3888th@(ApplC (PL ":"+                                                                                                                                                                                                                              _)) -> pat_cond_5+                                                                                                                                                                                                        kl_V3888th@(ApplC (Func ":"+                                                                                                                                                                                                                                _)) -> pat_cond_5+                                                                                                                                                                                                        _ -> pat_cond_14+                                                                                                                                                                                    case kl_if_4 of+                                                                                                                                                                                        Atom (B (True)) -> do return (Atom (B True))+                                                                                                                                                                                        Atom (B (False)) -> do do return (Atom (B False))+                                                                                                                                                                                        _ -> throwError "if: expected boolean"+                                                                                                                                    pat_cond_15 = do do return (Atom (B False))+                                                                                                                                 in case kl_V3888t of+                                                                                                                                        !(kl_V3888t@(Cons (!kl_V3888th)+                                                                                                                                                          (!kl_V3888tt))) -> pat_cond_3 kl_V3888t kl_V3888th kl_V3888tt+                                                                                                                                        _ -> pat_cond_15+                                                                                                                    case kl_if_2 of+                                                                                                                        Atom (B (True)) -> do return (Atom (B True))+                                                                                                                        Atom (B (False)) -> do do return (Atom (B False))+                                                                                                                        _ -> throwError "if: expected boolean"+                                                                       pat_cond_16 = do do return (Atom (B False))+                                                                    in case kl_V3888 of+                                                                           !(kl_V3888@(Cons (!kl_V3888h)+                                                                                            (!kl_V3888t))) -> pat_cond_1 kl_V3888 kl_V3888h kl_V3888t+                                                                           _ -> pat_cond_16+                                                       case kl_if_0 of+                                                           Atom (B (True)) -> do !appl_17 <- kl_V3888 `pseq` hd kl_V3888+                                                                                 !appl_18 <- kl_V3888 `pseq` tl kl_V3888+                                                                                 !appl_19 <- appl_18 `pseq` tl appl_18+                                                                                 !appl_20 <- appl_19 `pseq` hd appl_19+                                                                                 appl_17 `pseq` (appl_20 `pseq` kl_shen_typecheck_and_evaluate appl_17 appl_20)+                                                           Atom (B (False)) -> do let pat_cond_21 kl_V3888 kl_V3888h kl_V3888t kl_V3888th kl_V3888tt = do let !appl_22 = Atom Nil+                                                                                                                                                          !appl_23 <- kl_V3888h `pseq` (appl_22 `pseq` klCons kl_V3888h appl_22)+                                                                                                                                                          !appl_24 <- appl_23 `pseq` (kl_V3889 `pseq` kl_shen_toplevel_evaluate appl_23 kl_V3889)+                                                                                                                                                          let !aw_25 = Core.Types.Atom (Core.Types.UnboundSym "nl")+                                                                                                                                                          !appl_26 <- applyWrapper aw_25 [Core.Types.Atom (Core.Types.N (Core.Types.KI 1))]+                                                                                                                                                          !appl_27 <- kl_V3888t `pseq` (kl_V3889 `pseq` kl_shen_toplevel_evaluate kl_V3888t kl_V3889)+                                                                                                                                                          let !aw_28 = Core.Types.Atom (Core.Types.UnboundSym "do")+                                                                                                                                                          !appl_29 <- appl_26 `pseq` (appl_27 `pseq` applyWrapper aw_28 [appl_26,+                                                                                                                                                                                                                         appl_27])+                                                                                                                                                          let !aw_30 = Core.Types.Atom (Core.Types.UnboundSym "do")+                                                                                                                                                          appl_24 `pseq` (appl_29 `pseq` applyWrapper aw_30 [appl_24,+                                                                                                                                                                                                             appl_29])+                                                                                      pat_cond_31 = do !kl_if_32 <- let pat_cond_33 kl_V3888 kl_V3888h kl_V3888t = do let !appl_34 = Atom Nil+                                                                                                                                                                      !kl_if_35 <- appl_34 `pseq` (kl_V3888t `pseq` eq appl_34 kl_V3888t)+                                                                                                                                                                      !kl_if_36 <- case kl_if_35 of+                                                                                                                                                                                       Atom (B (True)) -> do let pat_cond_37 = do return (Atom (B True))+                                                                                                                                                                                                                 pat_cond_38 = do do return (Atom (B False))+                                                                                                                                                                                                              in case kl_V3889 of+                                                                                                                                                                                                                     kl_V3889@(Atom (UnboundSym "true")) -> pat_cond_37+                                                                                                                                                                                                                     kl_V3889@(Atom (B (True))) -> pat_cond_37+                                                                                                                                                                                                                     _ -> pat_cond_38+                                                                                                                                                                                       Atom (B (False)) -> do do return (Atom (B False))+                                                                                                                                                                                       _ -> throwError "if: expected boolean"+                                                                                                                                                                      case kl_if_36 of+                                                                                                                                                                          Atom (B (True)) -> do return (Atom (B True))+                                                                                                                                                                          Atom (B (False)) -> do do return (Atom (B False))+                                                                                                                                                                          _ -> throwError "if: expected boolean"+                                                                                                                        pat_cond_39 = do do return (Atom (B False))+                                                                                                                     in case kl_V3888 of+                                                                                                                            !(kl_V3888@(Cons (!kl_V3888h)+                                                                                                                                             (!kl_V3888t))) -> pat_cond_33 kl_V3888 kl_V3888h kl_V3888t+                                                                                                                            _ -> pat_cond_39+                                                                                                       case kl_if_32 of+                                                                                                           Atom (B (True)) -> do !appl_40 <- kl_V3888 `pseq` hd kl_V3888+                                                                                                                                 let !aw_41 = Core.Types.Atom (Core.Types.UnboundSym "gensym")+                                                                                                                                 !appl_42 <- applyWrapper aw_41 [Core.Types.Atom (Core.Types.UnboundSym "A")]+                                                                                                                                 appl_40 `pseq` (appl_42 `pseq` kl_shen_typecheck_and_evaluate appl_40 appl_42)+                                                                                                           Atom (B (False)) -> do !kl_if_43 <- let pat_cond_44 kl_V3888 kl_V3888h kl_V3888t = do let !appl_45 = Atom Nil+                                                                                                                                                                                                 !kl_if_46 <- appl_45 `pseq` (kl_V3888t `pseq` eq appl_45 kl_V3888t)+                                                                                                                                                                                                 !kl_if_47 <- case kl_if_46 of+                                                                                                                                                                                                                  Atom (B (True)) -> do let pat_cond_48 = do return (Atom (B True))+                                                                                                                                                                                                                                            pat_cond_49 = do do return (Atom (B False))+                                                                                                                                                                                                                                         in case kl_V3889 of+                                                                                                                                                                                                                                                kl_V3889@(Atom (UnboundSym "false")) -> pat_cond_48+                                                                                                                                                                                                                                                kl_V3889@(Atom (B (False))) -> pat_cond_48+                                                                                                                                                                                                                                                _ -> pat_cond_49+                                                                                                                                                                                                                  Atom (B (False)) -> do do return (Atom (B False))+                                                                                                                                                                                                                  _ -> throwError "if: expected boolean"+                                                                                                                                                                                                 case kl_if_47 of+                                                                                                                                                                                                     Atom (B (True)) -> do return (Atom (B True))+                                                                                                                                                                                                     Atom (B (False)) -> do do return (Atom (B False))+                                                                                                                                                                                                     _ -> throwError "if: expected boolean"+                                                                                                                                                   pat_cond_50 = do do return (Atom (B False))+                                                                                                                                                in case kl_V3888 of+                                                                                                                                                       !(kl_V3888@(Cons (!kl_V3888h)+                                                                                                                                                                        (!kl_V3888t))) -> pat_cond_44 kl_V3888 kl_V3888h kl_V3888t+                                                                                                                                                       _ -> pat_cond_50+                                                                                                                                  case kl_if_43 of+                                                                                                                                      Atom (B (True)) -> do let !appl_51 = ApplC (Func "lambda" (Context (\(!kl_Eval) -> do let !aw_52 = Core.Types.Atom (Core.Types.UnboundSym "print")+                                                                                                                                                                                                                            kl_Eval `pseq` applyWrapper aw_52 [kl_Eval])))+                                                                                                                                                            !appl_53 <- kl_V3888 `pseq` hd kl_V3888+                                                                                                                                                            let !aw_54 = Core.Types.Atom (Core.Types.UnboundSym "shen.eval-without-macros")+                                                                                                                                                            !appl_55 <- appl_53 `pseq` applyWrapper aw_54 [appl_53]+                                                                                                                                                            appl_55 `pseq` applyWrapper appl_51 [appl_55]+                                                                                                                                      Atom (B (False)) -> do do let !aw_56 = Core.Types.Atom (Core.Types.UnboundSym "shen.f_error")+                                                                                                                                                                applyWrapper aw_56 [ApplC (wrapNamed "shen.toplevel_evaluate" kl_shen_toplevel_evaluate)]+                                                                                                                                      _ -> throwError "if: expected boolean"+                                                                                                           _ -> throwError "if: expected boolean"+                                                                                   in case kl_V3888 of+                                                                                          !(kl_V3888@(Cons (!kl_V3888h)+                                                                                                           (!(kl_V3888t@(Cons (!kl_V3888th)+                                                                                                                              (!kl_V3888tt)))))) -> pat_cond_21 kl_V3888 kl_V3888h kl_V3888t kl_V3888th kl_V3888tt+                                                                                          _ -> pat_cond_31+                                                           _ -> throwError "if: expected boolean"++kl_shen_typecheck_and_evaluate :: Core.Types.KLValue ->+                                  Core.Types.KLValue ->+                                  Core.Types.KLContext Core.Types.Env Core.Types.KLValue+kl_shen_typecheck_and_evaluate (!kl_V3892) (!kl_V3893) = do let !appl_0 = ApplC (Func "lambda" (Context (\(!kl_Typecheck) -> do let pat_cond_1 = do simpleError (Core.Types.Atom (Core.Types.Str "type error\n"))+                                                                                                                                    pat_cond_2 = do do let !appl_3 = ApplC (Func "lambda" (Context (\(!kl_Eval) -> do let !appl_4 = ApplC (Func "lambda" (Context (\(!kl_Type) -> do let !aw_5 = Core.Types.Atom (Core.Types.UnboundSym "shen.app")+                                                                                                                                                                                                                                                                                     !appl_6 <- kl_Type `pseq` applyWrapper aw_5 [kl_Type,+                                                                                                                                                                                                                                                                                                                                  Core.Types.Atom (Core.Types.Str ""),+                                                                                                                                                                                                                                                                                                                                  Core.Types.Atom (Core.Types.UnboundSym "shen.r")]+                                                                                                                                                                                                                                                                                     !appl_7 <- appl_6 `pseq` cn (Core.Types.Atom (Core.Types.Str " : ")) appl_6+                                                                                                                                                                                                                                                                                     let !aw_8 = Core.Types.Atom (Core.Types.UnboundSym "shen.app")+                                                                                                                                                                                                                                                                                     !appl_9 <- kl_Eval `pseq` (appl_7 `pseq` applyWrapper aw_8 [kl_Eval,+                                                                                                                                                                                                                                                                                                                                                 appl_7,+                                                                                                                                                                                                                                                                                                                                                 Core.Types.Atom (Core.Types.UnboundSym "shen.s")])+                                                                                                                                                                                                                                                                                     let !aw_10 = Core.Types.Atom (Core.Types.UnboundSym "stoutput")+                                                                                                                                                                                                                                                                                     !appl_11 <- applyWrapper aw_10 []+                                                                                                                                                                                                                                                                                     let !aw_12 = Core.Types.Atom (Core.Types.UnboundSym "shen.prhush")+                                                                                                                                                                                                                                                                                     appl_9 `pseq` (appl_11 `pseq` applyWrapper aw_12 [appl_9,+                                                                                                                                                                                                                                                                                                                                       appl_11]))))+                                                                                                                                                                                                                      !appl_13 <- kl_Typecheck `pseq` kl_shen_pretty_type kl_Typecheck+                                                                                                                                                                                                                      appl_13 `pseq` applyWrapper appl_4 [appl_13])))+                                                                                                                                                       let !aw_14 = Core.Types.Atom (Core.Types.UnboundSym "shen.eval-without-macros")+                                                                                                                                                       !appl_15 <- kl_V3892 `pseq` applyWrapper aw_14 [kl_V3892]+                                                                                                                                                       appl_15 `pseq` applyWrapper appl_3 [appl_15]+                                                                                                                                 in case kl_Typecheck of+                                                                                                                                        kl_Typecheck@(Atom (UnboundSym "false")) -> pat_cond_1+                                                                                                                                        kl_Typecheck@(Atom (B (False))) -> pat_cond_1+                                                                                                                                        _ -> pat_cond_2)))+                                                            let !aw_16 = Core.Types.Atom (Core.Types.UnboundSym "shen.typecheck")+                                                            !appl_17 <- kl_V3892 `pseq` (kl_V3893 `pseq` applyWrapper aw_16 [kl_V3892,+                                                                                                                             kl_V3893])+                                                            appl_17 `pseq` applyWrapper appl_0 [appl_17]++kl_shen_pretty_type :: Core.Types.KLValue ->+                       Core.Types.KLContext Core.Types.Env Core.Types.KLValue+kl_shen_pretty_type (!kl_V3895) = do !appl_0 <- value (Core.Types.Atom (Core.Types.UnboundSym "shen.*alphabet*"))+                                     !appl_1 <- kl_V3895 `pseq` kl_shen_extract_pvars kl_V3895+                                     appl_0 `pseq` (appl_1 `pseq` (kl_V3895 `pseq` kl_shen_mult_subst appl_0 appl_1 kl_V3895))++kl_shen_extract_pvars :: Core.Types.KLValue ->+                         Core.Types.KLContext Core.Types.Env Core.Types.KLValue+kl_shen_extract_pvars (!kl_V3901) = do let !aw_0 = Core.Types.Atom (Core.Types.UnboundSym "shen.pvar?")+                                       !kl_if_1 <- kl_V3901 `pseq` applyWrapper aw_0 [kl_V3901]+                                       case kl_if_1 of+                                           Atom (B (True)) -> do let !appl_2 = Atom Nil+                                                                 kl_V3901 `pseq` (appl_2 `pseq` klCons kl_V3901 appl_2)+                                           Atom (B (False)) -> do let pat_cond_3 kl_V3901 kl_V3901h kl_V3901t = do !appl_4 <- kl_V3901h `pseq` kl_shen_extract_pvars kl_V3901h+                                                                                                                   !appl_5 <- kl_V3901t `pseq` kl_shen_extract_pvars kl_V3901t+                                                                                                                   let !aw_6 = Core.Types.Atom (Core.Types.UnboundSym "union")+                                                                                                                   appl_4 `pseq` (appl_5 `pseq` applyWrapper aw_6 [appl_4,+                                                                                                                                                                   appl_5])+                                                                      pat_cond_7 = do do return (Atom Nil)+                                                                   in case kl_V3901 of+                                                                          !(kl_V3901@(Cons (!kl_V3901h)+                                                                                           (!kl_V3901t))) -> pat_cond_3 kl_V3901 kl_V3901h kl_V3901t+                                                                          _ -> pat_cond_7+                                           _ -> throwError "if: expected boolean"++kl_shen_mult_subst :: Core.Types.KLValue ->+                      Core.Types.KLValue ->+                      Core.Types.KLValue ->+                      Core.Types.KLContext Core.Types.Env Core.Types.KLValue+kl_shen_mult_subst (!kl_V3909) (!kl_V3910) (!kl_V3911) = do let !appl_0 = Atom Nil+                                                            !kl_if_1 <- appl_0 `pseq` (kl_V3909 `pseq` eq appl_0 kl_V3909)+                                                            case kl_if_1 of+                                                                Atom (B (True)) -> do return kl_V3911+                                                                Atom (B (False)) -> do let !appl_2 = Atom Nil+                                                                                       !kl_if_3 <- appl_2 `pseq` (kl_V3910 `pseq` eq appl_2 kl_V3910)+                                                                                       case kl_if_3 of+                                                                                           Atom (B (True)) -> do return kl_V3911+                                                                                           Atom (B (False)) -> do !kl_if_4 <- let pat_cond_5 kl_V3909 kl_V3909h kl_V3909t = do let pat_cond_6 kl_V3910 kl_V3910h kl_V3910t = do return (Atom (B True))+                                                                                                                                                                                   pat_cond_7 = do do return (Atom (B False))+                                                                                                                                                                                in case kl_V3910 of+                                                                                                                                                                                       !(kl_V3910@(Cons (!kl_V3910h)+                                                                                                                                                                                                        (!kl_V3910t))) -> pat_cond_6 kl_V3910 kl_V3910h kl_V3910t+                                                                                                                                                                                       _ -> pat_cond_7+                                                                                                                                  pat_cond_8 = do do return (Atom (B False))+                                                                                                                               in case kl_V3909 of+                                                                                                                                      !(kl_V3909@(Cons (!kl_V3909h)+                                                                                                                                                       (!kl_V3909t))) -> pat_cond_5 kl_V3909 kl_V3909h kl_V3909t+                                                                                                                                      _ -> pat_cond_8+                                                                                                                  case kl_if_4 of+                                                                                                                      Atom (B (True)) -> do !appl_9 <- kl_V3909 `pseq` tl kl_V3909+                                                                                                                                            !appl_10 <- kl_V3910 `pseq` tl kl_V3910+                                                                                                                                            !appl_11 <- kl_V3909 `pseq` hd kl_V3909+                                                                                                                                            !appl_12 <- kl_V3910 `pseq` hd kl_V3910+                                                                                                                                            let !aw_13 = Core.Types.Atom (Core.Types.UnboundSym "subst")+                                                                                                                                            !appl_14 <- appl_11 `pseq` (appl_12 `pseq` (kl_V3911 `pseq` applyWrapper aw_13 [appl_11,+                                                                                                                                                                                                                            appl_12,+                                                                                                                                                                                                                            kl_V3911]))+                                                                                                                                            appl_9 `pseq` (appl_10 `pseq` (appl_14 `pseq` kl_shen_mult_subst appl_9 appl_10 appl_14))+                                                                                                                      Atom (B (False)) -> do do let !aw_15 = Core.Types.Atom (Core.Types.UnboundSym "shen.f_error")+                                                                                                                                                applyWrapper aw_15 [ApplC (wrapNamed "shen.mult_subst" kl_shen_mult_subst)]+                                                                                                                      _ -> throwError "if: expected boolean"+                                                                                           _ -> throwError "if: expected boolean"+                                                                _ -> throwError "if: expected boolean"++expr0 :: Core.Types.KLContext Core.Types.Env Core.Types.KLValue+expr0 = do (do return (Core.Types.Atom (Core.Types.Str "Copyright (c) 2015, Mark Tarver\n\nAll rights reserved.\n\nRedistribution and use in source and binary forms, with or without\nmodification, are permitted provided that the following conditions are met:\n1. Redistributions of source code must retain the above copyright\n   notice, this list of conditions and the following disclaimer.\n2. Redistributions in binary form must reproduce the above copyright\n   notice, this list of conditions and the following disclaimer in the\n   documentation and/or other materials provided with the distribution.\n3. The name of Mark Tarver may not be used to endorse or promote products\n   derived from this software without specific prior written permission.\n\nTHIS SOFTWARE IS PROVIDED BY Mark Tarver ''AS IS'' AND ANY\nEXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED\nWARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE\nDISCLAIMED. IN NO EVENT SHALL Mark Tarver BE LIABLE FOR ANY\nDIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES\n(INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;\nLOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND\nON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT\n(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS\nSOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE."))) `catchError` (\(!kl_E) -> do return (Core.Types.Atom (Core.Types.Str "E")))+           (do klSet (Core.Types.Atom (Core.Types.UnboundSym "shen.*continue-repl-loop*")) (Atom (B True))) `catchError` (\(!kl_E) -> do return (Core.Types.Atom (Core.Types.Str "E")))+           (do let !appl_0 = Atom Nil+               appl_0 `pseq` klSet (Core.Types.Atom (Core.Types.UnboundSym "shen.*history*")) appl_0) `catchError` (\(!kl_E) -> do return (Core.Types.Atom (Core.Types.Str "E")))
Shentong/Backend/Track.hs view
@@ -1,443 +1,598 @@-{-# LANGUAGE BangPatterns #-}
-{-# LANGUAGE OverloadedStrings #-}
-{-# LANGUAGE Strict #-}
-{-# LANGUAGE StrictData #-}
-{-# LANGUAGE ViewPatterns #-}
-
-module Backend.Track where
-
-import Control.Monad.Except
-import Control.Parallel
-import Environment
-import Primitives as Primitives
-import Backend.Utils
-import Types as Types
-import Utils
-import Wrap
-import Backend.Toplevel
-import Backend.Core
-import Backend.Sys
-import Backend.Sequent
-import Backend.Yacc
-import Backend.Reader
-import Backend.Prolog
-
-{-
-Copyright (c) 2015, Mark Tarver
-All rights reserved.
-
-Redistribution and use in source and binary forms, with or without
-modification, are permitted provided that the following conditions are met:
-
-1. Redistributions of source code must retain the above copyright
-   notice, this list of conditions and the following disclaimer.
-2. Redistributions in binary form must reproduce the above copyright
-   notice, this list of conditions and the following disclaimer in the
-   documentation and/or other materials provided with the distribution.
-3. The name of Mark Tarver may not be used to endorse or promote products
-   derived from this software without specific prior written permission.
-
-THIS SOFTWARE IS PROVIDED BY Mark Tarver ''AS IS'' AND ANY
-EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
-WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
-DISCLAIMED. IN NO EVENT SHALL Mark Tarver BE LIABLE FOR ANY
-DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
-(INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
-LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND
-ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
-(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
-SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
--}
-
-kl_shen_f_error :: Types.KLValue ->
-                   Types.KLContext Types.Env Types.KLValue
-kl_shen_f_error (!kl_V3779) = do let !aw_0 = Types.Atom (Types.UnboundSym "shen.app")
-                                 !appl_1 <- kl_V3779 `pseq` applyWrapper aw_0 [kl_V3779,
-                                                                               Types.Atom (Types.Str ";\n"),
-                                                                               Types.Atom (Types.UnboundSym "shen.a")]
-                                 !appl_2 <- appl_1 `pseq` cn (Types.Atom (Types.Str "partial function ")) appl_1
-                                 !appl_3 <- kl_stoutput
-                                 let !aw_4 = Types.Atom (Types.UnboundSym "shen.prhush")
-                                 !appl_5 <- appl_2 `pseq` (appl_3 `pseq` applyWrapper aw_4 [appl_2,
-                                                                                            appl_3])
-                                 !appl_6 <- kl_V3779 `pseq` kl_shen_trackedP kl_V3779
-                                 !kl_if_7 <- appl_6 `pseq` kl_not appl_6
-                                 !kl_if_8 <- case kl_if_7 of
-                                                 Atom (B (True)) -> do let !aw_9 = Types.Atom (Types.UnboundSym "shen.app")
-                                                                       !appl_10 <- kl_V3779 `pseq` applyWrapper aw_9 [kl_V3779,
-                                                                                                                      Types.Atom (Types.Str "? "),
-                                                                                                                      Types.Atom (Types.UnboundSym "shen.a")]
-                                                                       !appl_11 <- appl_10 `pseq` cn (Types.Atom (Types.Str "track ")) appl_10
-                                                                       !kl_if_12 <- appl_11 `pseq` kl_y_or_nP appl_11
-                                                                       case kl_if_12 of
-                                                                           Atom (B (True)) -> do return (Atom (B True))
-                                                                           Atom (B (False)) -> do do return (Atom (B False))
-                                                                           _ -> throwError "if: expected boolean"
-                                                 Atom (B (False)) -> do do return (Atom (B False))
-                                                 _ -> throwError "if: expected boolean"
-                                 !appl_13 <- case kl_if_8 of
-                                                 Atom (B (True)) -> do !appl_14 <- kl_V3779 `pseq` kl_ps kl_V3779
-                                                                       appl_14 `pseq` kl_shen_track_function appl_14
-                                                 Atom (B (False)) -> do do return (Types.Atom (Types.UnboundSym "shen.ok"))
-                                                 _ -> throwError "if: expected boolean"
-                                 !appl_15 <- simpleError (Types.Atom (Types.Str "aborted"))
-                                 !appl_16 <- appl_13 `pseq` (appl_15 `pseq` kl_do appl_13 appl_15)
-                                 appl_5 `pseq` (appl_16 `pseq` kl_do appl_5 appl_16)
-
-kl_shen_trackedP :: Types.KLValue ->
-                    Types.KLContext Types.Env Types.KLValue
-kl_shen_trackedP (!kl_V3781) = do !appl_0 <- value (Types.Atom (Types.UnboundSym "shen.*tracking*"))
-                                  kl_V3781 `pseq` (appl_0 `pseq` kl_elementP kl_V3781 appl_0)
-
-kl_track :: Types.KLValue ->
-            Types.KLContext Types.Env Types.KLValue
-kl_track (!kl_V3783) = do let !appl_0 = ApplC (Func "lambda" (Context (\(!kl_Source) -> do kl_Source `pseq` kl_shen_track_function kl_Source)))
-                          !appl_1 <- kl_V3783 `pseq` kl_ps kl_V3783
-                          appl_1 `pseq` applyWrapper appl_0 [appl_1]
-
-kl_shen_track_function :: Types.KLValue ->
-                          Types.KLContext Types.Env Types.KLValue
-kl_shen_track_function (!kl_V3785) = do let pat_cond_0 kl_V3785 kl_V3785t kl_V3785th kl_V3785tt kl_V3785tth kl_V3785ttt kl_V3785ttth = do let !appl_1 = ApplC (Func "lambda" (Context (\(!kl_KL) -> do let !appl_2 = ApplC (Func "lambda" (Context (\(!kl_Ob) -> do let !appl_3 = ApplC (Func "lambda" (Context (\(!kl_Tr) -> do return kl_Ob)))
-                                                                                                                                                                                                                                                                    !appl_4 <- value (Types.Atom (Types.UnboundSym "shen.*tracking*"))
-                                                                                                                                                                                                                                                                    !appl_5 <- kl_Ob `pseq` (appl_4 `pseq` klCons kl_Ob appl_4)
-                                                                                                                                                                                                                                                                    !appl_6 <- appl_5 `pseq` klSet (Types.Atom (Types.UnboundSym "shen.*tracking*")) appl_5
-                                                                                                                                                                                                                                                                    appl_6 `pseq` applyWrapper appl_3 [appl_6])))
-                                                                                                                                                                                                       !appl_7 <- kl_KL `pseq` evalKL kl_KL
-                                                                                                                                                                                                       appl_7 `pseq` applyWrapper appl_2 [appl_7])))
-                                                                                                                                          !appl_8 <- kl_V3785th `pseq` (kl_V3785tth `pseq` (kl_V3785ttth `pseq` kl_shen_insert_tracking_code kl_V3785th kl_V3785tth kl_V3785ttth))
-                                                                                                                                          !appl_9 <- appl_8 `pseq` klCons appl_8 (Types.Atom Types.Nil)
-                                                                                                                                          !appl_10 <- kl_V3785tth `pseq` (appl_9 `pseq` klCons kl_V3785tth appl_9)
-                                                                                                                                          !appl_11 <- kl_V3785th `pseq` (appl_10 `pseq` klCons kl_V3785th appl_10)
-                                                                                                                                          !appl_12 <- appl_11 `pseq` klCons (Types.Atom (Types.UnboundSym "defun")) appl_11
-                                                                                                                                          appl_12 `pseq` applyWrapper appl_1 [appl_12]
-                                            pat_cond_13 = do do kl_shen_f_error (ApplC (wrapNamed "shen.track-function" kl_shen_track_function))
-                                         in case kl_V3785 of
-                                                !(kl_V3785@(Cons (Atom (UnboundSym "defun"))
-                                                                 (!(kl_V3785t@(Cons (!kl_V3785th)
-                                                                                    (!(kl_V3785tt@(Cons (!kl_V3785tth)
-                                                                                                        (!(kl_V3785ttt@(Cons (!kl_V3785ttth)
-                                                                                                                             (Atom (Nil))))))))))))) -> pat_cond_0 kl_V3785 kl_V3785t kl_V3785th kl_V3785tt kl_V3785tth kl_V3785ttt kl_V3785ttth
-                                                !(kl_V3785@(Cons (ApplC (PL "defun" _))
-                                                                 (!(kl_V3785t@(Cons (!kl_V3785th)
-                                                                                    (!(kl_V3785tt@(Cons (!kl_V3785tth)
-                                                                                                        (!(kl_V3785ttt@(Cons (!kl_V3785ttth)
-                                                                                                                             (Atom (Nil))))))))))))) -> pat_cond_0 kl_V3785 kl_V3785t kl_V3785th kl_V3785tt kl_V3785tth kl_V3785ttt kl_V3785ttth
-                                                !(kl_V3785@(Cons (ApplC (Func "defun" _))
-                                                                 (!(kl_V3785t@(Cons (!kl_V3785th)
-                                                                                    (!(kl_V3785tt@(Cons (!kl_V3785tth)
-                                                                                                        (!(kl_V3785ttt@(Cons (!kl_V3785ttth)
-                                                                                                                             (Atom (Nil))))))))))))) -> pat_cond_0 kl_V3785 kl_V3785t kl_V3785th kl_V3785tt kl_V3785tth kl_V3785ttt kl_V3785ttth
-                                                _ -> pat_cond_13
-
-kl_shen_insert_tracking_code :: Types.KLValue ->
-                                Types.KLValue ->
-                                Types.KLValue -> Types.KLContext Types.Env Types.KLValue
-kl_shen_insert_tracking_code (!kl_V3789) (!kl_V3790) (!kl_V3791) = do !appl_0 <- klCons (Types.Atom (Types.UnboundSym "shen.*call*")) (Types.Atom Types.Nil)
-                                                                      !appl_1 <- appl_0 `pseq` klCons (ApplC (wrapNamed "value" value)) appl_0
-                                                                      !appl_2 <- klCons (Types.Atom (Types.N (Types.KI 1))) (Types.Atom Types.Nil)
-                                                                      !appl_3 <- appl_1 `pseq` (appl_2 `pseq` klCons appl_1 appl_2)
-                                                                      !appl_4 <- appl_3 `pseq` klCons (ApplC (wrapNamed "+" add)) appl_3
-                                                                      !appl_5 <- appl_4 `pseq` klCons appl_4 (Types.Atom Types.Nil)
-                                                                      !appl_6 <- appl_5 `pseq` klCons (Types.Atom (Types.UnboundSym "shen.*call*")) appl_5
-                                                                      !appl_7 <- appl_6 `pseq` klCons (ApplC (wrapNamed "set" klSet)) appl_6
-                                                                      !appl_8 <- klCons (Types.Atom (Types.UnboundSym "shen.*call*")) (Types.Atom Types.Nil)
-                                                                      !appl_9 <- appl_8 `pseq` klCons (ApplC (wrapNamed "value" value)) appl_8
-                                                                      !appl_10 <- kl_V3790 `pseq` kl_shen_cons_form kl_V3790
-                                                                      !appl_11 <- appl_10 `pseq` klCons appl_10 (Types.Atom Types.Nil)
-                                                                      !appl_12 <- kl_V3789 `pseq` (appl_11 `pseq` klCons kl_V3789 appl_11)
-                                                                      !appl_13 <- appl_9 `pseq` (appl_12 `pseq` klCons appl_9 appl_12)
-                                                                      !appl_14 <- appl_13 `pseq` klCons (ApplC (wrapNamed "shen.input-track" kl_shen_input_track)) appl_13
-                                                                      !appl_15 <- klCons (ApplC (PL "shen.terpri-or-read-char" kl_shen_terpri_or_read_char)) (Types.Atom Types.Nil)
-                                                                      !appl_16 <- klCons (Types.Atom (Types.UnboundSym "shen.*call*")) (Types.Atom Types.Nil)
-                                                                      !appl_17 <- appl_16 `pseq` klCons (ApplC (wrapNamed "value" value)) appl_16
-                                                                      !appl_18 <- klCons (Types.Atom (Types.UnboundSym "Result")) (Types.Atom Types.Nil)
-                                                                      !appl_19 <- kl_V3789 `pseq` (appl_18 `pseq` klCons kl_V3789 appl_18)
-                                                                      !appl_20 <- appl_17 `pseq` (appl_19 `pseq` klCons appl_17 appl_19)
-                                                                      !appl_21 <- appl_20 `pseq` klCons (ApplC (wrapNamed "shen.output-track" kl_shen_output_track)) appl_20
-                                                                      !appl_22 <- klCons (Types.Atom (Types.UnboundSym "shen.*call*")) (Types.Atom Types.Nil)
-                                                                      !appl_23 <- appl_22 `pseq` klCons (ApplC (wrapNamed "value" value)) appl_22
-                                                                      !appl_24 <- klCons (Types.Atom (Types.N (Types.KI 1))) (Types.Atom Types.Nil)
-                                                                      !appl_25 <- appl_23 `pseq` (appl_24 `pseq` klCons appl_23 appl_24)
-                                                                      !appl_26 <- appl_25 `pseq` klCons (ApplC (wrapNamed "-" Primitives.subtract)) appl_25
-                                                                      !appl_27 <- appl_26 `pseq` klCons appl_26 (Types.Atom Types.Nil)
-                                                                      !appl_28 <- appl_27 `pseq` klCons (Types.Atom (Types.UnboundSym "shen.*call*")) appl_27
-                                                                      !appl_29 <- appl_28 `pseq` klCons (ApplC (wrapNamed "set" klSet)) appl_28
-                                                                      !appl_30 <- klCons (ApplC (PL "shen.terpri-or-read-char" kl_shen_terpri_or_read_char)) (Types.Atom Types.Nil)
-                                                                      !appl_31 <- klCons (Types.Atom (Types.UnboundSym "Result")) (Types.Atom Types.Nil)
-                                                                      !appl_32 <- appl_30 `pseq` (appl_31 `pseq` klCons appl_30 appl_31)
-                                                                      !appl_33 <- appl_32 `pseq` klCons (ApplC (wrapNamed "do" kl_do)) appl_32
-                                                                      !appl_34 <- appl_33 `pseq` klCons appl_33 (Types.Atom Types.Nil)
-                                                                      !appl_35 <- appl_29 `pseq` (appl_34 `pseq` klCons appl_29 appl_34)
-                                                                      !appl_36 <- appl_35 `pseq` klCons (ApplC (wrapNamed "do" kl_do)) appl_35
-                                                                      !appl_37 <- appl_36 `pseq` klCons appl_36 (Types.Atom Types.Nil)
-                                                                      !appl_38 <- appl_21 `pseq` (appl_37 `pseq` klCons appl_21 appl_37)
-                                                                      !appl_39 <- appl_38 `pseq` klCons (ApplC (wrapNamed "do" kl_do)) appl_38
-                                                                      !appl_40 <- appl_39 `pseq` klCons appl_39 (Types.Atom Types.Nil)
-                                                                      !appl_41 <- kl_V3791 `pseq` (appl_40 `pseq` klCons kl_V3791 appl_40)
-                                                                      !appl_42 <- appl_41 `pseq` klCons (Types.Atom (Types.UnboundSym "Result")) appl_41
-                                                                      !appl_43 <- appl_42 `pseq` klCons (Types.Atom (Types.UnboundSym "let")) appl_42
-                                                                      !appl_44 <- appl_43 `pseq` klCons appl_43 (Types.Atom Types.Nil)
-                                                                      !appl_45 <- appl_15 `pseq` (appl_44 `pseq` klCons appl_15 appl_44)
-                                                                      !appl_46 <- appl_45 `pseq` klCons (ApplC (wrapNamed "do" kl_do)) appl_45
-                                                                      !appl_47 <- appl_46 `pseq` klCons appl_46 (Types.Atom Types.Nil)
-                                                                      !appl_48 <- appl_14 `pseq` (appl_47 `pseq` klCons appl_14 appl_47)
-                                                                      !appl_49 <- appl_48 `pseq` klCons (ApplC (wrapNamed "do" kl_do)) appl_48
-                                                                      !appl_50 <- appl_49 `pseq` klCons appl_49 (Types.Atom Types.Nil)
-                                                                      !appl_51 <- appl_7 `pseq` (appl_50 `pseq` klCons appl_7 appl_50)
-                                                                      appl_51 `pseq` klCons (ApplC (wrapNamed "do" kl_do)) appl_51
-
-kl_step :: Types.KLValue -> Types.KLContext Types.Env Types.KLValue
-kl_step (!kl_V3797) = do let pat_cond_0 = do klSet (Types.Atom (Types.UnboundSym "shen.*step*")) (Atom (B True))
-                             pat_cond_1 = do klSet (Types.Atom (Types.UnboundSym "shen.*step*")) (Atom (B False))
-                             pat_cond_2 = do do simpleError (Types.Atom (Types.Str "step expects a + or a -.\n"))
-                          in case kl_V3797 of
-                                 kl_V3797@(Atom (UnboundSym "+")) -> pat_cond_0
-                                 kl_V3797@(ApplC (PL "+" _)) -> pat_cond_0
-                                 kl_V3797@(ApplC (Func "+" _)) -> pat_cond_0
-                                 kl_V3797@(Atom (UnboundSym "-")) -> pat_cond_1
-                                 kl_V3797@(ApplC (PL "-" _)) -> pat_cond_1
-                                 kl_V3797@(ApplC (Func "-" _)) -> pat_cond_1
-                                 _ -> pat_cond_2
-
-kl_spy :: Types.KLValue -> Types.KLContext Types.Env Types.KLValue
-kl_spy (!kl_V3803) = do let pat_cond_0 = do klSet (Types.Atom (Types.UnboundSym "shen.*spy*")) (Atom (B True))
-                            pat_cond_1 = do klSet (Types.Atom (Types.UnboundSym "shen.*spy*")) (Atom (B False))
-                            pat_cond_2 = do do simpleError (Types.Atom (Types.Str "spy expects a + or a -.\n"))
-                         in case kl_V3803 of
-                                kl_V3803@(Atom (UnboundSym "+")) -> pat_cond_0
-                                kl_V3803@(ApplC (PL "+" _)) -> pat_cond_0
-                                kl_V3803@(ApplC (Func "+" _)) -> pat_cond_0
-                                kl_V3803@(Atom (UnboundSym "-")) -> pat_cond_1
-                                kl_V3803@(ApplC (PL "-" _)) -> pat_cond_1
-                                kl_V3803@(ApplC (Func "-" _)) -> pat_cond_1
-                                _ -> pat_cond_2
-
-kl_shen_terpri_or_read_char :: Types.KLContext Types.Env
-                                               Types.KLValue
-kl_shen_terpri_or_read_char = do !kl_if_0 <- value (Types.Atom (Types.UnboundSym "shen.*step*"))
-                                 case kl_if_0 of
-                                     Atom (B (True)) -> do !appl_1 <- value (Types.Atom (Types.UnboundSym "*stinput*"))
-                                                           !appl_2 <- appl_1 `pseq` readByte appl_1
-                                                           appl_2 `pseq` kl_shen_check_byte appl_2
-                                     Atom (B (False)) -> do do kl_nl (Types.Atom (Types.N (Types.KI 1)))
-                                     _ -> throwError "if: expected boolean"
-
-kl_shen_check_byte :: Types.KLValue ->
-                      Types.KLContext Types.Env Types.KLValue
-kl_shen_check_byte (!kl_V3809) = do !appl_0 <- kl_shen_hat
-                                    !kl_if_1 <- kl_V3809 `pseq` (appl_0 `pseq` eq kl_V3809 appl_0)
-                                    case kl_if_1 of
-                                        Atom (B (True)) -> do simpleError (Types.Atom (Types.Str "aborted"))
-                                        Atom (B (False)) -> do do return (Atom (B True))
-                                        _ -> throwError "if: expected boolean"
-
-kl_shen_input_track :: Types.KLValue ->
-                       Types.KLValue ->
-                       Types.KLValue -> Types.KLContext Types.Env Types.KLValue
-kl_shen_input_track (!kl_V3813) (!kl_V3814) (!kl_V3815) = do !appl_0 <- kl_V3813 `pseq` kl_shen_spaces kl_V3813
-                                                             !appl_1 <- kl_V3813 `pseq` kl_shen_spaces kl_V3813
-                                                             let !aw_2 = Types.Atom (Types.UnboundSym "shen.app")
-                                                             !appl_3 <- appl_1 `pseq` applyWrapper aw_2 [appl_1,
-                                                                                                         Types.Atom (Types.Str ""),
-                                                                                                         Types.Atom (Types.UnboundSym "shen.a")]
-                                                             !appl_4 <- appl_3 `pseq` cn (Types.Atom (Types.Str " \n")) appl_3
-                                                             let !aw_5 = Types.Atom (Types.UnboundSym "shen.app")
-                                                             !appl_6 <- kl_V3814 `pseq` (appl_4 `pseq` applyWrapper aw_5 [kl_V3814,
-                                                                                                                          appl_4,
-                                                                                                                          Types.Atom (Types.UnboundSym "shen.a")])
-                                                             !appl_7 <- appl_6 `pseq` cn (Types.Atom (Types.Str "> Inputs to ")) appl_6
-                                                             let !aw_8 = Types.Atom (Types.UnboundSym "shen.app")
-                                                             !appl_9 <- kl_V3813 `pseq` (appl_7 `pseq` applyWrapper aw_8 [kl_V3813,
-                                                                                                                          appl_7,
-                                                                                                                          Types.Atom (Types.UnboundSym "shen.a")])
-                                                             !appl_10 <- appl_9 `pseq` cn (Types.Atom (Types.Str "<")) appl_9
-                                                             let !aw_11 = Types.Atom (Types.UnboundSym "shen.app")
-                                                             !appl_12 <- appl_0 `pseq` (appl_10 `pseq` applyWrapper aw_11 [appl_0,
-                                                                                                                           appl_10,
-                                                                                                                           Types.Atom (Types.UnboundSym "shen.a")])
-                                                             !appl_13 <- appl_12 `pseq` cn (Types.Atom (Types.Str "\n")) appl_12
-                                                             !appl_14 <- kl_stoutput
-                                                             let !aw_15 = Types.Atom (Types.UnboundSym "shen.prhush")
-                                                             !appl_16 <- appl_13 `pseq` (appl_14 `pseq` applyWrapper aw_15 [appl_13,
-                                                                                                                            appl_14])
-                                                             !appl_17 <- kl_V3815 `pseq` kl_shen_recursively_print kl_V3815
-                                                             appl_16 `pseq` (appl_17 `pseq` kl_do appl_16 appl_17)
-
-kl_shen_recursively_print :: Types.KLValue ->
-                             Types.KLContext Types.Env Types.KLValue
-kl_shen_recursively_print (!kl_V3817) = do let pat_cond_0 = do !appl_1 <- kl_stoutput
-                                                               let !aw_2 = Types.Atom (Types.UnboundSym "shen.prhush")
-                                                               appl_1 `pseq` applyWrapper aw_2 [Types.Atom (Types.Str " ==>"),
-                                                                                                appl_1]
-                                               pat_cond_3 kl_V3817 kl_V3817h kl_V3817t = do let !aw_4 = Types.Atom (Types.UnboundSym "print")
-                                                                                            !appl_5 <- kl_V3817h `pseq` applyWrapper aw_4 [kl_V3817h]
-                                                                                            !appl_6 <- kl_stoutput
-                                                                                            let !aw_7 = Types.Atom (Types.UnboundSym "shen.prhush")
-                                                                                            !appl_8 <- appl_6 `pseq` applyWrapper aw_7 [Types.Atom (Types.Str ", "),
-                                                                                                                                        appl_6]
-                                                                                            !appl_9 <- kl_V3817t `pseq` kl_shen_recursively_print kl_V3817t
-                                                                                            !appl_10 <- appl_8 `pseq` (appl_9 `pseq` kl_do appl_8 appl_9)
-                                                                                            appl_5 `pseq` (appl_10 `pseq` kl_do appl_5 appl_10)
-                                               pat_cond_11 = do do kl_shen_f_error (ApplC (wrapNamed "shen.recursively-print" kl_shen_recursively_print))
-                                            in case kl_V3817 of
-                                                   kl_V3817@(Atom (Nil)) -> pat_cond_0
-                                                   !(kl_V3817@(Cons (!kl_V3817h)
-                                                                    (!kl_V3817t))) -> pat_cond_3 kl_V3817 kl_V3817h kl_V3817t
-                                                   _ -> pat_cond_11
-
-kl_shen_spaces :: Types.KLValue ->
-                  Types.KLContext Types.Env Types.KLValue
-kl_shen_spaces (!kl_V3819) = do let pat_cond_0 = do return (Types.Atom (Types.Str ""))
-                                    pat_cond_1 = do do !appl_2 <- kl_V3819 `pseq` Primitives.subtract kl_V3819 (Types.Atom (Types.N (Types.KI 1)))
-                                                       !appl_3 <- appl_2 `pseq` kl_shen_spaces appl_2
-                                                       appl_3 `pseq` cn (Types.Atom (Types.Str " ")) appl_3
-                                 in case kl_V3819 of
-                                        kl_V3819@(Atom (N (KI 0))) -> pat_cond_0
-                                        _ -> pat_cond_1
-
-kl_shen_output_track :: Types.KLValue ->
-                        Types.KLValue ->
-                        Types.KLValue -> Types.KLContext Types.Env Types.KLValue
-kl_shen_output_track (!kl_V3823) (!kl_V3824) (!kl_V3825) = do !appl_0 <- kl_V3823 `pseq` kl_shen_spaces kl_V3823
-                                                              !appl_1 <- kl_V3823 `pseq` kl_shen_spaces kl_V3823
-                                                              let !aw_2 = Types.Atom (Types.UnboundSym "shen.app")
-                                                              !appl_3 <- kl_V3825 `pseq` applyWrapper aw_2 [kl_V3825,
-                                                                                                            Types.Atom (Types.Str ""),
-                                                                                                            Types.Atom (Types.UnboundSym "shen.s")]
-                                                              !appl_4 <- appl_3 `pseq` cn (Types.Atom (Types.Str "==> ")) appl_3
-                                                              let !aw_5 = Types.Atom (Types.UnboundSym "shen.app")
-                                                              !appl_6 <- appl_1 `pseq` (appl_4 `pseq` applyWrapper aw_5 [appl_1,
-                                                                                                                         appl_4,
-                                                                                                                         Types.Atom (Types.UnboundSym "shen.a")])
-                                                              !appl_7 <- appl_6 `pseq` cn (Types.Atom (Types.Str " \n")) appl_6
-                                                              let !aw_8 = Types.Atom (Types.UnboundSym "shen.app")
-                                                              !appl_9 <- kl_V3824 `pseq` (appl_7 `pseq` applyWrapper aw_8 [kl_V3824,
-                                                                                                                           appl_7,
-                                                                                                                           Types.Atom (Types.UnboundSym "shen.a")])
-                                                              !appl_10 <- appl_9 `pseq` cn (Types.Atom (Types.Str "> Output from ")) appl_9
-                                                              let !aw_11 = Types.Atom (Types.UnboundSym "shen.app")
-                                                              !appl_12 <- kl_V3823 `pseq` (appl_10 `pseq` applyWrapper aw_11 [kl_V3823,
-                                                                                                                              appl_10,
-                                                                                                                              Types.Atom (Types.UnboundSym "shen.a")])
-                                                              !appl_13 <- appl_12 `pseq` cn (Types.Atom (Types.Str "<")) appl_12
-                                                              let !aw_14 = Types.Atom (Types.UnboundSym "shen.app")
-                                                              !appl_15 <- appl_0 `pseq` (appl_13 `pseq` applyWrapper aw_14 [appl_0,
-                                                                                                                            appl_13,
-                                                                                                                            Types.Atom (Types.UnboundSym "shen.a")])
-                                                              !appl_16 <- appl_15 `pseq` cn (Types.Atom (Types.Str "\n")) appl_15
-                                                              !appl_17 <- kl_stoutput
-                                                              let !aw_18 = Types.Atom (Types.UnboundSym "shen.prhush")
-                                                              appl_16 `pseq` (appl_17 `pseq` applyWrapper aw_18 [appl_16,
-                                                                                                                 appl_17])
-
-kl_untrack :: Types.KLValue ->
-              Types.KLContext Types.Env Types.KLValue
-kl_untrack (!kl_V3827) = do !appl_0 <- kl_V3827 `pseq` kl_ps kl_V3827
-                            appl_0 `pseq` kl_eval appl_0
-
-kl_profile :: Types.KLValue ->
-              Types.KLContext Types.Env Types.KLValue
-kl_profile (!kl_V3829) = do !appl_0 <- kl_V3829 `pseq` kl_ps kl_V3829
-                            appl_0 `pseq` kl_shen_profile_help appl_0
-
-kl_shen_profile_help :: Types.KLValue ->
-                        Types.KLContext Types.Env Types.KLValue
-kl_shen_profile_help (!kl_V3835) = do let pat_cond_0 kl_V3835 kl_V3835t kl_V3835th kl_V3835tt kl_V3835tth kl_V3835ttt kl_V3835ttth = do let !appl_1 = ApplC (Func "lambda" (Context (\(!kl_G) -> do let !appl_2 = ApplC (Func "lambda" (Context (\(!kl_Profile) -> do let !appl_3 = ApplC (Func "lambda" (Context (\(!kl_Def) -> do let !appl_4 = ApplC (Func "lambda" (Context (\(!kl_CompileProfile) -> do let !appl_5 = ApplC (Func "lambda" (Context (\(!kl_CompileG) -> do return kl_V3835th)))
-                                                                                                                                                                                                                                                                                                                                                                                                             !appl_6 <- kl_Def `pseq` kl_shen_eval_without_macros kl_Def
-                                                                                                                                                                                                                                                                                                                                                                                                             appl_6 `pseq` applyWrapper appl_5 [appl_6])))
-                                                                                                                                                                                                                                                                                                                                    !appl_7 <- kl_Profile `pseq` kl_shen_eval_without_macros kl_Profile
-                                                                                                                                                                                                                                                                                                                                    appl_7 `pseq` applyWrapper appl_4 [appl_7])))
-                                                                                                                                                                                                                                                                      !appl_8 <- kl_G `pseq` (kl_V3835th `pseq` (kl_V3835ttth `pseq` kl_subst kl_G kl_V3835th kl_V3835ttth))
-                                                                                                                                                                                                                                                                      !appl_9 <- appl_8 `pseq` klCons appl_8 (Types.Atom Types.Nil)
-                                                                                                                                                                                                                                                                      !appl_10 <- kl_V3835tth `pseq` (appl_9 `pseq` klCons kl_V3835tth appl_9)
-                                                                                                                                                                                                                                                                      !appl_11 <- kl_G `pseq` (appl_10 `pseq` klCons kl_G appl_10)
-                                                                                                                                                                                                                                                                      !appl_12 <- appl_11 `pseq` klCons (Types.Atom (Types.UnboundSym "defun")) appl_11
-                                                                                                                                                                                                                                                                      appl_12 `pseq` applyWrapper appl_3 [appl_12])))
-                                                                                                                                                                                                    !appl_13 <- kl_G `pseq` (kl_V3835tth `pseq` klCons kl_G kl_V3835tth)
-                                                                                                                                                                                                    !appl_14 <- kl_V3835th `pseq` (kl_V3835tth `pseq` (appl_13 `pseq` kl_shen_profile_func kl_V3835th kl_V3835tth appl_13))
-                                                                                                                                                                                                    !appl_15 <- appl_14 `pseq` klCons appl_14 (Types.Atom Types.Nil)
-                                                                                                                                                                                                    !appl_16 <- kl_V3835tth `pseq` (appl_15 `pseq` klCons kl_V3835tth appl_15)
-                                                                                                                                                                                                    !appl_17 <- kl_V3835th `pseq` (appl_16 `pseq` klCons kl_V3835th appl_16)
-                                                                                                                                                                                                    !appl_18 <- appl_17 `pseq` klCons (Types.Atom (Types.UnboundSym "defun")) appl_17
-                                                                                                                                                                                                    appl_18 `pseq` applyWrapper appl_2 [appl_18])))
-                                                                                                                                        !appl_19 <- kl_gensym (Types.Atom (Types.UnboundSym "shen.f"))
-                                                                                                                                        appl_19 `pseq` applyWrapper appl_1 [appl_19]
-                                          pat_cond_20 = do do simpleError (Types.Atom (Types.Str "Cannot profile.\n"))
-                                       in case kl_V3835 of
-                                              !(kl_V3835@(Cons (Atom (UnboundSym "defun"))
-                                                               (!(kl_V3835t@(Cons (!kl_V3835th)
-                                                                                  (!(kl_V3835tt@(Cons (!kl_V3835tth)
-                                                                                                      (!(kl_V3835ttt@(Cons (!kl_V3835ttth)
-                                                                                                                           (Atom (Nil))))))))))))) -> pat_cond_0 kl_V3835 kl_V3835t kl_V3835th kl_V3835tt kl_V3835tth kl_V3835ttt kl_V3835ttth
-                                              !(kl_V3835@(Cons (ApplC (PL "defun" _))
-                                                               (!(kl_V3835t@(Cons (!kl_V3835th)
-                                                                                  (!(kl_V3835tt@(Cons (!kl_V3835tth)
-                                                                                                      (!(kl_V3835ttt@(Cons (!kl_V3835ttth)
-                                                                                                                           (Atom (Nil))))))))))))) -> pat_cond_0 kl_V3835 kl_V3835t kl_V3835th kl_V3835tt kl_V3835tth kl_V3835ttt kl_V3835ttth
-                                              !(kl_V3835@(Cons (ApplC (Func "defun" _))
-                                                               (!(kl_V3835t@(Cons (!kl_V3835th)
-                                                                                  (!(kl_V3835tt@(Cons (!kl_V3835tth)
-                                                                                                      (!(kl_V3835ttt@(Cons (!kl_V3835ttth)
-                                                                                                                           (Atom (Nil))))))))))))) -> pat_cond_0 kl_V3835 kl_V3835t kl_V3835th kl_V3835tt kl_V3835tth kl_V3835ttt kl_V3835ttth
-                                              _ -> pat_cond_20
-
-kl_unprofile :: Types.KLValue ->
-                Types.KLContext Types.Env Types.KLValue
-kl_unprofile (!kl_V3837) = do kl_V3837 `pseq` kl_untrack kl_V3837
-
-kl_shen_profile_func :: Types.KLValue ->
-                        Types.KLValue ->
-                        Types.KLValue -> Types.KLContext Types.Env Types.KLValue
-kl_shen_profile_func (!kl_V3841) (!kl_V3842) (!kl_V3843) = do !appl_0 <- klCons (Types.Atom (Types.UnboundSym "run")) (Types.Atom Types.Nil)
-                                                              !appl_1 <- appl_0 `pseq` klCons (ApplC (wrapNamed "get-time" getTime)) appl_0
-                                                              !appl_2 <- klCons (Types.Atom (Types.UnboundSym "run")) (Types.Atom Types.Nil)
-                                                              !appl_3 <- appl_2 `pseq` klCons (ApplC (wrapNamed "get-time" getTime)) appl_2
-                                                              !appl_4 <- klCons (Types.Atom (Types.UnboundSym "Start")) (Types.Atom Types.Nil)
-                                                              !appl_5 <- appl_3 `pseq` (appl_4 `pseq` klCons appl_3 appl_4)
-                                                              !appl_6 <- appl_5 `pseq` klCons (ApplC (wrapNamed "-" Primitives.subtract)) appl_5
-                                                              !appl_7 <- kl_V3841 `pseq` klCons kl_V3841 (Types.Atom Types.Nil)
-                                                              !appl_8 <- appl_7 `pseq` klCons (ApplC (wrapNamed "shen.get-profile" kl_shen_get_profile)) appl_7
-                                                              !appl_9 <- klCons (Types.Atom (Types.UnboundSym "Finish")) (Types.Atom Types.Nil)
-                                                              !appl_10 <- appl_8 `pseq` (appl_9 `pseq` klCons appl_8 appl_9)
-                                                              !appl_11 <- appl_10 `pseq` klCons (ApplC (wrapNamed "+" add)) appl_10
-                                                              !appl_12 <- appl_11 `pseq` klCons appl_11 (Types.Atom Types.Nil)
-                                                              !appl_13 <- kl_V3841 `pseq` (appl_12 `pseq` klCons kl_V3841 appl_12)
-                                                              !appl_14 <- appl_13 `pseq` klCons (ApplC (wrapNamed "shen.put-profile" kl_shen_put_profile)) appl_13
-                                                              !appl_15 <- klCons (Types.Atom (Types.UnboundSym "Result")) (Types.Atom Types.Nil)
-                                                              !appl_16 <- appl_14 `pseq` (appl_15 `pseq` klCons appl_14 appl_15)
-                                                              !appl_17 <- appl_16 `pseq` klCons (Types.Atom (Types.UnboundSym "Record")) appl_16
-                                                              !appl_18 <- appl_17 `pseq` klCons (Types.Atom (Types.UnboundSym "let")) appl_17
-                                                              !appl_19 <- appl_18 `pseq` klCons appl_18 (Types.Atom Types.Nil)
-                                                              !appl_20 <- appl_6 `pseq` (appl_19 `pseq` klCons appl_6 appl_19)
-                                                              !appl_21 <- appl_20 `pseq` klCons (Types.Atom (Types.UnboundSym "Finish")) appl_20
-                                                              !appl_22 <- appl_21 `pseq` klCons (Types.Atom (Types.UnboundSym "let")) appl_21
-                                                              !appl_23 <- appl_22 `pseq` klCons appl_22 (Types.Atom Types.Nil)
-                                                              !appl_24 <- kl_V3843 `pseq` (appl_23 `pseq` klCons kl_V3843 appl_23)
-                                                              !appl_25 <- appl_24 `pseq` klCons (Types.Atom (Types.UnboundSym "Result")) appl_24
-                                                              !appl_26 <- appl_25 `pseq` klCons (Types.Atom (Types.UnboundSym "let")) appl_25
-                                                              !appl_27 <- appl_26 `pseq` klCons appl_26 (Types.Atom Types.Nil)
-                                                              !appl_28 <- appl_1 `pseq` (appl_27 `pseq` klCons appl_1 appl_27)
-                                                              !appl_29 <- appl_28 `pseq` klCons (Types.Atom (Types.UnboundSym "Start")) appl_28
-                                                              appl_29 `pseq` klCons (Types.Atom (Types.UnboundSym "let")) appl_29
-
-kl_profile_results :: Types.KLValue ->
-                      Types.KLContext Types.Env Types.KLValue
-kl_profile_results (!kl_V3845) = do let !appl_0 = ApplC (Func "lambda" (Context (\(!kl_Results) -> do let !appl_1 = ApplC (Func "lambda" (Context (\(!kl_Initialise) -> do kl_V3845 `pseq` (kl_Results `pseq` kl_Atp kl_V3845 kl_Results))))
-                                                                                                      !appl_2 <- kl_V3845 `pseq` kl_shen_put_profile kl_V3845 (Types.Atom (Types.N (Types.KI 0)))
-                                                                                                      appl_2 `pseq` applyWrapper appl_1 [appl_2])))
-                                    !appl_3 <- kl_V3845 `pseq` kl_shen_get_profile kl_V3845
-                                    appl_3 `pseq` applyWrapper appl_0 [appl_3]
-
-kl_shen_get_profile :: Types.KLValue ->
-                       Types.KLContext Types.Env Types.KLValue
-kl_shen_get_profile (!kl_V3847) = do (do !appl_0 <- value (Types.Atom (Types.UnboundSym "*property-vector*"))
-                                         kl_V3847 `pseq` (appl_0 `pseq` kl_get kl_V3847 (ApplC (wrapNamed "profile" kl_profile)) appl_0)) `catchError` (\(!kl_E) -> do return (Types.Atom (Types.N (Types.KI 0))))
-
-kl_shen_put_profile :: Types.KLValue ->
-                       Types.KLValue -> Types.KLContext Types.Env Types.KLValue
-kl_shen_put_profile (!kl_V3850) (!kl_V3851) = do !appl_0 <- value (Types.Atom (Types.UnboundSym "*property-vector*"))
-                                                 kl_V3850 `pseq` (kl_V3851 `pseq` (appl_0 `pseq` kl_put kl_V3850 (ApplC (wrapNamed "profile" kl_profile)) kl_V3851 appl_0))
-
-expr7 :: Types.KLContext Types.Env Types.KLValue
-expr7 = do (do return (Types.Atom (Types.Str "Copyright (c) 2015, Mark Tarver\n\nAll rights reserved.\n\nRedistribution and use in source and binary forms, with or without\nmodification, are permitted provided that the following conditions are met:\n1. Redistributions of source code must retain the above copyright\n   notice, this list of conditions and the following disclaimer.\n2. Redistributions in binary form must reproduce the above copyright\n   notice, this list of conditions and the following disclaimer in the\n   documentation and/or other materials provided with the distribution.\n3. The name of Mark Tarver may not be used to endorse or promote products\n   derived from this software without specific prior written permission.\n\nTHIS SOFTWARE IS PROVIDED BY Mark Tarver ''AS IS'' AND ANY\nEXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED\nWARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE\nDISCLAIMED. IN NO EVENT SHALL Mark Tarver BE LIABLE FOR ANY\nDIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES\n(INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;\nLOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND\nON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT\n(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS\nSOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE."))) `catchError` (\(!kl_E) -> do return (Types.Atom (Types.Str "E")))
-           (do klSet (Types.Atom (Types.UnboundSym "shen.*step*")) (Atom (B False))) `catchError` (\(!kl_E) -> do return (Types.Atom (Types.Str "E")))
+{-# LANGUAGE BangPatterns #-}+{-# LANGUAGE OverloadedStrings #-}+{-# LANGUAGE Strict #-}+{-# LANGUAGE StrictData #-}+{-# LANGUAGE ViewPatterns #-}++module Backend.Track where++import Control.Monad.Except+import Control.Parallel+import Environment+import Core.Primitives as Primitives+import Backend.Utils+import Core.Types+import Core.Utils+import Wrap+import Backend.Toplevel+import Backend.Core+import Backend.Sys+import Backend.Sequent+import Backend.Yacc+import Backend.Reader+import Backend.Prolog++{-+Copyright (c) 2015, Mark Tarver+All rights reserved.++Redistribution and use in source and binary forms, with or without+modification, are permitted provided that the following conditions are met:++1. Redistributions of source code must retain the above copyright+   notice, this list of conditions and the following disclaimer.+2. Redistributions in binary form must reproduce the above copyright+   notice, this list of conditions and the following disclaimer in the+   documentation and/or other materials provided with the distribution.+3. The name of Mark Tarver may not be used to endorse or promote products+   derived from this software without specific prior written permission.++THIS SOFTWARE IS PROVIDED BY Mark Tarver ''AS IS'' AND ANY+EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED+WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE+DISCLAIMED. IN NO EVENT SHALL Mark Tarver BE LIABLE FOR ANY+DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES+(INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;+LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND+ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT+(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS+SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.+-}++kl_shen_f_error :: Core.Types.KLValue ->+                   Core.Types.KLContext Core.Types.Env Core.Types.KLValue+kl_shen_f_error (!kl_V3913) = do let !aw_0 = Core.Types.Atom (Core.Types.UnboundSym "shen.app")+                                 !appl_1 <- kl_V3913 `pseq` applyWrapper aw_0 [kl_V3913,+                                                                               Core.Types.Atom (Core.Types.Str ";\n"),+                                                                               Core.Types.Atom (Core.Types.UnboundSym "shen.a")]+                                 !appl_2 <- appl_1 `pseq` cn (Core.Types.Atom (Core.Types.Str "partial function ")) appl_1+                                 !appl_3 <- kl_stoutput+                                 let !aw_4 = Core.Types.Atom (Core.Types.UnboundSym "shen.prhush")+                                 !appl_5 <- appl_2 `pseq` (appl_3 `pseq` applyWrapper aw_4 [appl_2,+                                                                                            appl_3])+                                 !appl_6 <- kl_V3913 `pseq` kl_shen_trackedP kl_V3913+                                 !kl_if_7 <- appl_6 `pseq` kl_not appl_6+                                 !kl_if_8 <- case kl_if_7 of+                                                 Atom (B (True)) -> do let !aw_9 = Core.Types.Atom (Core.Types.UnboundSym "shen.app")+                                                                       !appl_10 <- kl_V3913 `pseq` applyWrapper aw_9 [kl_V3913,+                                                                                                                      Core.Types.Atom (Core.Types.Str "? "),+                                                                                                                      Core.Types.Atom (Core.Types.UnboundSym "shen.a")]+                                                                       !appl_11 <- appl_10 `pseq` cn (Core.Types.Atom (Core.Types.Str "track ")) appl_10+                                                                       !kl_if_12 <- appl_11 `pseq` kl_y_or_nP appl_11+                                                                       case kl_if_12 of+                                                                           Atom (B (True)) -> do return (Atom (B True))+                                                                           Atom (B (False)) -> do do return (Atom (B False))+                                                                           _ -> throwError "if: expected boolean"+                                                 Atom (B (False)) -> do do return (Atom (B False))+                                                 _ -> throwError "if: expected boolean"+                                 !appl_13 <- case kl_if_8 of+                                                 Atom (B (True)) -> do !appl_14 <- kl_V3913 `pseq` kl_ps kl_V3913+                                                                       appl_14 `pseq` kl_shen_track_function appl_14+                                                 Atom (B (False)) -> do do return (Core.Types.Atom (Core.Types.UnboundSym "shen.ok"))+                                                 _ -> throwError "if: expected boolean"+                                 !appl_15 <- simpleError (Core.Types.Atom (Core.Types.Str "aborted"))+                                 !appl_16 <- appl_13 `pseq` (appl_15 `pseq` kl_do appl_13 appl_15)+                                 appl_5 `pseq` (appl_16 `pseq` kl_do appl_5 appl_16)++kl_shen_trackedP :: Core.Types.KLValue ->+                    Core.Types.KLContext Core.Types.Env Core.Types.KLValue+kl_shen_trackedP (!kl_V3915) = do !appl_0 <- value (Core.Types.Atom (Core.Types.UnboundSym "shen.*tracking*"))+                                  kl_V3915 `pseq` (appl_0 `pseq` kl_elementP kl_V3915 appl_0)++kl_track :: Core.Types.KLValue ->+            Core.Types.KLContext Core.Types.Env Core.Types.KLValue+kl_track (!kl_V3917) = do let !appl_0 = ApplC (Func "lambda" (Context (\(!kl_Source) -> do kl_Source `pseq` kl_shen_track_function kl_Source)))+                          !appl_1 <- kl_V3917 `pseq` kl_ps kl_V3917+                          appl_1 `pseq` applyWrapper appl_0 [appl_1]++kl_shen_track_function :: Core.Types.KLValue ->+                          Core.Types.KLContext Core.Types.Env Core.Types.KLValue+kl_shen_track_function (!kl_V3919) = do !kl_if_0 <- let pat_cond_1 kl_V3919 kl_V3919h kl_V3919t = do !kl_if_2 <- let pat_cond_3 = do !kl_if_4 <- let pat_cond_5 kl_V3919t kl_V3919th kl_V3919tt = do !kl_if_6 <- let pat_cond_7 kl_V3919tt kl_V3919tth kl_V3919ttt = do !kl_if_8 <- let pat_cond_9 kl_V3919ttt kl_V3919ttth kl_V3919tttt = do let !appl_10 = Atom Nil+                                                                                                                                                                                                                                                                                                                                              !kl_if_11 <- appl_10 `pseq` (kl_V3919tttt `pseq` eq appl_10 kl_V3919tttt)+                                                                                                                                                                                                                                                                                                                                              case kl_if_11 of+                                                                                                                                                                                                                                                                                                                                                  Atom (B (True)) -> do return (Atom (B True))+                                                                                                                                                                                                                                                                                                                                                  Atom (B (False)) -> do do return (Atom (B False))+                                                                                                                                                                                                                                                                                                                                                  _ -> throwError "if: expected boolean"+                                                                                                                                                                                                                                                                                        pat_cond_12 = do do return (Atom (B False))+                                                                                                                                                                                                                                                                                     in case kl_V3919ttt of+                                                                                                                                                                                                                                                                                            !(kl_V3919ttt@(Cons (!kl_V3919ttth)+                                                                                                                                                                                                                                                                                                                (!kl_V3919tttt))) -> pat_cond_9 kl_V3919ttt kl_V3919ttth kl_V3919tttt+                                                                                                                                                                                                                                                                                            _ -> pat_cond_12+                                                                                                                                                                                                                                                                        case kl_if_8 of+                                                                                                                                                                                                                                                                            Atom (B (True)) -> do return (Atom (B True))+                                                                                                                                                                                                                                                                            Atom (B (False)) -> do do return (Atom (B False))+                                                                                                                                                                                                                                                                            _ -> throwError "if: expected boolean"+                                                                                                                                                                                                                     pat_cond_13 = do do return (Atom (B False))+                                                                                                                                                                                                                  in case kl_V3919tt of+                                                                                                                                                                                                                         !(kl_V3919tt@(Cons (!kl_V3919tth)+                                                                                                                                                                                                                                            (!kl_V3919ttt))) -> pat_cond_7 kl_V3919tt kl_V3919tth kl_V3919ttt+                                                                                                                                                                                                                         _ -> pat_cond_13+                                                                                                                                                                                                     case kl_if_6 of+                                                                                                                                                                                                         Atom (B (True)) -> do return (Atom (B True))+                                                                                                                                                                                                         Atom (B (False)) -> do do return (Atom (B False))+                                                                                                                                                                                                         _ -> throwError "if: expected boolean"+                                                                                                                                                     pat_cond_14 = do do return (Atom (B False))+                                                                                                                                                  in case kl_V3919t of+                                                                                                                                                         !(kl_V3919t@(Cons (!kl_V3919th)+                                                                                                                                                                           (!kl_V3919tt))) -> pat_cond_5 kl_V3919t kl_V3919th kl_V3919tt+                                                                                                                                                         _ -> pat_cond_14+                                                                                                                                     case kl_if_4 of+                                                                                                                                         Atom (B (True)) -> do return (Atom (B True))+                                                                                                                                         Atom (B (False)) -> do do return (Atom (B False))+                                                                                                                                         _ -> throwError "if: expected boolean"+                                                                                                                     pat_cond_15 = do do return (Atom (B False))+                                                                                                                  in case kl_V3919h of+                                                                                                                         kl_V3919h@(Atom (UnboundSym "defun")) -> pat_cond_3+                                                                                                                         kl_V3919h@(ApplC (PL "defun"+                                                                                                                                              _)) -> pat_cond_3+                                                                                                                         kl_V3919h@(ApplC (Func "defun"+                                                                                                                                                _)) -> pat_cond_3+                                                                                                                         _ -> pat_cond_15+                                                                                                     case kl_if_2 of+                                                                                                         Atom (B (True)) -> do return (Atom (B True))+                                                                                                         Atom (B (False)) -> do do return (Atom (B False))+                                                                                                         _ -> throwError "if: expected boolean"+                                                        pat_cond_16 = do do return (Atom (B False))+                                                     in case kl_V3919 of+                                                            !(kl_V3919@(Cons (!kl_V3919h)+                                                                             (!kl_V3919t))) -> pat_cond_1 kl_V3919 kl_V3919h kl_V3919t+                                                            _ -> pat_cond_16+                                        case kl_if_0 of+                                            Atom (B (True)) -> do let !appl_17 = ApplC (Func "lambda" (Context (\(!kl_KL) -> do let !appl_18 = ApplC (Func "lambda" (Context (\(!kl_Ob) -> do let !appl_19 = ApplC (Func "lambda" (Context (\(!kl_Tr) -> do return kl_Ob)))+                                                                                                                                                                                              !appl_20 <- value (Core.Types.Atom (Core.Types.UnboundSym "shen.*tracking*"))+                                                                                                                                                                                              !appl_21 <- kl_Ob `pseq` (appl_20 `pseq` klCons kl_Ob appl_20)+                                                                                                                                                                                              !appl_22 <- appl_21 `pseq` klSet (Core.Types.Atom (Core.Types.UnboundSym "shen.*tracking*")) appl_21+                                                                                                                                                                                              appl_22 `pseq` applyWrapper appl_19 [appl_22])))+                                                                                                                                !appl_23 <- kl_KL `pseq` evalKL kl_KL+                                                                                                                                appl_23 `pseq` applyWrapper appl_18 [appl_23])))+                                                                  !appl_24 <- kl_V3919 `pseq` tl kl_V3919+                                                                  !appl_25 <- appl_24 `pseq` hd appl_24+                                                                  !appl_26 <- kl_V3919 `pseq` tl kl_V3919+                                                                  !appl_27 <- appl_26 `pseq` tl appl_26+                                                                  !appl_28 <- appl_27 `pseq` hd appl_27+                                                                  !appl_29 <- kl_V3919 `pseq` tl kl_V3919+                                                                  !appl_30 <- appl_29 `pseq` hd appl_29+                                                                  !appl_31 <- kl_V3919 `pseq` tl kl_V3919+                                                                  !appl_32 <- appl_31 `pseq` tl appl_31+                                                                  !appl_33 <- appl_32 `pseq` hd appl_32+                                                                  !appl_34 <- kl_V3919 `pseq` tl kl_V3919+                                                                  !appl_35 <- appl_34 `pseq` tl appl_34+                                                                  !appl_36 <- appl_35 `pseq` tl appl_35+                                                                  !appl_37 <- appl_36 `pseq` hd appl_36+                                                                  !appl_38 <- appl_30 `pseq` (appl_33 `pseq` (appl_37 `pseq` kl_shen_insert_tracking_code appl_30 appl_33 appl_37))+                                                                  let !appl_39 = Atom Nil+                                                                  !appl_40 <- appl_38 `pseq` (appl_39 `pseq` klCons appl_38 appl_39)+                                                                  !appl_41 <- appl_28 `pseq` (appl_40 `pseq` klCons appl_28 appl_40)+                                                                  !appl_42 <- appl_25 `pseq` (appl_41 `pseq` klCons appl_25 appl_41)+                                                                  !appl_43 <- appl_42 `pseq` klCons (Core.Types.Atom (Core.Types.UnboundSym "defun")) appl_42+                                                                  appl_43 `pseq` applyWrapper appl_17 [appl_43]+                                            Atom (B (False)) -> do do kl_shen_f_error (ApplC (wrapNamed "shen.track-function" kl_shen_track_function))+                                            _ -> throwError "if: expected boolean"++kl_shen_insert_tracking_code :: Core.Types.KLValue ->+                                Core.Types.KLValue ->+                                Core.Types.KLValue ->+                                Core.Types.KLContext Core.Types.Env Core.Types.KLValue+kl_shen_insert_tracking_code (!kl_V3923) (!kl_V3924) (!kl_V3925) = do let !appl_0 = Atom Nil+                                                                      !appl_1 <- appl_0 `pseq` klCons (Core.Types.Atom (Core.Types.UnboundSym "shen.*call*")) appl_0+                                                                      !appl_2 <- appl_1 `pseq` klCons (ApplC (wrapNamed "value" value)) appl_1+                                                                      let !appl_3 = Atom Nil+                                                                      !appl_4 <- appl_3 `pseq` klCons (Core.Types.Atom (Core.Types.N (Core.Types.KI 1))) appl_3+                                                                      !appl_5 <- appl_2 `pseq` (appl_4 `pseq` klCons appl_2 appl_4)+                                                                      !appl_6 <- appl_5 `pseq` klCons (ApplC (wrapNamed "+" add)) appl_5+                                                                      let !appl_7 = Atom Nil+                                                                      !appl_8 <- appl_6 `pseq` (appl_7 `pseq` klCons appl_6 appl_7)+                                                                      !appl_9 <- appl_8 `pseq` klCons (Core.Types.Atom (Core.Types.UnboundSym "shen.*call*")) appl_8+                                                                      !appl_10 <- appl_9 `pseq` klCons (ApplC (wrapNamed "set" klSet)) appl_9+                                                                      let !appl_11 = Atom Nil+                                                                      !appl_12 <- appl_11 `pseq` klCons (Core.Types.Atom (Core.Types.UnboundSym "shen.*call*")) appl_11+                                                                      !appl_13 <- appl_12 `pseq` klCons (ApplC (wrapNamed "value" value)) appl_12+                                                                      !appl_14 <- kl_V3924 `pseq` kl_shen_cons_form kl_V3924+                                                                      let !appl_15 = Atom Nil+                                                                      !appl_16 <- appl_14 `pseq` (appl_15 `pseq` klCons appl_14 appl_15)+                                                                      !appl_17 <- kl_V3923 `pseq` (appl_16 `pseq` klCons kl_V3923 appl_16)+                                                                      !appl_18 <- appl_13 `pseq` (appl_17 `pseq` klCons appl_13 appl_17)+                                                                      !appl_19 <- appl_18 `pseq` klCons (ApplC (wrapNamed "shen.input-track" kl_shen_input_track)) appl_18+                                                                      let !appl_20 = Atom Nil+                                                                      !appl_21 <- appl_20 `pseq` klCons (ApplC (PL "shen.terpri-or-read-char" kl_shen_terpri_or_read_char)) appl_20+                                                                      let !appl_22 = Atom Nil+                                                                      !appl_23 <- appl_22 `pseq` klCons (Core.Types.Atom (Core.Types.UnboundSym "shen.*call*")) appl_22+                                                                      !appl_24 <- appl_23 `pseq` klCons (ApplC (wrapNamed "value" value)) appl_23+                                                                      let !appl_25 = Atom Nil+                                                                      !appl_26 <- appl_25 `pseq` klCons (Core.Types.Atom (Core.Types.UnboundSym "Result")) appl_25+                                                                      !appl_27 <- kl_V3923 `pseq` (appl_26 `pseq` klCons kl_V3923 appl_26)+                                                                      !appl_28 <- appl_24 `pseq` (appl_27 `pseq` klCons appl_24 appl_27)+                                                                      !appl_29 <- appl_28 `pseq` klCons (ApplC (wrapNamed "shen.output-track" kl_shen_output_track)) appl_28+                                                                      let !appl_30 = Atom Nil+                                                                      !appl_31 <- appl_30 `pseq` klCons (Core.Types.Atom (Core.Types.UnboundSym "shen.*call*")) appl_30+                                                                      !appl_32 <- appl_31 `pseq` klCons (ApplC (wrapNamed "value" value)) appl_31+                                                                      let !appl_33 = Atom Nil+                                                                      !appl_34 <- appl_33 `pseq` klCons (Core.Types.Atom (Core.Types.N (Core.Types.KI 1))) appl_33+                                                                      !appl_35 <- appl_32 `pseq` (appl_34 `pseq` klCons appl_32 appl_34)+                                                                      !appl_36 <- appl_35 `pseq` klCons (ApplC (wrapNamed "-" Primitives.subtract)) appl_35+                                                                      let !appl_37 = Atom Nil+                                                                      !appl_38 <- appl_36 `pseq` (appl_37 `pseq` klCons appl_36 appl_37)+                                                                      !appl_39 <- appl_38 `pseq` klCons (Core.Types.Atom (Core.Types.UnboundSym "shen.*call*")) appl_38+                                                                      !appl_40 <- appl_39 `pseq` klCons (ApplC (wrapNamed "set" klSet)) appl_39+                                                                      let !appl_41 = Atom Nil+                                                                      !appl_42 <- appl_41 `pseq` klCons (ApplC (PL "shen.terpri-or-read-char" kl_shen_terpri_or_read_char)) appl_41+                                                                      let !appl_43 = Atom Nil+                                                                      !appl_44 <- appl_43 `pseq` klCons (Core.Types.Atom (Core.Types.UnboundSym "Result")) appl_43+                                                                      !appl_45 <- appl_42 `pseq` (appl_44 `pseq` klCons appl_42 appl_44)+                                                                      !appl_46 <- appl_45 `pseq` klCons (ApplC (wrapNamed "do" kl_do)) appl_45+                                                                      let !appl_47 = Atom Nil+                                                                      !appl_48 <- appl_46 `pseq` (appl_47 `pseq` klCons appl_46 appl_47)+                                                                      !appl_49 <- appl_40 `pseq` (appl_48 `pseq` klCons appl_40 appl_48)+                                                                      !appl_50 <- appl_49 `pseq` klCons (ApplC (wrapNamed "do" kl_do)) appl_49+                                                                      let !appl_51 = Atom Nil+                                                                      !appl_52 <- appl_50 `pseq` (appl_51 `pseq` klCons appl_50 appl_51)+                                                                      !appl_53 <- appl_29 `pseq` (appl_52 `pseq` klCons appl_29 appl_52)+                                                                      !appl_54 <- appl_53 `pseq` klCons (ApplC (wrapNamed "do" kl_do)) appl_53+                                                                      let !appl_55 = Atom Nil+                                                                      !appl_56 <- appl_54 `pseq` (appl_55 `pseq` klCons appl_54 appl_55)+                                                                      !appl_57 <- kl_V3925 `pseq` (appl_56 `pseq` klCons kl_V3925 appl_56)+                                                                      !appl_58 <- appl_57 `pseq` klCons (Core.Types.Atom (Core.Types.UnboundSym "Result")) appl_57+                                                                      !appl_59 <- appl_58 `pseq` klCons (Core.Types.Atom (Core.Types.UnboundSym "let")) appl_58+                                                                      let !appl_60 = Atom Nil+                                                                      !appl_61 <- appl_59 `pseq` (appl_60 `pseq` klCons appl_59 appl_60)+                                                                      !appl_62 <- appl_21 `pseq` (appl_61 `pseq` klCons appl_21 appl_61)+                                                                      !appl_63 <- appl_62 `pseq` klCons (ApplC (wrapNamed "do" kl_do)) appl_62+                                                                      let !appl_64 = Atom Nil+                                                                      !appl_65 <- appl_63 `pseq` (appl_64 `pseq` klCons appl_63 appl_64)+                                                                      !appl_66 <- appl_19 `pseq` (appl_65 `pseq` klCons appl_19 appl_65)+                                                                      !appl_67 <- appl_66 `pseq` klCons (ApplC (wrapNamed "do" kl_do)) appl_66+                                                                      let !appl_68 = Atom Nil+                                                                      !appl_69 <- appl_67 `pseq` (appl_68 `pseq` klCons appl_67 appl_68)+                                                                      !appl_70 <- appl_10 `pseq` (appl_69 `pseq` klCons appl_10 appl_69)+                                                                      appl_70 `pseq` klCons (ApplC (wrapNamed "do" kl_do)) appl_70++kl_step :: Core.Types.KLValue ->+           Core.Types.KLContext Core.Types.Env Core.Types.KLValue+kl_step (!kl_V3931) = do let pat_cond_0 = do klSet (Core.Types.Atom (Core.Types.UnboundSym "shen.*step*")) (Atom (B True))+                             pat_cond_1 = do klSet (Core.Types.Atom (Core.Types.UnboundSym "shen.*step*")) (Atom (B False))+                             pat_cond_2 = do do simpleError (Core.Types.Atom (Core.Types.Str "step expects a + or a -.\n"))+                          in case kl_V3931 of+                                 kl_V3931@(Atom (UnboundSym "+")) -> pat_cond_0+                                 kl_V3931@(ApplC (PL "+" _)) -> pat_cond_0+                                 kl_V3931@(ApplC (Func "+" _)) -> pat_cond_0+                                 kl_V3931@(Atom (UnboundSym "-")) -> pat_cond_1+                                 kl_V3931@(ApplC (PL "-" _)) -> pat_cond_1+                                 kl_V3931@(ApplC (Func "-" _)) -> pat_cond_1+                                 _ -> pat_cond_2++kl_spy :: Core.Types.KLValue ->+          Core.Types.KLContext Core.Types.Env Core.Types.KLValue+kl_spy (!kl_V3937) = do let pat_cond_0 = do klSet (Core.Types.Atom (Core.Types.UnboundSym "shen.*spy*")) (Atom (B True))+                            pat_cond_1 = do klSet (Core.Types.Atom (Core.Types.UnboundSym "shen.*spy*")) (Atom (B False))+                            pat_cond_2 = do do simpleError (Core.Types.Atom (Core.Types.Str "spy expects a + or a -.\n"))+                         in case kl_V3937 of+                                kl_V3937@(Atom (UnboundSym "+")) -> pat_cond_0+                                kl_V3937@(ApplC (PL "+" _)) -> pat_cond_0+                                kl_V3937@(ApplC (Func "+" _)) -> pat_cond_0+                                kl_V3937@(Atom (UnboundSym "-")) -> pat_cond_1+                                kl_V3937@(ApplC (PL "-" _)) -> pat_cond_1+                                kl_V3937@(ApplC (Func "-" _)) -> pat_cond_1+                                _ -> pat_cond_2++kl_shen_terpri_or_read_char :: Core.Types.KLContext Core.Types.Env+                                                    Core.Types.KLValue+kl_shen_terpri_or_read_char = do !kl_if_0 <- value (Core.Types.Atom (Core.Types.UnboundSym "shen.*step*"))+                                 case kl_if_0 of+                                     Atom (B (True)) -> do !appl_1 <- value (Core.Types.Atom (Core.Types.UnboundSym "*stinput*"))+                                                           !appl_2 <- appl_1 `pseq` readByte appl_1+                                                           appl_2 `pseq` kl_shen_check_byte appl_2+                                     Atom (B (False)) -> do do kl_nl (Core.Types.Atom (Core.Types.N (Core.Types.KI 1)))+                                     _ -> throwError "if: expected boolean"++kl_shen_check_byte :: Core.Types.KLValue ->+                      Core.Types.KLContext Core.Types.Env Core.Types.KLValue+kl_shen_check_byte (!kl_V3943) = do !appl_0 <- kl_shen_hat+                                    !kl_if_1 <- kl_V3943 `pseq` (appl_0 `pseq` eq kl_V3943 appl_0)+                                    case kl_if_1 of+                                        Atom (B (True)) -> do simpleError (Core.Types.Atom (Core.Types.Str "aborted"))+                                        Atom (B (False)) -> do do return (Atom (B True))+                                        _ -> throwError "if: expected boolean"++kl_shen_input_track :: Core.Types.KLValue ->+                       Core.Types.KLValue ->+                       Core.Types.KLValue ->+                       Core.Types.KLContext Core.Types.Env Core.Types.KLValue+kl_shen_input_track (!kl_V3947) (!kl_V3948) (!kl_V3949) = do !appl_0 <- kl_V3947 `pseq` kl_shen_spaces kl_V3947+                                                             !appl_1 <- kl_V3947 `pseq` kl_shen_spaces kl_V3947+                                                             let !aw_2 = Core.Types.Atom (Core.Types.UnboundSym "shen.app")+                                                             !appl_3 <- appl_1 `pseq` applyWrapper aw_2 [appl_1,+                                                                                                         Core.Types.Atom (Core.Types.Str ""),+                                                                                                         Core.Types.Atom (Core.Types.UnboundSym "shen.a")]+                                                             !appl_4 <- appl_3 `pseq` cn (Core.Types.Atom (Core.Types.Str " \n")) appl_3+                                                             let !aw_5 = Core.Types.Atom (Core.Types.UnboundSym "shen.app")+                                                             !appl_6 <- kl_V3948 `pseq` (appl_4 `pseq` applyWrapper aw_5 [kl_V3948,+                                                                                                                          appl_4,+                                                                                                                          Core.Types.Atom (Core.Types.UnboundSym "shen.a")])+                                                             !appl_7 <- appl_6 `pseq` cn (Core.Types.Atom (Core.Types.Str "> Inputs to ")) appl_6+                                                             let !aw_8 = Core.Types.Atom (Core.Types.UnboundSym "shen.app")+                                                             !appl_9 <- kl_V3947 `pseq` (appl_7 `pseq` applyWrapper aw_8 [kl_V3947,+                                                                                                                          appl_7,+                                                                                                                          Core.Types.Atom (Core.Types.UnboundSym "shen.a")])+                                                             !appl_10 <- appl_9 `pseq` cn (Core.Types.Atom (Core.Types.Str "<")) appl_9+                                                             let !aw_11 = Core.Types.Atom (Core.Types.UnboundSym "shen.app")+                                                             !appl_12 <- appl_0 `pseq` (appl_10 `pseq` applyWrapper aw_11 [appl_0,+                                                                                                                           appl_10,+                                                                                                                           Core.Types.Atom (Core.Types.UnboundSym "shen.a")])+                                                             !appl_13 <- appl_12 `pseq` cn (Core.Types.Atom (Core.Types.Str "\n")) appl_12+                                                             !appl_14 <- kl_stoutput+                                                             let !aw_15 = Core.Types.Atom (Core.Types.UnboundSym "shen.prhush")+                                                             !appl_16 <- appl_13 `pseq` (appl_14 `pseq` applyWrapper aw_15 [appl_13,+                                                                                                                            appl_14])+                                                             !appl_17 <- kl_V3949 `pseq` kl_shen_recursively_print kl_V3949+                                                             appl_16 `pseq` (appl_17 `pseq` kl_do appl_16 appl_17)++kl_shen_recursively_print :: Core.Types.KLValue ->+                             Core.Types.KLContext Core.Types.Env Core.Types.KLValue+kl_shen_recursively_print (!kl_V3951) = do let !appl_0 = Atom Nil+                                           !kl_if_1 <- appl_0 `pseq` (kl_V3951 `pseq` eq appl_0 kl_V3951)+                                           case kl_if_1 of+                                               Atom (B (True)) -> do !appl_2 <- kl_stoutput+                                                                     let !aw_3 = Core.Types.Atom (Core.Types.UnboundSym "shen.prhush")+                                                                     appl_2 `pseq` applyWrapper aw_3 [Core.Types.Atom (Core.Types.Str " ==>"),+                                                                                                      appl_2]+                                               Atom (B (False)) -> do let pat_cond_4 kl_V3951 kl_V3951h kl_V3951t = do let !aw_5 = Core.Types.Atom (Core.Types.UnboundSym "print")+                                                                                                                       !appl_6 <- kl_V3951h `pseq` applyWrapper aw_5 [kl_V3951h]+                                                                                                                       !appl_7 <- kl_stoutput+                                                                                                                       let !aw_8 = Core.Types.Atom (Core.Types.UnboundSym "shen.prhush")+                                                                                                                       !appl_9 <- appl_7 `pseq` applyWrapper aw_8 [Core.Types.Atom (Core.Types.Str ", "),+                                                                                                                                                                   appl_7]+                                                                                                                       !appl_10 <- kl_V3951t `pseq` kl_shen_recursively_print kl_V3951t+                                                                                                                       !appl_11 <- appl_9 `pseq` (appl_10 `pseq` kl_do appl_9 appl_10)+                                                                                                                       appl_6 `pseq` (appl_11 `pseq` kl_do appl_6 appl_11)+                                                                          pat_cond_12 = do do kl_shen_f_error (ApplC (wrapNamed "shen.recursively-print" kl_shen_recursively_print))+                                                                       in case kl_V3951 of+                                                                              !(kl_V3951@(Cons (!kl_V3951h)+                                                                                               (!kl_V3951t))) -> pat_cond_4 kl_V3951 kl_V3951h kl_V3951t+                                                                              _ -> pat_cond_12+                                               _ -> throwError "if: expected boolean"++kl_shen_spaces :: Core.Types.KLValue ->+                  Core.Types.KLContext Core.Types.Env Core.Types.KLValue+kl_shen_spaces (!kl_V3953) = do let pat_cond_0 = do return (Core.Types.Atom (Core.Types.Str ""))+                                    pat_cond_1 = do do !appl_2 <- kl_V3953 `pseq` Primitives.subtract kl_V3953 (Core.Types.Atom (Core.Types.N (Core.Types.KI 1)))+                                                       !appl_3 <- appl_2 `pseq` kl_shen_spaces appl_2+                                                       appl_3 `pseq` cn (Core.Types.Atom (Core.Types.Str " ")) appl_3+                                 in case kl_V3953 of+                                        kl_V3953@(Atom (N (KI 0))) -> pat_cond_0+                                        _ -> pat_cond_1++kl_shen_output_track :: Core.Types.KLValue ->+                        Core.Types.KLValue ->+                        Core.Types.KLValue ->+                        Core.Types.KLContext Core.Types.Env Core.Types.KLValue+kl_shen_output_track (!kl_V3957) (!kl_V3958) (!kl_V3959) = do !appl_0 <- kl_V3957 `pseq` kl_shen_spaces kl_V3957+                                                              !appl_1 <- kl_V3957 `pseq` kl_shen_spaces kl_V3957+                                                              let !aw_2 = Core.Types.Atom (Core.Types.UnboundSym "shen.app")+                                                              !appl_3 <- kl_V3959 `pseq` applyWrapper aw_2 [kl_V3959,+                                                                                                            Core.Types.Atom (Core.Types.Str ""),+                                                                                                            Core.Types.Atom (Core.Types.UnboundSym "shen.s")]+                                                              !appl_4 <- appl_3 `pseq` cn (Core.Types.Atom (Core.Types.Str "==> ")) appl_3+                                                              let !aw_5 = Core.Types.Atom (Core.Types.UnboundSym "shen.app")+                                                              !appl_6 <- appl_1 `pseq` (appl_4 `pseq` applyWrapper aw_5 [appl_1,+                                                                                                                         appl_4,+                                                                                                                         Core.Types.Atom (Core.Types.UnboundSym "shen.a")])+                                                              !appl_7 <- appl_6 `pseq` cn (Core.Types.Atom (Core.Types.Str " \n")) appl_6+                                                              let !aw_8 = Core.Types.Atom (Core.Types.UnboundSym "shen.app")+                                                              !appl_9 <- kl_V3958 `pseq` (appl_7 `pseq` applyWrapper aw_8 [kl_V3958,+                                                                                                                           appl_7,+                                                                                                                           Core.Types.Atom (Core.Types.UnboundSym "shen.a")])+                                                              !appl_10 <- appl_9 `pseq` cn (Core.Types.Atom (Core.Types.Str "> Output from ")) appl_9+                                                              let !aw_11 = Core.Types.Atom (Core.Types.UnboundSym "shen.app")+                                                              !appl_12 <- kl_V3957 `pseq` (appl_10 `pseq` applyWrapper aw_11 [kl_V3957,+                                                                                                                              appl_10,+                                                                                                                              Core.Types.Atom (Core.Types.UnboundSym "shen.a")])+                                                              !appl_13 <- appl_12 `pseq` cn (Core.Types.Atom (Core.Types.Str "<")) appl_12+                                                              let !aw_14 = Core.Types.Atom (Core.Types.UnboundSym "shen.app")+                                                              !appl_15 <- appl_0 `pseq` (appl_13 `pseq` applyWrapper aw_14 [appl_0,+                                                                                                                            appl_13,+                                                                                                                            Core.Types.Atom (Core.Types.UnboundSym "shen.a")])+                                                              !appl_16 <- appl_15 `pseq` cn (Core.Types.Atom (Core.Types.Str "\n")) appl_15+                                                              !appl_17 <- kl_stoutput+                                                              let !aw_18 = Core.Types.Atom (Core.Types.UnboundSym "shen.prhush")+                                                              appl_16 `pseq` (appl_17 `pseq` applyWrapper aw_18 [appl_16,+                                                                                                                 appl_17])++kl_untrack :: Core.Types.KLValue ->+              Core.Types.KLContext Core.Types.Env Core.Types.KLValue+kl_untrack (!kl_V3961) = do let !appl_0 = ApplC (Func "lambda" (Context (\(!kl_Tracking) -> do let !appl_1 = ApplC (Func "lambda" (Context (\(!kl_Tracking) -> do !appl_2 <- kl_V3961 `pseq` kl_ps kl_V3961+                                                                                                                                                                  appl_2 `pseq` kl_eval appl_2)))+                                                                                               !appl_3 <- kl_V3961 `pseq` (kl_Tracking `pseq` kl_remove kl_V3961 kl_Tracking)+                                                                                               !appl_4 <- appl_3 `pseq` klSet (Core.Types.Atom (Core.Types.UnboundSym "shen.*tracking*")) appl_3+                                                                                               appl_4 `pseq` applyWrapper appl_1 [appl_4])))+                            !appl_5 <- value (Core.Types.Atom (Core.Types.UnboundSym "shen.*tracking*"))+                            appl_5 `pseq` applyWrapper appl_0 [appl_5]++kl_profile :: Core.Types.KLValue ->+              Core.Types.KLContext Core.Types.Env Core.Types.KLValue+kl_profile (!kl_V3963) = do !appl_0 <- kl_V3963 `pseq` kl_ps kl_V3963+                            appl_0 `pseq` kl_shen_profile_help appl_0++kl_shen_profile_help :: Core.Types.KLValue ->+                        Core.Types.KLContext Core.Types.Env Core.Types.KLValue+kl_shen_profile_help (!kl_V3969) = do !kl_if_0 <- let pat_cond_1 kl_V3969 kl_V3969h kl_V3969t = do !kl_if_2 <- let pat_cond_3 = do !kl_if_4 <- let pat_cond_5 kl_V3969t kl_V3969th kl_V3969tt = do !kl_if_6 <- let pat_cond_7 kl_V3969tt kl_V3969tth kl_V3969ttt = do !kl_if_8 <- let pat_cond_9 kl_V3969ttt kl_V3969ttth kl_V3969tttt = do let !appl_10 = Atom Nil+                                                                                                                                                                                                                                                                                                                                            !kl_if_11 <- appl_10 `pseq` (kl_V3969tttt `pseq` eq appl_10 kl_V3969tttt)+                                                                                                                                                                                                                                                                                                                                            case kl_if_11 of+                                                                                                                                                                                                                                                                                                                                                Atom (B (True)) -> do return (Atom (B True))+                                                                                                                                                                                                                                                                                                                                                Atom (B (False)) -> do do return (Atom (B False))+                                                                                                                                                                                                                                                                                                                                                _ -> throwError "if: expected boolean"+                                                                                                                                                                                                                                                                                      pat_cond_12 = do do return (Atom (B False))+                                                                                                                                                                                                                                                                                   in case kl_V3969ttt of+                                                                                                                                                                                                                                                                                          !(kl_V3969ttt@(Cons (!kl_V3969ttth)+                                                                                                                                                                                                                                                                                                              (!kl_V3969tttt))) -> pat_cond_9 kl_V3969ttt kl_V3969ttth kl_V3969tttt+                                                                                                                                                                                                                                                                                          _ -> pat_cond_12+                                                                                                                                                                                                                                                                      case kl_if_8 of+                                                                                                                                                                                                                                                                          Atom (B (True)) -> do return (Atom (B True))+                                                                                                                                                                                                                                                                          Atom (B (False)) -> do do return (Atom (B False))+                                                                                                                                                                                                                                                                          _ -> throwError "if: expected boolean"+                                                                                                                                                                                                                   pat_cond_13 = do do return (Atom (B False))+                                                                                                                                                                                                                in case kl_V3969tt of+                                                                                                                                                                                                                       !(kl_V3969tt@(Cons (!kl_V3969tth)+                                                                                                                                                                                                                                          (!kl_V3969ttt))) -> pat_cond_7 kl_V3969tt kl_V3969tth kl_V3969ttt+                                                                                                                                                                                                                       _ -> pat_cond_13+                                                                                                                                                                                                   case kl_if_6 of+                                                                                                                                                                                                       Atom (B (True)) -> do return (Atom (B True))+                                                                                                                                                                                                       Atom (B (False)) -> do do return (Atom (B False))+                                                                                                                                                                                                       _ -> throwError "if: expected boolean"+                                                                                                                                                   pat_cond_14 = do do return (Atom (B False))+                                                                                                                                                in case kl_V3969t of+                                                                                                                                                       !(kl_V3969t@(Cons (!kl_V3969th)+                                                                                                                                                                         (!kl_V3969tt))) -> pat_cond_5 kl_V3969t kl_V3969th kl_V3969tt+                                                                                                                                                       _ -> pat_cond_14+                                                                                                                                   case kl_if_4 of+                                                                                                                                       Atom (B (True)) -> do return (Atom (B True))+                                                                                                                                       Atom (B (False)) -> do do return (Atom (B False))+                                                                                                                                       _ -> throwError "if: expected boolean"+                                                                                                                   pat_cond_15 = do do return (Atom (B False))+                                                                                                                in case kl_V3969h of+                                                                                                                       kl_V3969h@(Atom (UnboundSym "defun")) -> pat_cond_3+                                                                                                                       kl_V3969h@(ApplC (PL "defun"+                                                                                                                                            _)) -> pat_cond_3+                                                                                                                       kl_V3969h@(ApplC (Func "defun"+                                                                                                                                              _)) -> pat_cond_3+                                                                                                                       _ -> pat_cond_15+                                                                                                   case kl_if_2 of+                                                                                                       Atom (B (True)) -> do return (Atom (B True))+                                                                                                       Atom (B (False)) -> do do return (Atom (B False))+                                                                                                       _ -> throwError "if: expected boolean"+                                                      pat_cond_16 = do do return (Atom (B False))+                                                   in case kl_V3969 of+                                                          !(kl_V3969@(Cons (!kl_V3969h)+                                                                           (!kl_V3969t))) -> pat_cond_1 kl_V3969 kl_V3969h kl_V3969t+                                                          _ -> pat_cond_16+                                      case kl_if_0 of+                                          Atom (B (True)) -> do let !appl_17 = ApplC (Func "lambda" (Context (\(!kl_G) -> do let !appl_18 = ApplC (Func "lambda" (Context (\(!kl_Profile) -> do let !appl_19 = ApplC (Func "lambda" (Context (\(!kl_Def) -> do let !appl_20 = ApplC (Func "lambda" (Context (\(!kl_CompileProfile) -> do let !appl_21 = ApplC (Func "lambda" (Context (\(!kl_CompileG) -> do !appl_22 <- kl_V3969 `pseq` tl kl_V3969+                                                                                                                                                                                                                                                                                                                                                                                                             appl_22 `pseq` hd appl_22)))+                                                                                                                                                                                                                                                                                                                                         !appl_23 <- kl_Def `pseq` kl_shen_eval_without_macros kl_Def+                                                                                                                                                                                                                                                                                                                                         appl_23 `pseq` applyWrapper appl_21 [appl_23])))+                                                                                                                                                                                                                                                               !appl_24 <- kl_Profile `pseq` kl_shen_eval_without_macros kl_Profile+                                                                                                                                                                                                                                                               appl_24 `pseq` applyWrapper appl_20 [appl_24])))+                                                                                                                                                                                                !appl_25 <- kl_V3969 `pseq` tl kl_V3969+                                                                                                                                                                                                !appl_26 <- appl_25 `pseq` tl appl_25+                                                                                                                                                                                                !appl_27 <- appl_26 `pseq` hd appl_26+                                                                                                                                                                                                !appl_28 <- kl_V3969 `pseq` tl kl_V3969+                                                                                                                                                                                                !appl_29 <- appl_28 `pseq` hd appl_28+                                                                                                                                                                                                !appl_30 <- kl_V3969 `pseq` tl kl_V3969+                                                                                                                                                                                                !appl_31 <- appl_30 `pseq` tl appl_30+                                                                                                                                                                                                !appl_32 <- appl_31 `pseq` tl appl_31+                                                                                                                                                                                                !appl_33 <- appl_32 `pseq` hd appl_32+                                                                                                                                                                                                !appl_34 <- kl_G `pseq` (appl_29 `pseq` (appl_33 `pseq` kl_subst kl_G appl_29 appl_33))+                                                                                                                                                                                                let !appl_35 = Atom Nil+                                                                                                                                                                                                !appl_36 <- appl_34 `pseq` (appl_35 `pseq` klCons appl_34 appl_35)+                                                                                                                                                                                                !appl_37 <- appl_27 `pseq` (appl_36 `pseq` klCons appl_27 appl_36)+                                                                                                                                                                                                !appl_38 <- kl_G `pseq` (appl_37 `pseq` klCons kl_G appl_37)+                                                                                                                                                                                                !appl_39 <- appl_38 `pseq` klCons (Core.Types.Atom (Core.Types.UnboundSym "defun")) appl_38+                                                                                                                                                                                                appl_39 `pseq` applyWrapper appl_19 [appl_39])))+                                                                                                                             !appl_40 <- kl_V3969 `pseq` tl kl_V3969+                                                                                                                             !appl_41 <- appl_40 `pseq` hd appl_40+                                                                                                                             !appl_42 <- kl_V3969 `pseq` tl kl_V3969+                                                                                                                             !appl_43 <- appl_42 `pseq` tl appl_42+                                                                                                                             !appl_44 <- appl_43 `pseq` hd appl_43+                                                                                                                             !appl_45 <- kl_V3969 `pseq` tl kl_V3969+                                                                                                                             !appl_46 <- appl_45 `pseq` hd appl_45+                                                                                                                             !appl_47 <- kl_V3969 `pseq` tl kl_V3969+                                                                                                                             !appl_48 <- appl_47 `pseq` tl appl_47+                                                                                                                             !appl_49 <- appl_48 `pseq` hd appl_48+                                                                                                                             !appl_50 <- kl_V3969 `pseq` tl kl_V3969+                                                                                                                             !appl_51 <- appl_50 `pseq` tl appl_50+                                                                                                                             !appl_52 <- appl_51 `pseq` hd appl_51+                                                                                                                             !appl_53 <- kl_G `pseq` (appl_52 `pseq` klCons kl_G appl_52)+                                                                                                                             !appl_54 <- appl_46 `pseq` (appl_49 `pseq` (appl_53 `pseq` kl_shen_profile_func appl_46 appl_49 appl_53))+                                                                                                                             let !appl_55 = Atom Nil+                                                                                                                             !appl_56 <- appl_54 `pseq` (appl_55 `pseq` klCons appl_54 appl_55)+                                                                                                                             !appl_57 <- appl_44 `pseq` (appl_56 `pseq` klCons appl_44 appl_56)+                                                                                                                             !appl_58 <- appl_41 `pseq` (appl_57 `pseq` klCons appl_41 appl_57)+                                                                                                                             !appl_59 <- appl_58 `pseq` klCons (Core.Types.Atom (Core.Types.UnboundSym "defun")) appl_58+                                                                                                                             appl_59 `pseq` applyWrapper appl_18 [appl_59])))+                                                                !appl_60 <- kl_gensym (Core.Types.Atom (Core.Types.UnboundSym "shen.f"))+                                                                appl_60 `pseq` applyWrapper appl_17 [appl_60]+                                          Atom (B (False)) -> do do simpleError (Core.Types.Atom (Core.Types.Str "Cannot profile.\n"))+                                          _ -> throwError "if: expected boolean"++kl_unprofile :: Core.Types.KLValue ->+                Core.Types.KLContext Core.Types.Env Core.Types.KLValue+kl_unprofile (!kl_V3971) = do kl_V3971 `pseq` kl_untrack kl_V3971++kl_shen_profile_func :: Core.Types.KLValue ->+                        Core.Types.KLValue ->+                        Core.Types.KLValue ->+                        Core.Types.KLContext Core.Types.Env Core.Types.KLValue+kl_shen_profile_func (!kl_V3975) (!kl_V3976) (!kl_V3977) = do let !appl_0 = Atom Nil+                                                              !appl_1 <- appl_0 `pseq` klCons (Core.Types.Atom (Core.Types.UnboundSym "run")) appl_0+                                                              !appl_2 <- appl_1 `pseq` klCons (ApplC (wrapNamed "get-time" getTime)) appl_1+                                                              let !appl_3 = Atom Nil+                                                              !appl_4 <- appl_3 `pseq` klCons (Core.Types.Atom (Core.Types.UnboundSym "run")) appl_3+                                                              !appl_5 <- appl_4 `pseq` klCons (ApplC (wrapNamed "get-time" getTime)) appl_4+                                                              let !appl_6 = Atom Nil+                                                              !appl_7 <- appl_6 `pseq` klCons (Core.Types.Atom (Core.Types.UnboundSym "Start")) appl_6+                                                              !appl_8 <- appl_5 `pseq` (appl_7 `pseq` klCons appl_5 appl_7)+                                                              !appl_9 <- appl_8 `pseq` klCons (ApplC (wrapNamed "-" Primitives.subtract)) appl_8+                                                              let !appl_10 = Atom Nil+                                                              !appl_11 <- kl_V3975 `pseq` (appl_10 `pseq` klCons kl_V3975 appl_10)+                                                              !appl_12 <- appl_11 `pseq` klCons (ApplC (wrapNamed "shen.get-profile" kl_shen_get_profile)) appl_11+                                                              let !appl_13 = Atom Nil+                                                              !appl_14 <- appl_13 `pseq` klCons (Core.Types.Atom (Core.Types.UnboundSym "Finish")) appl_13+                                                              !appl_15 <- appl_12 `pseq` (appl_14 `pseq` klCons appl_12 appl_14)+                                                              !appl_16 <- appl_15 `pseq` klCons (ApplC (wrapNamed "+" add)) appl_15+                                                              let !appl_17 = Atom Nil+                                                              !appl_18 <- appl_16 `pseq` (appl_17 `pseq` klCons appl_16 appl_17)+                                                              !appl_19 <- kl_V3975 `pseq` (appl_18 `pseq` klCons kl_V3975 appl_18)+                                                              !appl_20 <- appl_19 `pseq` klCons (ApplC (wrapNamed "shen.put-profile" kl_shen_put_profile)) appl_19+                                                              let !appl_21 = Atom Nil+                                                              !appl_22 <- appl_21 `pseq` klCons (Core.Types.Atom (Core.Types.UnboundSym "Result")) appl_21+                                                              !appl_23 <- appl_20 `pseq` (appl_22 `pseq` klCons appl_20 appl_22)+                                                              !appl_24 <- appl_23 `pseq` klCons (Core.Types.Atom (Core.Types.UnboundSym "Record")) appl_23+                                                              !appl_25 <- appl_24 `pseq` klCons (Core.Types.Atom (Core.Types.UnboundSym "let")) appl_24+                                                              let !appl_26 = Atom Nil+                                                              !appl_27 <- appl_25 `pseq` (appl_26 `pseq` klCons appl_25 appl_26)+                                                              !appl_28 <- appl_9 `pseq` (appl_27 `pseq` klCons appl_9 appl_27)+                                                              !appl_29 <- appl_28 `pseq` klCons (Core.Types.Atom (Core.Types.UnboundSym "Finish")) appl_28+                                                              !appl_30 <- appl_29 `pseq` klCons (Core.Types.Atom (Core.Types.UnboundSym "let")) appl_29+                                                              let !appl_31 = Atom Nil+                                                              !appl_32 <- appl_30 `pseq` (appl_31 `pseq` klCons appl_30 appl_31)+                                                              !appl_33 <- kl_V3977 `pseq` (appl_32 `pseq` klCons kl_V3977 appl_32)+                                                              !appl_34 <- appl_33 `pseq` klCons (Core.Types.Atom (Core.Types.UnboundSym "Result")) appl_33+                                                              !appl_35 <- appl_34 `pseq` klCons (Core.Types.Atom (Core.Types.UnboundSym "let")) appl_34+                                                              let !appl_36 = Atom Nil+                                                              !appl_37 <- appl_35 `pseq` (appl_36 `pseq` klCons appl_35 appl_36)+                                                              !appl_38 <- appl_2 `pseq` (appl_37 `pseq` klCons appl_2 appl_37)+                                                              !appl_39 <- appl_38 `pseq` klCons (Core.Types.Atom (Core.Types.UnboundSym "Start")) appl_38+                                                              appl_39 `pseq` klCons (Core.Types.Atom (Core.Types.UnboundSym "let")) appl_39++kl_profile_results :: Core.Types.KLValue ->+                      Core.Types.KLContext Core.Types.Env Core.Types.KLValue+kl_profile_results (!kl_V3979) = do let !appl_0 = ApplC (Func "lambda" (Context (\(!kl_Results) -> do let !appl_1 = ApplC (Func "lambda" (Context (\(!kl_Initialise) -> do kl_V3979 `pseq` (kl_Results `pseq` kl_Atp kl_V3979 kl_Results))))+                                                                                                      !appl_2 <- kl_V3979 `pseq` kl_shen_put_profile kl_V3979 (Core.Types.Atom (Core.Types.N (Core.Types.KI 0)))+                                                                                                      appl_2 `pseq` applyWrapper appl_1 [appl_2])))+                                    !appl_3 <- kl_V3979 `pseq` kl_shen_get_profile kl_V3979+                                    appl_3 `pseq` applyWrapper appl_0 [appl_3]++kl_shen_get_profile :: Core.Types.KLValue ->+                       Core.Types.KLContext Core.Types.Env Core.Types.KLValue+kl_shen_get_profile (!kl_V3981) = do let !appl_0 = ApplC (PL "thunk" (do return (Core.Types.Atom (Core.Types.N (Core.Types.KI 0)))))+                                     !appl_1 <- value (Core.Types.Atom (Core.Types.UnboundSym "*property-vector*"))+                                     kl_V3981 `pseq` (appl_0 `pseq` (appl_1 `pseq` kl_getDivor kl_V3981 (ApplC (wrapNamed "profile" kl_profile)) appl_0 appl_1))++kl_shen_put_profile :: Core.Types.KLValue ->+                       Core.Types.KLValue ->+                       Core.Types.KLContext Core.Types.Env Core.Types.KLValue+kl_shen_put_profile (!kl_V3984) (!kl_V3985) = do !appl_0 <- value (Core.Types.Atom (Core.Types.UnboundSym "*property-vector*"))+                                                 kl_V3984 `pseq` (kl_V3985 `pseq` (appl_0 `pseq` kl_put kl_V3984 (ApplC (wrapNamed "profile" kl_profile)) kl_V3985 appl_0))++expr7 :: Core.Types.KLContext Core.Types.Env Core.Types.KLValue+expr7 = do (do return (Core.Types.Atom (Core.Types.Str "Copyright (c) 2015, Mark Tarver\n\nAll rights reserved.\n\nRedistribution and use in source and binary forms, with or without\nmodification, are permitted provided that the following conditions are met:\n1. Redistributions of source code must retain the above copyright\n   notice, this list of conditions and the following disclaimer.\n2. Redistributions in binary form must reproduce the above copyright\n   notice, this list of conditions and the following disclaimer in the\n   documentation and/or other materials provided with the distribution.\n3. The name of Mark Tarver may not be used to endorse or promote products\n   derived from this software without specific prior written permission.\n\nTHIS SOFTWARE IS PROVIDED BY Mark Tarver ''AS IS'' AND ANY\nEXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED\nWARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE\nDISCLAIMED. IN NO EVENT SHALL Mark Tarver BE LIABLE FOR ANY\nDIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES\n(INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;\nLOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND\nON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT\n(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS\nSOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE."))) `catchError` (\(!kl_E) -> do return (Core.Types.Atom (Core.Types.Str "E")))+           (do klSet (Core.Types.Atom (Core.Types.UnboundSym "shen.*step*")) (Atom (B False))) `catchError` (\(!kl_E) -> do return (Core.Types.Atom (Core.Types.Str "E")))
Shentong/Backend/Types.hs view
@@ -1,1088 +1,1635 @@-{-# LANGUAGE BangPatterns #-}
-{-# LANGUAGE OverloadedStrings #-}
-{-# LANGUAGE Strict #-}
-{-# LANGUAGE StrictData #-}
-{-# LANGUAGE ViewPatterns #-}
-
-module Backend.Types where
-
-import Control.Monad.Except
-import Control.Parallel
-import Environment
-import Primitives as Primitives
-import Backend.Utils
-import Types as Types
-import Utils
-import Wrap
-import Backend.Toplevel
-import Backend.Core
-import Backend.Sys
-import Backend.Sequent
-import Backend.Yacc
-import Backend.Reader
-import Backend.Prolog
-import Backend.Track
-import Backend.Load
-import Backend.Writer
-import Backend.Macros
-import Backend.Declarations
-
-{-
-Copyright (c) 2015, Mark Tarver
-All rights reserved.
-
-Redistribution and use in source and binary forms, with or without
-modification, are permitted provided that the following conditions are met:
-
-1. Redistributions of source code must retain the above copyright
-   notice, this list of conditions and the following disclaimer.
-2. Redistributions in binary form must reproduce the above copyright
-   notice, this list of conditions and the following disclaimer in the
-   documentation and/or other materials provided with the distribution.
-3. The name of Mark Tarver may not be used to endorse or promote products
-   derived from this software without specific prior written permission.
-
-THIS SOFTWARE IS PROVIDED BY Mark Tarver ''AS IS'' AND ANY
-EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
-WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
-DISCLAIMED. IN NO EVENT SHALL Mark Tarver BE LIABLE FOR ANY
-DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
-(INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
-LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND
-ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
-(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
-SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
--}
-
-kl_declare :: Types.KLValue ->
-              Types.KLValue -> Types.KLContext Types.Env Types.KLValue
-kl_declare (!kl_V3854) (!kl_V3855) = do let !appl_0 = ApplC (Func "lambda" (Context (\(!kl_Record) -> do let !appl_1 = ApplC (Func "lambda" (Context (\(!kl_Variancy) -> do let !appl_2 = ApplC (Func "lambda" (Context (\(!kl_Type) -> do let !appl_3 = ApplC (Func "lambda" (Context (\(!kl_FMult) -> do let !appl_4 = ApplC (Func "lambda" (Context (\(!kl_Parameters) -> do let !appl_5 = ApplC (Func "lambda" (Context (\(!kl_Clause) -> do let !appl_6 = ApplC (Func "lambda" (Context (\(!kl_AUM_instruction) -> do let !appl_7 = ApplC (Func "lambda" (Context (\(!kl_Code) -> do let !appl_8 = ApplC (Func "lambda" (Context (\(!kl_ShenDef) -> do let !appl_9 = ApplC (Func "lambda" (Context (\(!kl_Eval) -> do return kl_V3854)))
-                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                            !appl_10 <- kl_ShenDef `pseq` kl_shen_eval_without_macros kl_ShenDef
-                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                            appl_10 `pseq` applyWrapper appl_9 [appl_10])))
-                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                          !appl_11 <- klCons (Types.Atom (Types.UnboundSym "Continuation")) (Types.Atom Types.Nil)
-                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                          !appl_12 <- appl_11 `pseq` klCons (Types.Atom (Types.UnboundSym "ProcessN")) appl_11
-                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                          !appl_13 <- kl_Code `pseq` klCons kl_Code (Types.Atom Types.Nil)
-                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                          !appl_14 <- appl_13 `pseq` klCons (Types.Atom (Types.UnboundSym "->")) appl_13
-                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                          !appl_15 <- appl_12 `pseq` (appl_14 `pseq` kl_append appl_12 appl_14)
-                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                          !appl_16 <- kl_Parameters `pseq` (appl_15 `pseq` kl_append kl_Parameters appl_15)
-                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                          !appl_17 <- kl_FMult `pseq` (appl_16 `pseq` klCons kl_FMult appl_16)
-                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                          !appl_18 <- appl_17 `pseq` klCons (Types.Atom (Types.UnboundSym "define")) appl_17
-                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                          appl_18 `pseq` applyWrapper appl_8 [appl_18])))
-                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                           !appl_19 <- kl_AUM_instruction `pseq` kl_shen_aum_to_shen kl_AUM_instruction
-                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                           appl_19 `pseq` applyWrapper appl_7 [appl_19])))
-                                                                                                                                                                                                                                                                                                                                                                                                                                                 !appl_20 <- kl_Clause `pseq` (kl_Parameters `pseq` kl_shen_aum kl_Clause kl_Parameters)
-                                                                                                                                                                                                                                                                                                                                                                                                                                                 appl_20 `pseq` applyWrapper appl_6 [appl_20])))
-                                                                                                                                                                                                                                                                                                                                                                                !appl_21 <- klCons (Types.Atom (Types.UnboundSym "X")) (Types.Atom Types.Nil)
-                                                                                                                                                                                                                                                                                                                                                                                !appl_22 <- kl_FMult `pseq` (appl_21 `pseq` klCons kl_FMult appl_21)
-                                                                                                                                                                                                                                                                                                                                                                                !appl_23 <- kl_Type `pseq` klCons kl_Type (Types.Atom Types.Nil)
-                                                                                                                                                                                                                                                                                                                                                                                !appl_24 <- appl_23 `pseq` klCons (Types.Atom (Types.UnboundSym "X")) appl_23
-                                                                                                                                                                                                                                                                                                                                                                                !appl_25 <- appl_24 `pseq` klCons (ApplC (wrapNamed "unify!" kl_unifyExcl)) appl_24
-                                                                                                                                                                                                                                                                                                                                                                                !appl_26 <- appl_25 `pseq` klCons appl_25 (Types.Atom Types.Nil)
-                                                                                                                                                                                                                                                                                                                                                                                !appl_27 <- appl_26 `pseq` klCons appl_26 (Types.Atom Types.Nil)
-                                                                                                                                                                                                                                                                                                                                                                                !appl_28 <- appl_27 `pseq` klCons (Types.Atom (Types.UnboundSym ":-")) appl_27
-                                                                                                                                                                                                                                                                                                                                                                                !appl_29 <- appl_22 `pseq` (appl_28 `pseq` klCons appl_22 appl_28)
-                                                                                                                                                                                                                                                                                                                                                                                appl_29 `pseq` applyWrapper appl_5 [appl_29])))
-                                                                                                                                                                                                                                                                                                           !appl_30 <- kl_shen_parameters (Types.Atom (Types.N (Types.KI 1)))
-                                                                                                                                                                                                                                                                                                           appl_30 `pseq` applyWrapper appl_4 [appl_30])))
-                                                                                                                                                                                                                                           !appl_31 <- kl_V3854 `pseq` kl_concat (Types.Atom (Types.UnboundSym "shen.type-signature-of-")) kl_V3854
-                                                                                                                                                                                                                                           appl_31 `pseq` applyWrapper appl_3 [appl_31])))
-                                                                                                                                                                            !appl_32 <- kl_V3855 `pseq` kl_shen_demodulate kl_V3855
-                                                                                                                                                                            !appl_33 <- appl_32 `pseq` kl_shen_rcons_form appl_32
-                                                                                                                                                                            appl_33 `pseq` applyWrapper appl_2 [appl_33])))
-                                                                                                         !appl_34 <- (do kl_V3854 `pseq` (kl_V3855 `pseq` kl_shen_variancy_test kl_V3854 kl_V3855)) `catchError` (\(!kl_E) -> do return (Types.Atom (Types.UnboundSym "shen.skip")))
-                                                                                                         appl_34 `pseq` applyWrapper appl_1 [appl_34])))
-                                        !appl_35 <- kl_V3854 `pseq` (kl_V3855 `pseq` klCons kl_V3854 kl_V3855)
-                                        !appl_36 <- value (Types.Atom (Types.UnboundSym "shen.*signedfuncs*"))
-                                        !appl_37 <- appl_35 `pseq` (appl_36 `pseq` klCons appl_35 appl_36)
-                                        !appl_38 <- appl_37 `pseq` klSet (Types.Atom (Types.UnboundSym "shen.*signedfuncs*")) appl_37
-                                        appl_38 `pseq` applyWrapper appl_0 [appl_38]
-
-kl_shen_demodulate :: Types.KLValue ->
-                      Types.KLContext Types.Env Types.KLValue
-kl_shen_demodulate (!kl_V3857) = do (do let !appl_0 = ApplC (Func "lambda" (Context (\(!kl_Demod) -> do !kl_if_1 <- kl_Demod `pseq` (kl_V3857 `pseq` eq kl_Demod kl_V3857)
-                                                                                                        case kl_if_1 of
-                                                                                                            Atom (B (True)) -> do return kl_V3857
-                                                                                                            Atom (B (False)) -> do do kl_Demod `pseq` kl_shen_demodulate kl_Demod
-                                                                                                            _ -> throwError "if: expected boolean")))
-                                        let !appl_2 = ApplC (Func "lambda" (Context (\(!kl_Y) -> do let !aw_3 = Types.Atom (Types.UnboundSym "shen.demod")
-                                                                                                    kl_Y `pseq` applyWrapper aw_3 [kl_Y])))
-                                        !appl_4 <- appl_2 `pseq` (kl_V3857 `pseq` kl_shen_walk appl_2 kl_V3857)
-                                        appl_4 `pseq` applyWrapper appl_0 [appl_4]) `catchError` (\(!kl_E) -> do return kl_V3857)
-
-kl_shen_variancy_test :: Types.KLValue ->
-                         Types.KLValue -> Types.KLContext Types.Env Types.KLValue
-kl_shen_variancy_test (!kl_V3860) (!kl_V3861) = do let !appl_0 = ApplC (Func "lambda" (Context (\(!kl_TypeF) -> do let !appl_1 = ApplC (Func "lambda" (Context (\(!kl_Check) -> do return (Types.Atom (Types.UnboundSym "shen.skip")))))
-                                                                                                                   !appl_2 <- let pat_cond_3 = do return (Types.Atom (Types.UnboundSym "shen.skip"))
-                                                                                                                                  pat_cond_4 = do do !kl_if_5 <- kl_TypeF `pseq` (kl_V3861 `pseq` kl_shen_variantP kl_TypeF kl_V3861)
-                                                                                                                                                     case kl_if_5 of
-                                                                                                                                                         Atom (B (True)) -> do return (Types.Atom (Types.UnboundSym "shen.skip"))
-                                                                                                                                                         Atom (B (False)) -> do do !appl_6 <- kl_V3860 `pseq` kl_shen_app kl_V3860 (Types.Atom (Types.Str " may create errors\n")) (Types.Atom (Types.UnboundSym "shen.a"))
-                                                                                                                                                                                   !appl_7 <- appl_6 `pseq` cn (Types.Atom (Types.Str "warning: changing the type of ")) appl_6
-                                                                                                                                                                                   !appl_8 <- kl_stoutput
-                                                                                                                                                                                   appl_7 `pseq` (appl_8 `pseq` kl_shen_prhush appl_7 appl_8)
-                                                                                                                                                         _ -> throwError "if: expected boolean"
-                                                                                                                               in case kl_TypeF of
-                                                                                                                                      kl_TypeF@(Atom (UnboundSym "symbol")) -> pat_cond_3
-                                                                                                                                      kl_TypeF@(ApplC (PL "symbol"
-                                                                                                                                                          _)) -> pat_cond_3
-                                                                                                                                      kl_TypeF@(ApplC (Func "symbol"
-                                                                                                                                                            _)) -> pat_cond_3
-                                                                                                                                      _ -> pat_cond_4
-                                                                                                                   appl_2 `pseq` applyWrapper appl_1 [appl_2])))
-                                                   let !aw_9 = Types.Atom (Types.UnboundSym "shen.typecheck")
-                                                   !appl_10 <- kl_V3860 `pseq` applyWrapper aw_9 [kl_V3860,
-                                                                                                  Types.Atom (Types.UnboundSym "B")]
-                                                   appl_10 `pseq` applyWrapper appl_0 [appl_10]
-
-kl_shen_variantP :: Types.KLValue ->
-                    Types.KLValue -> Types.KLContext Types.Env Types.KLValue
-kl_shen_variantP (!kl_V3874) (!kl_V3875) = do !kl_if_0 <- kl_V3875 `pseq` (kl_V3874 `pseq` eq kl_V3875 kl_V3874)
-                                              case kl_if_0 of
-                                                  Atom (B (True)) -> do return (Atom (B True))
-                                                  Atom (B (False)) -> do !kl_if_1 <- let pat_cond_2 kl_V3874 kl_V3874h kl_V3874t = do let pat_cond_3 kl_V3875 kl_V3875h kl_V3875t = do return (Atom (B True))
-                                                                                                                                          pat_cond_4 = do do return (Atom (B False))
-                                                                                                                                       in case kl_V3875 of
-                                                                                                                                              !(kl_V3875@(Cons (!kl_V3875h)
-                                                                                                                                                               (!kl_V3875t))) | eqCore kl_V3875h kl_V3874h -> pat_cond_3 kl_V3875 kl_V3875h kl_V3875t
-                                                                                                                                              _ -> pat_cond_4
-                                                                                         pat_cond_5 = do do return (Atom (B False))
-                                                                                      in case kl_V3874 of
-                                                                                             !(kl_V3874@(Cons (!kl_V3874h)
-                                                                                                              (!kl_V3874t))) -> pat_cond_2 kl_V3874 kl_V3874h kl_V3874t
-                                                                                             _ -> pat_cond_5
-                                                                         case kl_if_1 of
-                                                                             Atom (B (True)) -> do !appl_6 <- kl_V3874 `pseq` tl kl_V3874
-                                                                                                   !appl_7 <- kl_V3875 `pseq` tl kl_V3875
-                                                                                                   appl_6 `pseq` (appl_7 `pseq` kl_shen_variantP appl_6 appl_7)
-                                                                             Atom (B (False)) -> do !kl_if_8 <- let pat_cond_9 kl_V3874 kl_V3874h kl_V3874t = do !kl_if_10 <- let pat_cond_11 kl_V3875 kl_V3875h kl_V3875t = do !kl_if_12 <- kl_V3874h `pseq` kl_shen_pvarP kl_V3874h
-                                                                                                                                                                                                                                !kl_if_13 <- case kl_if_12 of
-                                                                                                                                                                                                                                                 Atom (B (True)) -> do !kl_if_14 <- kl_V3875h `pseq` kl_variableP kl_V3875h
-                                                                                                                                                                                                                                                                       case kl_if_14 of
-                                                                                                                                                                                                                                                                           Atom (B (True)) -> do return (Atom (B True))
-                                                                                                                                                                                                                                                                           Atom (B (False)) -> do do return (Atom (B False))
-                                                                                                                                                                                                                                                                           _ -> throwError "if: expected boolean"
-                                                                                                                                                                                                                                                 Atom (B (False)) -> do do return (Atom (B False))
-                                                                                                                                                                                                                                                 _ -> throwError "if: expected boolean"
-                                                                                                                                                                                                                                case kl_if_13 of
-                                                                                                                                                                                                                                    Atom (B (True)) -> do return (Atom (B True))
-                                                                                                                                                                                                                                    Atom (B (False)) -> do do return (Atom (B False))
-                                                                                                                                                                                                                                    _ -> throwError "if: expected boolean"
-                                                                                                                                                                                  pat_cond_15 = do do return (Atom (B False))
-                                                                                                                                                                               in case kl_V3875 of
-                                                                                                                                                                                      !(kl_V3875@(Cons (!kl_V3875h)
-                                                                                                                                                                                                       (!kl_V3875t))) -> pat_cond_11 kl_V3875 kl_V3875h kl_V3875t
-                                                                                                                                                                                      _ -> pat_cond_15
-                                                                                                                                                                 case kl_if_10 of
-                                                                                                                                                                     Atom (B (True)) -> do return (Atom (B True))
-                                                                                                                                                                     Atom (B (False)) -> do do return (Atom (B False))
-                                                                                                                                                                     _ -> throwError "if: expected boolean"
-                                                                                                                    pat_cond_16 = do do return (Atom (B False))
-                                                                                                                 in case kl_V3874 of
-                                                                                                                        !(kl_V3874@(Cons (!kl_V3874h)
-                                                                                                                                         (!kl_V3874t))) -> pat_cond_9 kl_V3874 kl_V3874h kl_V3874t
-                                                                                                                        _ -> pat_cond_16
-                                                                                                    case kl_if_8 of
-                                                                                                        Atom (B (True)) -> do !appl_17 <- kl_V3874 `pseq` hd kl_V3874
-                                                                                                                              !appl_18 <- kl_V3874 `pseq` tl kl_V3874
-                                                                                                                              !appl_19 <- appl_17 `pseq` (appl_18 `pseq` kl_subst (Types.Atom (Types.UnboundSym "shen.a")) appl_17 appl_18)
-                                                                                                                              !appl_20 <- kl_V3875 `pseq` hd kl_V3875
-                                                                                                                              !appl_21 <- kl_V3875 `pseq` tl kl_V3875
-                                                                                                                              !appl_22 <- appl_20 `pseq` (appl_21 `pseq` kl_subst (Types.Atom (Types.UnboundSym "shen.a")) appl_20 appl_21)
-                                                                                                                              appl_19 `pseq` (appl_22 `pseq` kl_shen_variantP appl_19 appl_22)
-                                                                                                        Atom (B (False)) -> do !kl_if_23 <- let pat_cond_24 kl_V3874 kl_V3874h kl_V3874t = do !kl_if_25 <- let pat_cond_26 kl_V3874h kl_V3874hh kl_V3874ht = do let pat_cond_27 kl_V3875 kl_V3875h kl_V3875hh kl_V3875ht kl_V3875t = do return (Atom (B True))
-                                                                                                                                                                                                                                                                    pat_cond_28 = do do return (Atom (B False))
-                                                                                                                                                                                                                                                                 in case kl_V3875 of
-                                                                                                                                                                                                                                                                        !(kl_V3875@(Cons (!(kl_V3875h@(Cons (!kl_V3875hh)
-                                                                                                                                                                                                                                                                                                            (!kl_V3875ht))))
-                                                                                                                                                                                                                                                                                         (!kl_V3875t))) -> pat_cond_27 kl_V3875 kl_V3875h kl_V3875hh kl_V3875ht kl_V3875t
-                                                                                                                                                                                                                                                                        _ -> pat_cond_28
-                                                                                                                                                                                                               pat_cond_29 = do do return (Atom (B False))
-                                                                                                                                                                                                            in case kl_V3874h of
-                                                                                                                                                                                                                   !(kl_V3874h@(Cons (!kl_V3874hh)
-                                                                                                                                                                                                                                     (!kl_V3874ht))) -> pat_cond_26 kl_V3874h kl_V3874hh kl_V3874ht
-                                                                                                                                                                                                                   _ -> pat_cond_29
-                                                                                                                                                                                              case kl_if_25 of
-                                                                                                                                                                                                  Atom (B (True)) -> do return (Atom (B True))
-                                                                                                                                                                                                  Atom (B (False)) -> do do return (Atom (B False))
-                                                                                                                                                                                                  _ -> throwError "if: expected boolean"
-                                                                                                                                                pat_cond_30 = do do return (Atom (B False))
-                                                                                                                                             in case kl_V3874 of
-                                                                                                                                                    !(kl_V3874@(Cons (!kl_V3874h)
-                                                                                                                                                                     (!kl_V3874t))) -> pat_cond_24 kl_V3874 kl_V3874h kl_V3874t
-                                                                                                                                                    _ -> pat_cond_30
-                                                                                                                               case kl_if_23 of
-                                                                                                                                   Atom (B (True)) -> do !appl_31 <- kl_V3874 `pseq` hd kl_V3874
-                                                                                                                                                         !appl_32 <- kl_V3874 `pseq` tl kl_V3874
-                                                                                                                                                         !appl_33 <- appl_31 `pseq` (appl_32 `pseq` kl_append appl_31 appl_32)
-                                                                                                                                                         !appl_34 <- kl_V3875 `pseq` hd kl_V3875
-                                                                                                                                                         !appl_35 <- kl_V3875 `pseq` tl kl_V3875
-                                                                                                                                                         !appl_36 <- appl_34 `pseq` (appl_35 `pseq` kl_append appl_34 appl_35)
-                                                                                                                                                         appl_33 `pseq` (appl_36 `pseq` kl_shen_variantP appl_33 appl_36)
-                                                                                                                                   Atom (B (False)) -> do do return (Atom (B False))
-                                                                                                                                   _ -> throwError "if: expected boolean"
-                                                                                                        _ -> throwError "if: expected boolean"
-                                                                             _ -> throwError "if: expected boolean"
-                                                  _ -> throwError "if: expected boolean"
-
-expr12 :: Types.KLContext Types.Env Types.KLValue
-expr12 = do (do return (Types.Atom (Types.Str "Copyright (c) 2015, Mark Tarver\n\nAll rights reserved.\n\nRedistribution and use in source and binary forms, with or without\nmodification, are permitted provided that the following conditions are met:\n1. Redistributions of source code must retain the above copyright\n   notice, this list of conditions and the following disclaimer.\n2. Redistributions in binary form must reproduce the above copyright\n   notice, this list of conditions and the following disclaimer in the\n   documentation and/or other materials provided with the distribution.\n3. The name of Mark Tarver may not be used to endorse or promote products\n   derived from this software without specific prior written permission.\n\nTHIS SOFTWARE IS PROVIDED BY Mark Tarver ''AS IS'' AND ANY\nEXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED\nWARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE\nDISCLAIMED. IN NO EVENT SHALL Mark Tarver BE LIABLE FOR ANY\nDIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES\n(INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;\nLOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND\nON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT\n(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS\nSOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE."))) `catchError` (\(!kl_E) -> do return (Types.Atom (Types.Str "E")))
-            (do !appl_0 <- klCons (Types.Atom (Types.UnboundSym "boolean")) (Types.Atom Types.Nil)
-                !appl_1 <- appl_0 `pseq` klCons (Types.Atom (Types.UnboundSym "-->")) appl_0
-                !appl_2 <- appl_1 `pseq` klCons (Types.Atom (Types.UnboundSym "A")) appl_1
-                appl_2 `pseq` kl_declare (ApplC (wrapNamed "absvector?" absvectorP)) appl_2) `catchError` (\(!kl_E) -> do return (Types.Atom (Types.Str "E")))
-            (do !appl_3 <- klCons (Types.Atom (Types.UnboundSym "A")) (Types.Atom Types.Nil)
-                !appl_4 <- appl_3 `pseq` klCons (Types.Atom (Types.UnboundSym "list")) appl_3
-                !appl_5 <- klCons (Types.Atom (Types.UnboundSym "A")) (Types.Atom Types.Nil)
-                !appl_6 <- appl_5 `pseq` klCons (Types.Atom (Types.UnboundSym "list")) appl_5
-                !appl_7 <- appl_6 `pseq` klCons appl_6 (Types.Atom Types.Nil)
-                !appl_8 <- appl_7 `pseq` klCons (Types.Atom (Types.UnboundSym "-->")) appl_7
-                !appl_9 <- appl_4 `pseq` (appl_8 `pseq` klCons appl_4 appl_8)
-                !appl_10 <- appl_9 `pseq` klCons appl_9 (Types.Atom Types.Nil)
-                !appl_11 <- appl_10 `pseq` klCons (Types.Atom (Types.UnboundSym "-->")) appl_10
-                !appl_12 <- appl_11 `pseq` klCons (Types.Atom (Types.UnboundSym "A")) appl_11
-                appl_12 `pseq` kl_declare (ApplC (wrapNamed "adjoin" kl_adjoin)) appl_12) `catchError` (\(!kl_E) -> do return (Types.Atom (Types.Str "E")))
-            (do !appl_13 <- klCons (Types.Atom (Types.UnboundSym "boolean")) (Types.Atom Types.Nil)
-                !appl_14 <- appl_13 `pseq` klCons (Types.Atom (Types.UnboundSym "-->")) appl_13
-                !appl_15 <- appl_14 `pseq` klCons (Types.Atom (Types.UnboundSym "boolean")) appl_14
-                !appl_16 <- appl_15 `pseq` klCons appl_15 (Types.Atom Types.Nil)
-                !appl_17 <- appl_16 `pseq` klCons (Types.Atom (Types.UnboundSym "-->")) appl_16
-                !appl_18 <- appl_17 `pseq` klCons (Types.Atom (Types.UnboundSym "boolean")) appl_17
-                appl_18 `pseq` kl_declare (Types.Atom (Types.UnboundSym "and")) appl_18) `catchError` (\(!kl_E) -> do return (Types.Atom (Types.Str "E")))
-            (do !appl_19 <- klCons (Types.Atom (Types.UnboundSym "string")) (Types.Atom Types.Nil)
-                !appl_20 <- appl_19 `pseq` klCons (Types.Atom (Types.UnboundSym "-->")) appl_19
-                !appl_21 <- appl_20 `pseq` klCons (Types.Atom (Types.UnboundSym "symbol")) appl_20
-                !appl_22 <- appl_21 `pseq` klCons appl_21 (Types.Atom Types.Nil)
-                !appl_23 <- appl_22 `pseq` klCons (Types.Atom (Types.UnboundSym "-->")) appl_22
-                !appl_24 <- appl_23 `pseq` klCons (Types.Atom (Types.UnboundSym "string")) appl_23
-                !appl_25 <- appl_24 `pseq` klCons appl_24 (Types.Atom Types.Nil)
-                !appl_26 <- appl_25 `pseq` klCons (Types.Atom (Types.UnboundSym "-->")) appl_25
-                !appl_27 <- appl_26 `pseq` klCons (Types.Atom (Types.UnboundSym "A")) appl_26
-                appl_27 `pseq` kl_declare (ApplC (wrapNamed "shen.app" kl_shen_app)) appl_27) `catchError` (\(!kl_E) -> do return (Types.Atom (Types.Str "E")))
-            (do !appl_28 <- klCons (Types.Atom (Types.UnboundSym "A")) (Types.Atom Types.Nil)
-                !appl_29 <- appl_28 `pseq` klCons (Types.Atom (Types.UnboundSym "list")) appl_28
-                !appl_30 <- klCons (Types.Atom (Types.UnboundSym "A")) (Types.Atom Types.Nil)
-                !appl_31 <- appl_30 `pseq` klCons (Types.Atom (Types.UnboundSym "list")) appl_30
-                !appl_32 <- klCons (Types.Atom (Types.UnboundSym "A")) (Types.Atom Types.Nil)
-                !appl_33 <- appl_32 `pseq` klCons (Types.Atom (Types.UnboundSym "list")) appl_32
-                !appl_34 <- appl_33 `pseq` klCons appl_33 (Types.Atom Types.Nil)
-                !appl_35 <- appl_34 `pseq` klCons (Types.Atom (Types.UnboundSym "-->")) appl_34
-                !appl_36 <- appl_31 `pseq` (appl_35 `pseq` klCons appl_31 appl_35)
-                !appl_37 <- appl_36 `pseq` klCons appl_36 (Types.Atom Types.Nil)
-                !appl_38 <- appl_37 `pseq` klCons (Types.Atom (Types.UnboundSym "-->")) appl_37
-                !appl_39 <- appl_29 `pseq` (appl_38 `pseq` klCons appl_29 appl_38)
-                appl_39 `pseq` kl_declare (ApplC (wrapNamed "append" kl_append)) appl_39) `catchError` (\(!kl_E) -> do return (Types.Atom (Types.Str "E")))
-            (do !appl_40 <- klCons (Types.Atom (Types.UnboundSym "number")) (Types.Atom Types.Nil)
-                !appl_41 <- appl_40 `pseq` klCons (Types.Atom (Types.UnboundSym "-->")) appl_40
-                !appl_42 <- appl_41 `pseq` klCons (Types.Atom (Types.UnboundSym "A")) appl_41
-                appl_42 `pseq` kl_declare (ApplC (wrapNamed "arity" kl_arity)) appl_42) `catchError` (\(!kl_E) -> do return (Types.Atom (Types.Str "E")))
-            (do !appl_43 <- klCons (Types.Atom (Types.UnboundSym "A")) (Types.Atom Types.Nil)
-                !appl_44 <- appl_43 `pseq` klCons (Types.Atom (Types.UnboundSym "list")) appl_43
-                !appl_45 <- appl_44 `pseq` klCons appl_44 (Types.Atom Types.Nil)
-                !appl_46 <- appl_45 `pseq` klCons (Types.Atom (Types.UnboundSym "list")) appl_45
-                !appl_47 <- klCons (Types.Atom (Types.UnboundSym "A")) (Types.Atom Types.Nil)
-                !appl_48 <- appl_47 `pseq` klCons (Types.Atom (Types.UnboundSym "list")) appl_47
-                !appl_49 <- appl_48 `pseq` klCons appl_48 (Types.Atom Types.Nil)
-                !appl_50 <- appl_49 `pseq` klCons (Types.Atom (Types.UnboundSym "-->")) appl_49
-                !appl_51 <- appl_46 `pseq` (appl_50 `pseq` klCons appl_46 appl_50)
-                !appl_52 <- appl_51 `pseq` klCons appl_51 (Types.Atom Types.Nil)
-                !appl_53 <- appl_52 `pseq` klCons (Types.Atom (Types.UnboundSym "-->")) appl_52
-                !appl_54 <- appl_53 `pseq` klCons (Types.Atom (Types.UnboundSym "A")) appl_53
-                appl_54 `pseq` kl_declare (ApplC (wrapNamed "assoc" kl_assoc)) appl_54) `catchError` (\(!kl_E) -> do return (Types.Atom (Types.Str "E")))
-            (do !appl_55 <- klCons (Types.Atom (Types.UnboundSym "boolean")) (Types.Atom Types.Nil)
-                !appl_56 <- appl_55 `pseq` klCons (Types.Atom (Types.UnboundSym "-->")) appl_55
-                !appl_57 <- appl_56 `pseq` klCons (Types.Atom (Types.UnboundSym "A")) appl_56
-                appl_57 `pseq` kl_declare (ApplC (wrapNamed "boolean?" kl_booleanP)) appl_57) `catchError` (\(!kl_E) -> do return (Types.Atom (Types.Str "E")))
-            (do !appl_58 <- klCons (Types.Atom (Types.UnboundSym "boolean")) (Types.Atom Types.Nil)
-                !appl_59 <- appl_58 `pseq` klCons (Types.Atom (Types.UnboundSym "-->")) appl_58
-                !appl_60 <- appl_59 `pseq` klCons (Types.Atom (Types.UnboundSym "symbol")) appl_59
-                appl_60 `pseq` kl_declare (ApplC (wrapNamed "bound?" kl_boundP)) appl_60) `catchError` (\(!kl_E) -> do return (Types.Atom (Types.Str "E")))
-            (do !appl_61 <- klCons (Types.Atom (Types.UnboundSym "string")) (Types.Atom Types.Nil)
-                !appl_62 <- appl_61 `pseq` klCons (Types.Atom (Types.UnboundSym "-->")) appl_61
-                !appl_63 <- appl_62 `pseq` klCons (Types.Atom (Types.UnboundSym "string")) appl_62
-                appl_63 `pseq` kl_declare (ApplC (wrapNamed "cd" kl_cd)) appl_63) `catchError` (\(!kl_E) -> do return (Types.Atom (Types.Str "E")))
-            (do !appl_64 <- klCons (Types.Atom (Types.UnboundSym "A")) (Types.Atom Types.Nil)
-                !appl_65 <- appl_64 `pseq` klCons (Types.Atom (Types.UnboundSym "stream")) appl_64
-                !appl_66 <- klCons (Types.Atom (Types.UnboundSym "B")) (Types.Atom Types.Nil)
-                !appl_67 <- appl_66 `pseq` klCons (Types.Atom (Types.UnboundSym "list")) appl_66
-                !appl_68 <- appl_67 `pseq` klCons appl_67 (Types.Atom Types.Nil)
-                !appl_69 <- appl_68 `pseq` klCons (Types.Atom (Types.UnboundSym "-->")) appl_68
-                !appl_70 <- appl_65 `pseq` (appl_69 `pseq` klCons appl_65 appl_69)
-                appl_70 `pseq` kl_declare (ApplC (wrapNamed "close" closeStream)) appl_70) `catchError` (\(!kl_E) -> do return (Types.Atom (Types.Str "E")))
-            (do !appl_71 <- klCons (Types.Atom (Types.UnboundSym "string")) (Types.Atom Types.Nil)
-                !appl_72 <- appl_71 `pseq` klCons (Types.Atom (Types.UnboundSym "-->")) appl_71
-                !appl_73 <- appl_72 `pseq` klCons (Types.Atom (Types.UnboundSym "string")) appl_72
-                !appl_74 <- appl_73 `pseq` klCons appl_73 (Types.Atom Types.Nil)
-                !appl_75 <- appl_74 `pseq` klCons (Types.Atom (Types.UnboundSym "-->")) appl_74
-                !appl_76 <- appl_75 `pseq` klCons (Types.Atom (Types.UnboundSym "string")) appl_75
-                appl_76 `pseq` kl_declare (ApplC (wrapNamed "cn" cn)) appl_76) `catchError` (\(!kl_E) -> do return (Types.Atom (Types.Str "E")))
-            (do !appl_77 <- klCons (Types.Atom (Types.UnboundSym "B")) (Types.Atom Types.Nil)
-                !appl_78 <- appl_77 `pseq` klCons (Types.Atom (Types.UnboundSym "shen.==>")) appl_77
-                !appl_79 <- appl_78 `pseq` klCons (Types.Atom (Types.UnboundSym "A")) appl_78
-                !appl_80 <- klCons (Types.Atom (Types.UnboundSym "B")) (Types.Atom Types.Nil)
-                !appl_81 <- appl_80 `pseq` klCons (Types.Atom (Types.UnboundSym "-->")) appl_80
-                !appl_82 <- appl_81 `pseq` klCons (Types.Atom (Types.UnboundSym "A")) appl_81
-                !appl_83 <- klCons (Types.Atom (Types.UnboundSym "B")) (Types.Atom Types.Nil)
-                !appl_84 <- appl_83 `pseq` klCons (Types.Atom (Types.UnboundSym "-->")) appl_83
-                !appl_85 <- appl_82 `pseq` (appl_84 `pseq` klCons appl_82 appl_84)
-                !appl_86 <- appl_85 `pseq` klCons appl_85 (Types.Atom Types.Nil)
-                !appl_87 <- appl_86 `pseq` klCons (Types.Atom (Types.UnboundSym "-->")) appl_86
-                !appl_88 <- appl_87 `pseq` klCons (Types.Atom (Types.UnboundSym "A")) appl_87
-                !appl_89 <- appl_88 `pseq` klCons appl_88 (Types.Atom Types.Nil)
-                !appl_90 <- appl_89 `pseq` klCons (Types.Atom (Types.UnboundSym "-->")) appl_89
-                !appl_91 <- appl_79 `pseq` (appl_90 `pseq` klCons appl_79 appl_90)
-                appl_91 `pseq` kl_declare (ApplC (wrapNamed "compile" kl_compile)) appl_91) `catchError` (\(!kl_E) -> do return (Types.Atom (Types.Str "E")))
-            (do !appl_92 <- klCons (Types.Atom (Types.UnboundSym "boolean")) (Types.Atom Types.Nil)
-                !appl_93 <- appl_92 `pseq` klCons (Types.Atom (Types.UnboundSym "-->")) appl_92
-                !appl_94 <- appl_93 `pseq` klCons (Types.Atom (Types.UnboundSym "A")) appl_93
-                appl_94 `pseq` kl_declare (ApplC (wrapNamed "cons?" consP)) appl_94) `catchError` (\(!kl_E) -> do return (Types.Atom (Types.Str "E")))
-            (do !appl_95 <- klCons (Types.Atom (Types.UnboundSym "B")) (Types.Atom Types.Nil)
-                !appl_96 <- appl_95 `pseq` klCons (Types.Atom (Types.UnboundSym "-->")) appl_95
-                !appl_97 <- appl_96 `pseq` klCons (Types.Atom (Types.UnboundSym "A")) appl_96
-                !appl_98 <- klCons (Types.Atom (Types.UnboundSym "symbol")) (Types.Atom Types.Nil)
-                !appl_99 <- appl_98 `pseq` klCons (Types.Atom (Types.UnboundSym "-->")) appl_98
-                !appl_100 <- appl_97 `pseq` (appl_99 `pseq` klCons appl_97 appl_99)
-                appl_100 `pseq` kl_declare (ApplC (wrapNamed "destroy" kl_destroy)) appl_100) `catchError` (\(!kl_E) -> do return (Types.Atom (Types.Str "E")))
-            (do !appl_101 <- klCons (Types.Atom (Types.UnboundSym "A")) (Types.Atom Types.Nil)
-                !appl_102 <- appl_101 `pseq` klCons (Types.Atom (Types.UnboundSym "list")) appl_101
-                !appl_103 <- klCons (Types.Atom (Types.UnboundSym "A")) (Types.Atom Types.Nil)
-                !appl_104 <- appl_103 `pseq` klCons (Types.Atom (Types.UnboundSym "list")) appl_103
-                !appl_105 <- klCons (Types.Atom (Types.UnboundSym "A")) (Types.Atom Types.Nil)
-                !appl_106 <- appl_105 `pseq` klCons (Types.Atom (Types.UnboundSym "list")) appl_105
-                !appl_107 <- appl_106 `pseq` klCons appl_106 (Types.Atom Types.Nil)
-                !appl_108 <- appl_107 `pseq` klCons (Types.Atom (Types.UnboundSym "-->")) appl_107
-                !appl_109 <- appl_104 `pseq` (appl_108 `pseq` klCons appl_104 appl_108)
-                !appl_110 <- appl_109 `pseq` klCons appl_109 (Types.Atom Types.Nil)
-                !appl_111 <- appl_110 `pseq` klCons (Types.Atom (Types.UnboundSym "-->")) appl_110
-                !appl_112 <- appl_102 `pseq` (appl_111 `pseq` klCons appl_102 appl_111)
-                appl_112 `pseq` kl_declare (ApplC (wrapNamed "difference" kl_difference)) appl_112) `catchError` (\(!kl_E) -> do return (Types.Atom (Types.Str "E")))
-            (do !appl_113 <- klCons (Types.Atom (Types.UnboundSym "B")) (Types.Atom Types.Nil)
-                !appl_114 <- appl_113 `pseq` klCons (Types.Atom (Types.UnboundSym "-->")) appl_113
-                !appl_115 <- appl_114 `pseq` klCons (Types.Atom (Types.UnboundSym "B")) appl_114
-                !appl_116 <- appl_115 `pseq` klCons appl_115 (Types.Atom Types.Nil)
-                !appl_117 <- appl_116 `pseq` klCons (Types.Atom (Types.UnboundSym "-->")) appl_116
-                !appl_118 <- appl_117 `pseq` klCons (Types.Atom (Types.UnboundSym "A")) appl_117
-                appl_118 `pseq` kl_declare (ApplC (wrapNamed "do" kl_do)) appl_118) `catchError` (\(!kl_E) -> do return (Types.Atom (Types.Str "E")))
-            (do !appl_119 <- klCons (Types.Atom (Types.UnboundSym "A")) (Types.Atom Types.Nil)
-                !appl_120 <- appl_119 `pseq` klCons (Types.Atom (Types.UnboundSym "list")) appl_119
-                !appl_121 <- klCons (Types.Atom (Types.UnboundSym "B")) (Types.Atom Types.Nil)
-                !appl_122 <- appl_121 `pseq` klCons (Types.Atom (Types.UnboundSym "list")) appl_121
-                !appl_123 <- appl_122 `pseq` klCons appl_122 (Types.Atom Types.Nil)
-                !appl_124 <- appl_123 `pseq` klCons (Types.Atom (Types.UnboundSym "shen.==>")) appl_123
-                !appl_125 <- appl_120 `pseq` (appl_124 `pseq` klCons appl_120 appl_124)
-                appl_125 `pseq` kl_declare (ApplC (wrapNamed "<e>" kl_LBeRB)) appl_125) `catchError` (\(!kl_E) -> do return (Types.Atom (Types.Str "E")))
-            (do !appl_126 <- klCons (Types.Atom (Types.UnboundSym "A")) (Types.Atom Types.Nil)
-                !appl_127 <- appl_126 `pseq` klCons (Types.Atom (Types.UnboundSym "list")) appl_126
-                !appl_128 <- klCons (Types.Atom (Types.UnboundSym "A")) (Types.Atom Types.Nil)
-                !appl_129 <- appl_128 `pseq` klCons (Types.Atom (Types.UnboundSym "list")) appl_128
-                !appl_130 <- appl_129 `pseq` klCons appl_129 (Types.Atom Types.Nil)
-                !appl_131 <- appl_130 `pseq` klCons (Types.Atom (Types.UnboundSym "shen.==>")) appl_130
-                !appl_132 <- appl_127 `pseq` (appl_131 `pseq` klCons appl_127 appl_131)
-                appl_132 `pseq` kl_declare (ApplC (wrapNamed "shen.<!>" kl_shen_LBExclRB)) appl_132) `catchError` (\(!kl_E) -> do return (Types.Atom (Types.Str "E")))
-            (do !appl_133 <- klCons (Types.Atom (Types.UnboundSym "A")) (Types.Atom Types.Nil)
-                !appl_134 <- appl_133 `pseq` klCons (Types.Atom (Types.UnboundSym "list")) appl_133
-                !appl_135 <- klCons (Types.Atom (Types.UnboundSym "boolean")) (Types.Atom Types.Nil)
-                !appl_136 <- appl_135 `pseq` klCons (Types.Atom (Types.UnboundSym "-->")) appl_135
-                !appl_137 <- appl_134 `pseq` (appl_136 `pseq` klCons appl_134 appl_136)
-                !appl_138 <- appl_137 `pseq` klCons appl_137 (Types.Atom Types.Nil)
-                !appl_139 <- appl_138 `pseq` klCons (Types.Atom (Types.UnboundSym "-->")) appl_138
-                !appl_140 <- appl_139 `pseq` klCons (Types.Atom (Types.UnboundSym "A")) appl_139
-                appl_140 `pseq` kl_declare (ApplC (wrapNamed "element?" kl_elementP)) appl_140) `catchError` (\(!kl_E) -> do return (Types.Atom (Types.Str "E")))
-            (do !appl_141 <- klCons (Types.Atom (Types.UnboundSym "boolean")) (Types.Atom Types.Nil)
-                !appl_142 <- appl_141 `pseq` klCons (Types.Atom (Types.UnboundSym "-->")) appl_141
-                !appl_143 <- appl_142 `pseq` klCons (Types.Atom (Types.UnboundSym "A")) appl_142
-                appl_143 `pseq` kl_declare (ApplC (wrapNamed "empty?" kl_emptyP)) appl_143) `catchError` (\(!kl_E) -> do return (Types.Atom (Types.Str "E")))
-            (do !appl_144 <- klCons (Types.Atom (Types.UnboundSym "boolean")) (Types.Atom Types.Nil)
-                !appl_145 <- appl_144 `pseq` klCons (Types.Atom (Types.UnboundSym "-->")) appl_144
-                !appl_146 <- appl_145 `pseq` klCons (Types.Atom (Types.UnboundSym "symbol")) appl_145
-                appl_146 `pseq` kl_declare (Types.Atom (Types.UnboundSym "enable-type-theory")) appl_146) `catchError` (\(!kl_E) -> do return (Types.Atom (Types.Str "E")))
-            (do !appl_147 <- klCons (Types.Atom (Types.UnboundSym "symbol")) (Types.Atom Types.Nil)
-                !appl_148 <- appl_147 `pseq` klCons (Types.Atom (Types.UnboundSym "list")) appl_147
-                !appl_149 <- appl_148 `pseq` klCons appl_148 (Types.Atom Types.Nil)
-                !appl_150 <- appl_149 `pseq` klCons (Types.Atom (Types.UnboundSym "-->")) appl_149
-                !appl_151 <- appl_150 `pseq` klCons (Types.Atom (Types.UnboundSym "symbol")) appl_150
-                appl_151 `pseq` kl_declare (ApplC (wrapNamed "external" kl_external)) appl_151) `catchError` (\(!kl_E) -> do return (Types.Atom (Types.Str "E")))
-            (do !appl_152 <- klCons (Types.Atom (Types.UnboundSym "string")) (Types.Atom Types.Nil)
-                !appl_153 <- appl_152 `pseq` klCons (Types.Atom (Types.UnboundSym "-->")) appl_152
-                !appl_154 <- appl_153 `pseq` klCons (Types.Atom (Types.UnboundSym "exception")) appl_153
-                appl_154 `pseq` kl_declare (ApplC (wrapNamed "error-to-string" errorToString)) appl_154) `catchError` (\(!kl_E) -> do return (Types.Atom (Types.Str "E")))
-            (do !appl_155 <- klCons (Types.Atom (Types.UnboundSym "string")) (Types.Atom Types.Nil)
-                !appl_156 <- appl_155 `pseq` klCons (Types.Atom (Types.UnboundSym "list")) appl_155
-                !appl_157 <- appl_156 `pseq` klCons appl_156 (Types.Atom Types.Nil)
-                !appl_158 <- appl_157 `pseq` klCons (Types.Atom (Types.UnboundSym "-->")) appl_157
-                !appl_159 <- appl_158 `pseq` klCons (Types.Atom (Types.UnboundSym "A")) appl_158
-                appl_159 `pseq` kl_declare (ApplC (wrapNamed "explode" kl_explode)) appl_159) `catchError` (\(!kl_E) -> do return (Types.Atom (Types.Str "E")))
-            (do !appl_160 <- klCons (Types.Atom (Types.UnboundSym "symbol")) (Types.Atom Types.Nil)
-                !appl_161 <- appl_160 `pseq` klCons (Types.Atom (Types.UnboundSym "-->")) appl_160
-                appl_161 `pseq` kl_declare (ApplC (PL "fail" kl_fail)) appl_161) `catchError` (\(!kl_E) -> do return (Types.Atom (Types.Str "E")))
-            (do !appl_162 <- klCons (Types.Atom (Types.UnboundSym "boolean")) (Types.Atom Types.Nil)
-                !appl_163 <- appl_162 `pseq` klCons (Types.Atom (Types.UnboundSym "-->")) appl_162
-                !appl_164 <- appl_163 `pseq` klCons (Types.Atom (Types.UnboundSym "symbol")) appl_163
-                !appl_165 <- klCons (Types.Atom (Types.UnboundSym "symbol")) (Types.Atom Types.Nil)
-                !appl_166 <- appl_165 `pseq` klCons (Types.Atom (Types.UnboundSym "-->")) appl_165
-                !appl_167 <- appl_166 `pseq` klCons (Types.Atom (Types.UnboundSym "symbol")) appl_166
-                !appl_168 <- appl_167 `pseq` klCons appl_167 (Types.Atom Types.Nil)
-                !appl_169 <- appl_168 `pseq` klCons (Types.Atom (Types.UnboundSym "-->")) appl_168
-                !appl_170 <- appl_164 `pseq` (appl_169 `pseq` klCons appl_164 appl_169)
-                appl_170 `pseq` kl_declare (ApplC (wrapNamed "fail-if" kl_fail_if)) appl_170) `catchError` (\(!kl_E) -> do return (Types.Atom (Types.Str "E")))
-            (do !appl_171 <- klCons (Types.Atom (Types.UnboundSym "A")) (Types.Atom Types.Nil)
-                !appl_172 <- appl_171 `pseq` klCons (Types.Atom (Types.UnboundSym "-->")) appl_171
-                !appl_173 <- appl_172 `pseq` klCons (Types.Atom (Types.UnboundSym "A")) appl_172
-                !appl_174 <- klCons (Types.Atom (Types.UnboundSym "A")) (Types.Atom Types.Nil)
-                !appl_175 <- appl_174 `pseq` klCons (Types.Atom (Types.UnboundSym "-->")) appl_174
-                !appl_176 <- appl_175 `pseq` klCons (Types.Atom (Types.UnboundSym "A")) appl_175
-                !appl_177 <- appl_176 `pseq` klCons appl_176 (Types.Atom Types.Nil)
-                !appl_178 <- appl_177 `pseq` klCons (Types.Atom (Types.UnboundSym "-->")) appl_177
-                !appl_179 <- appl_173 `pseq` (appl_178 `pseq` klCons appl_173 appl_178)
-                appl_179 `pseq` kl_declare (ApplC (wrapNamed "fix" kl_fix)) appl_179) `catchError` (\(!kl_E) -> do return (Types.Atom (Types.Str "E")))
-            (do !appl_180 <- klCons (Types.Atom (Types.UnboundSym "A")) (Types.Atom Types.Nil)
-                !appl_181 <- appl_180 `pseq` klCons (Types.Atom (Types.UnboundSym "lazy")) appl_180
-                !appl_182 <- appl_181 `pseq` klCons appl_181 (Types.Atom Types.Nil)
-                !appl_183 <- appl_182 `pseq` klCons (Types.Atom (Types.UnboundSym "-->")) appl_182
-                !appl_184 <- appl_183 `pseq` klCons (Types.Atom (Types.UnboundSym "A")) appl_183
-                appl_184 `pseq` kl_declare (Types.Atom (Types.UnboundSym "freeze")) appl_184) `catchError` (\(!kl_E) -> do return (Types.Atom (Types.Str "E")))
-            (do !appl_185 <- klCons (Types.Atom (Types.UnboundSym "B")) (Types.Atom Types.Nil)
-                !appl_186 <- appl_185 `pseq` klCons (ApplC (wrapNamed "*" multiply)) appl_185
-                !appl_187 <- appl_186 `pseq` klCons (Types.Atom (Types.UnboundSym "A")) appl_186
-                !appl_188 <- klCons (Types.Atom (Types.UnboundSym "A")) (Types.Atom Types.Nil)
-                !appl_189 <- appl_188 `pseq` klCons (Types.Atom (Types.UnboundSym "-->")) appl_188
-                !appl_190 <- appl_187 `pseq` (appl_189 `pseq` klCons appl_187 appl_189)
-                appl_190 `pseq` kl_declare (ApplC (wrapNamed "fst" kl_fst)) appl_190) `catchError` (\(!kl_E) -> do return (Types.Atom (Types.Str "E")))
-            (do !appl_191 <- klCons (Types.Atom (Types.UnboundSym "B")) (Types.Atom Types.Nil)
-                !appl_192 <- appl_191 `pseq` klCons (Types.Atom (Types.UnboundSym "-->")) appl_191
-                !appl_193 <- appl_192 `pseq` klCons (Types.Atom (Types.UnboundSym "A")) appl_192
-                !appl_194 <- klCons (Types.Atom (Types.UnboundSym "B")) (Types.Atom Types.Nil)
-                !appl_195 <- appl_194 `pseq` klCons (Types.Atom (Types.UnboundSym "-->")) appl_194
-                !appl_196 <- appl_195 `pseq` klCons (Types.Atom (Types.UnboundSym "A")) appl_195
-                !appl_197 <- appl_196 `pseq` klCons appl_196 (Types.Atom Types.Nil)
-                !appl_198 <- appl_197 `pseq` klCons (Types.Atom (Types.UnboundSym "-->")) appl_197
-                !appl_199 <- appl_193 `pseq` (appl_198 `pseq` klCons appl_193 appl_198)
-                appl_199 `pseq` kl_declare (ApplC (wrapNamed "function" kl_function)) appl_199) `catchError` (\(!kl_E) -> do return (Types.Atom (Types.Str "E")))
-            (do !appl_200 <- klCons (Types.Atom (Types.UnboundSym "symbol")) (Types.Atom Types.Nil)
-                !appl_201 <- appl_200 `pseq` klCons (Types.Atom (Types.UnboundSym "-->")) appl_200
-                !appl_202 <- appl_201 `pseq` klCons (Types.Atom (Types.UnboundSym "symbol")) appl_201
-                appl_202 `pseq` kl_declare (ApplC (wrapNamed "gensym" kl_gensym)) appl_202) `catchError` (\(!kl_E) -> do return (Types.Atom (Types.Str "E")))
-            (do !appl_203 <- klCons (Types.Atom (Types.UnboundSym "A")) (Types.Atom Types.Nil)
-                !appl_204 <- appl_203 `pseq` klCons (ApplC (wrapNamed "vector" kl_vector)) appl_203
-                !appl_205 <- klCons (Types.Atom (Types.UnboundSym "A")) (Types.Atom Types.Nil)
-                !appl_206 <- appl_205 `pseq` klCons (Types.Atom (Types.UnboundSym "-->")) appl_205
-                !appl_207 <- appl_206 `pseq` klCons (Types.Atom (Types.UnboundSym "number")) appl_206
-                !appl_208 <- appl_207 `pseq` klCons appl_207 (Types.Atom Types.Nil)
-                !appl_209 <- appl_208 `pseq` klCons (Types.Atom (Types.UnboundSym "-->")) appl_208
-                !appl_210 <- appl_204 `pseq` (appl_209 `pseq` klCons appl_204 appl_209)
-                appl_210 `pseq` kl_declare (ApplC (wrapNamed "<-vector" kl_LB_vector)) appl_210) `catchError` (\(!kl_E) -> do return (Types.Atom (Types.Str "E")))
-            (do !appl_211 <- klCons (Types.Atom (Types.UnboundSym "A")) (Types.Atom Types.Nil)
-                !appl_212 <- appl_211 `pseq` klCons (ApplC (wrapNamed "vector" kl_vector)) appl_211
-                !appl_213 <- klCons (Types.Atom (Types.UnboundSym "A")) (Types.Atom Types.Nil)
-                !appl_214 <- appl_213 `pseq` klCons (ApplC (wrapNamed "vector" kl_vector)) appl_213
-                !appl_215 <- appl_214 `pseq` klCons appl_214 (Types.Atom Types.Nil)
-                !appl_216 <- appl_215 `pseq` klCons (Types.Atom (Types.UnboundSym "-->")) appl_215
-                !appl_217 <- appl_216 `pseq` klCons (Types.Atom (Types.UnboundSym "A")) appl_216
-                !appl_218 <- appl_217 `pseq` klCons appl_217 (Types.Atom Types.Nil)
-                !appl_219 <- appl_218 `pseq` klCons (Types.Atom (Types.UnboundSym "-->")) appl_218
-                !appl_220 <- appl_219 `pseq` klCons (Types.Atom (Types.UnboundSym "number")) appl_219
-                !appl_221 <- appl_220 `pseq` klCons appl_220 (Types.Atom Types.Nil)
-                !appl_222 <- appl_221 `pseq` klCons (Types.Atom (Types.UnboundSym "-->")) appl_221
-                !appl_223 <- appl_212 `pseq` (appl_222 `pseq` klCons appl_212 appl_222)
-                appl_223 `pseq` kl_declare (ApplC (wrapNamed "vector->" kl_vector_RB)) appl_223) `catchError` (\(!kl_E) -> do return (Types.Atom (Types.Str "E")))
-            (do !appl_224 <- klCons (Types.Atom (Types.UnboundSym "A")) (Types.Atom Types.Nil)
-                !appl_225 <- appl_224 `pseq` klCons (ApplC (wrapNamed "vector" kl_vector)) appl_224
-                !appl_226 <- appl_225 `pseq` klCons appl_225 (Types.Atom Types.Nil)
-                !appl_227 <- appl_226 `pseq` klCons (Types.Atom (Types.UnboundSym "-->")) appl_226
-                !appl_228 <- appl_227 `pseq` klCons (Types.Atom (Types.UnboundSym "number")) appl_227
-                appl_228 `pseq` kl_declare (ApplC (wrapNamed "vector" kl_vector)) appl_228) `catchError` (\(!kl_E) -> do return (Types.Atom (Types.Str "E")))
-            (do !appl_229 <- klCons (Types.Atom (Types.UnboundSym "number")) (Types.Atom Types.Nil)
-                !appl_230 <- appl_229 `pseq` klCons (Types.Atom (Types.UnboundSym "-->")) appl_229
-                !appl_231 <- appl_230 `pseq` klCons (Types.Atom (Types.UnboundSym "symbol")) appl_230
-                appl_231 `pseq` kl_declare (ApplC (wrapNamed "get-time" getTime)) appl_231) `catchError` (\(!kl_E) -> do return (Types.Atom (Types.Str "E")))
-            (do !appl_232 <- klCons (Types.Atom (Types.UnboundSym "number")) (Types.Atom Types.Nil)
-                !appl_233 <- appl_232 `pseq` klCons (Types.Atom (Types.UnboundSym "-->")) appl_232
-                !appl_234 <- appl_233 `pseq` klCons (Types.Atom (Types.UnboundSym "number")) appl_233
-                !appl_235 <- appl_234 `pseq` klCons appl_234 (Types.Atom Types.Nil)
-                !appl_236 <- appl_235 `pseq` klCons (Types.Atom (Types.UnboundSym "-->")) appl_235
-                !appl_237 <- appl_236 `pseq` klCons (Types.Atom (Types.UnboundSym "A")) appl_236
-                appl_237 `pseq` kl_declare (ApplC (wrapNamed "hash" kl_hash)) appl_237) `catchError` (\(!kl_E) -> do return (Types.Atom (Types.Str "E")))
-            (do !appl_238 <- klCons (Types.Atom (Types.UnboundSym "A")) (Types.Atom Types.Nil)
-                !appl_239 <- appl_238 `pseq` klCons (Types.Atom (Types.UnboundSym "list")) appl_238
-                !appl_240 <- klCons (Types.Atom (Types.UnboundSym "A")) (Types.Atom Types.Nil)
-                !appl_241 <- appl_240 `pseq` klCons (Types.Atom (Types.UnboundSym "-->")) appl_240
-                !appl_242 <- appl_239 `pseq` (appl_241 `pseq` klCons appl_239 appl_241)
-                appl_242 `pseq` kl_declare (ApplC (wrapNamed "head" kl_head)) appl_242) `catchError` (\(!kl_E) -> do return (Types.Atom (Types.Str "E")))
-            (do !appl_243 <- klCons (Types.Atom (Types.UnboundSym "A")) (Types.Atom Types.Nil)
-                !appl_244 <- appl_243 `pseq` klCons (ApplC (wrapNamed "vector" kl_vector)) appl_243
-                !appl_245 <- klCons (Types.Atom (Types.UnboundSym "A")) (Types.Atom Types.Nil)
-                !appl_246 <- appl_245 `pseq` klCons (Types.Atom (Types.UnboundSym "-->")) appl_245
-                !appl_247 <- appl_244 `pseq` (appl_246 `pseq` klCons appl_244 appl_246)
-                appl_247 `pseq` kl_declare (ApplC (wrapNamed "hdv" kl_hdv)) appl_247) `catchError` (\(!kl_E) -> do return (Types.Atom (Types.Str "E")))
-            (do !appl_248 <- klCons (Types.Atom (Types.UnboundSym "string")) (Types.Atom Types.Nil)
-                !appl_249 <- appl_248 `pseq` klCons (Types.Atom (Types.UnboundSym "-->")) appl_248
-                !appl_250 <- appl_249 `pseq` klCons (Types.Atom (Types.UnboundSym "string")) appl_249
-                appl_250 `pseq` kl_declare (ApplC (wrapNamed "hdstr" kl_hdstr)) appl_250) `catchError` (\(!kl_E) -> do return (Types.Atom (Types.Str "E")))
-            (do !appl_251 <- klCons (Types.Atom (Types.UnboundSym "A")) (Types.Atom Types.Nil)
-                !appl_252 <- appl_251 `pseq` klCons (Types.Atom (Types.UnboundSym "-->")) appl_251
-                !appl_253 <- appl_252 `pseq` klCons (Types.Atom (Types.UnboundSym "A")) appl_252
-                !appl_254 <- appl_253 `pseq` klCons appl_253 (Types.Atom Types.Nil)
-                !appl_255 <- appl_254 `pseq` klCons (Types.Atom (Types.UnboundSym "-->")) appl_254
-                !appl_256 <- appl_255 `pseq` klCons (Types.Atom (Types.UnboundSym "A")) appl_255
-                !appl_257 <- appl_256 `pseq` klCons appl_256 (Types.Atom Types.Nil)
-                !appl_258 <- appl_257 `pseq` klCons (Types.Atom (Types.UnboundSym "-->")) appl_257
-                !appl_259 <- appl_258 `pseq` klCons (Types.Atom (Types.UnboundSym "boolean")) appl_258
-                appl_259 `pseq` kl_declare (Types.Atom (Types.UnboundSym "if")) appl_259) `catchError` (\(!kl_E) -> do return (Types.Atom (Types.Str "E")))
-            (do !appl_260 <- klCons (Types.Atom (Types.UnboundSym "string")) (Types.Atom Types.Nil)
-                !appl_261 <- appl_260 `pseq` klCons (Types.Atom (Types.UnboundSym "-->")) appl_260
-                appl_261 `pseq` kl_declare (ApplC (PL "it" kl_it)) appl_261) `catchError` (\(!kl_E) -> do return (Types.Atom (Types.Str "E")))
-            (do !appl_262 <- klCons (Types.Atom (Types.UnboundSym "string")) (Types.Atom Types.Nil)
-                !appl_263 <- appl_262 `pseq` klCons (Types.Atom (Types.UnboundSym "-->")) appl_262
-                appl_263 `pseq` kl_declare (ApplC (PL "implementation" kl_implementation)) appl_263) `catchError` (\(!kl_E) -> do return (Types.Atom (Types.Str "E")))
-            (do !appl_264 <- klCons (Types.Atom (Types.UnboundSym "symbol")) (Types.Atom Types.Nil)
-                !appl_265 <- appl_264 `pseq` klCons (Types.Atom (Types.UnboundSym "list")) appl_264
-                !appl_266 <- klCons (Types.Atom (Types.UnboundSym "symbol")) (Types.Atom Types.Nil)
-                !appl_267 <- appl_266 `pseq` klCons (Types.Atom (Types.UnboundSym "list")) appl_266
-                !appl_268 <- appl_267 `pseq` klCons appl_267 (Types.Atom Types.Nil)
-                !appl_269 <- appl_268 `pseq` klCons (Types.Atom (Types.UnboundSym "-->")) appl_268
-                !appl_270 <- appl_265 `pseq` (appl_269 `pseq` klCons appl_265 appl_269)
-                appl_270 `pseq` kl_declare (ApplC (wrapNamed "include" kl_include)) appl_270) `catchError` (\(!kl_E) -> do return (Types.Atom (Types.Str "E")))
-            (do !appl_271 <- klCons (Types.Atom (Types.UnboundSym "symbol")) (Types.Atom Types.Nil)
-                !appl_272 <- appl_271 `pseq` klCons (Types.Atom (Types.UnboundSym "list")) appl_271
-                !appl_273 <- klCons (Types.Atom (Types.UnboundSym "symbol")) (Types.Atom Types.Nil)
-                !appl_274 <- appl_273 `pseq` klCons (Types.Atom (Types.UnboundSym "list")) appl_273
-                !appl_275 <- appl_274 `pseq` klCons appl_274 (Types.Atom Types.Nil)
-                !appl_276 <- appl_275 `pseq` klCons (Types.Atom (Types.UnboundSym "-->")) appl_275
-                !appl_277 <- appl_272 `pseq` (appl_276 `pseq` klCons appl_272 appl_276)
-                appl_277 `pseq` kl_declare (ApplC (wrapNamed "include-all-but" kl_include_all_but)) appl_277) `catchError` (\(!kl_E) -> do return (Types.Atom (Types.Str "E")))
-            (do !appl_278 <- klCons (Types.Atom (Types.UnboundSym "number")) (Types.Atom Types.Nil)
-                !appl_279 <- appl_278 `pseq` klCons (Types.Atom (Types.UnboundSym "-->")) appl_278
-                appl_279 `pseq` kl_declare (ApplC (PL "inferences" kl_inferences)) appl_279) `catchError` (\(!kl_E) -> do return (Types.Atom (Types.Str "E")))
-            (do !appl_280 <- klCons (Types.Atom (Types.UnboundSym "string")) (Types.Atom Types.Nil)
-                !appl_281 <- appl_280 `pseq` klCons (Types.Atom (Types.UnboundSym "-->")) appl_280
-                !appl_282 <- appl_281 `pseq` klCons (Types.Atom (Types.UnboundSym "string")) appl_281
-                !appl_283 <- appl_282 `pseq` klCons appl_282 (Types.Atom Types.Nil)
-                !appl_284 <- appl_283 `pseq` klCons (Types.Atom (Types.UnboundSym "-->")) appl_283
-                !appl_285 <- appl_284 `pseq` klCons (Types.Atom (Types.UnboundSym "A")) appl_284
-                appl_285 `pseq` kl_declare (ApplC (wrapNamed "shen.insert" kl_shen_insert)) appl_285) `catchError` (\(!kl_E) -> do return (Types.Atom (Types.Str "E")))
-            (do !appl_286 <- klCons (Types.Atom (Types.UnboundSym "boolean")) (Types.Atom Types.Nil)
-                !appl_287 <- appl_286 `pseq` klCons (Types.Atom (Types.UnboundSym "-->")) appl_286
-                !appl_288 <- appl_287 `pseq` klCons (Types.Atom (Types.UnboundSym "A")) appl_287
-                appl_288 `pseq` kl_declare (ApplC (wrapNamed "integer?" kl_integerP)) appl_288) `catchError` (\(!kl_E) -> do return (Types.Atom (Types.Str "E")))
-            (do !appl_289 <- klCons (Types.Atom (Types.UnboundSym "symbol")) (Types.Atom Types.Nil)
-                !appl_290 <- appl_289 `pseq` klCons (Types.Atom (Types.UnboundSym "list")) appl_289
-                !appl_291 <- appl_290 `pseq` klCons appl_290 (Types.Atom Types.Nil)
-                !appl_292 <- appl_291 `pseq` klCons (Types.Atom (Types.UnboundSym "-->")) appl_291
-                !appl_293 <- appl_292 `pseq` klCons (Types.Atom (Types.UnboundSym "symbol")) appl_292
-                appl_293 `pseq` kl_declare (ApplC (wrapNamed "internal" kl_internal)) appl_293) `catchError` (\(!kl_E) -> do return (Types.Atom (Types.Str "E")))
-            (do !appl_294 <- klCons (Types.Atom (Types.UnboundSym "A")) (Types.Atom Types.Nil)
-                !appl_295 <- appl_294 `pseq` klCons (Types.Atom (Types.UnboundSym "list")) appl_294
-                !appl_296 <- klCons (Types.Atom (Types.UnboundSym "A")) (Types.Atom Types.Nil)
-                !appl_297 <- appl_296 `pseq` klCons (Types.Atom (Types.UnboundSym "list")) appl_296
-                !appl_298 <- klCons (Types.Atom (Types.UnboundSym "A")) (Types.Atom Types.Nil)
-                !appl_299 <- appl_298 `pseq` klCons (Types.Atom (Types.UnboundSym "list")) appl_298
-                !appl_300 <- appl_299 `pseq` klCons appl_299 (Types.Atom Types.Nil)
-                !appl_301 <- appl_300 `pseq` klCons (Types.Atom (Types.UnboundSym "-->")) appl_300
-                !appl_302 <- appl_297 `pseq` (appl_301 `pseq` klCons appl_297 appl_301)
-                !appl_303 <- appl_302 `pseq` klCons appl_302 (Types.Atom Types.Nil)
-                !appl_304 <- appl_303 `pseq` klCons (Types.Atom (Types.UnboundSym "-->")) appl_303
-                !appl_305 <- appl_295 `pseq` (appl_304 `pseq` klCons appl_295 appl_304)
-                appl_305 `pseq` kl_declare (ApplC (wrapNamed "intersection" kl_intersection)) appl_305) `catchError` (\(!kl_E) -> do return (Types.Atom (Types.Str "E")))
-            (do !appl_306 <- klCons (Types.Atom (Types.UnboundSym "A")) (Types.Atom Types.Nil)
-                !appl_307 <- appl_306 `pseq` klCons (Types.Atom (Types.UnboundSym "-->")) appl_306
-                appl_307 `pseq` kl_declare (ApplC (PL "kill" kl_kill)) appl_307) `catchError` (\(!kl_E) -> do return (Types.Atom (Types.Str "E")))
-            (do !appl_308 <- klCons (Types.Atom (Types.UnboundSym "string")) (Types.Atom Types.Nil)
-                !appl_309 <- appl_308 `pseq` klCons (Types.Atom (Types.UnboundSym "-->")) appl_308
-                appl_309 `pseq` kl_declare (ApplC (PL "language" kl_language)) appl_309) `catchError` (\(!kl_E) -> do return (Types.Atom (Types.Str "E")))
-            (do !appl_310 <- klCons (Types.Atom (Types.UnboundSym "A")) (Types.Atom Types.Nil)
-                !appl_311 <- appl_310 `pseq` klCons (Types.Atom (Types.UnboundSym "list")) appl_310
-                !appl_312 <- klCons (Types.Atom (Types.UnboundSym "number")) (Types.Atom Types.Nil)
-                !appl_313 <- appl_312 `pseq` klCons (Types.Atom (Types.UnboundSym "-->")) appl_312
-                !appl_314 <- appl_311 `pseq` (appl_313 `pseq` klCons appl_311 appl_313)
-                appl_314 `pseq` kl_declare (ApplC (wrapNamed "length" kl_length)) appl_314) `catchError` (\(!kl_E) -> do return (Types.Atom (Types.Str "E")))
-            (do !appl_315 <- klCons (Types.Atom (Types.UnboundSym "A")) (Types.Atom Types.Nil)
-                !appl_316 <- appl_315 `pseq` klCons (ApplC (wrapNamed "vector" kl_vector)) appl_315
-                !appl_317 <- klCons (Types.Atom (Types.UnboundSym "number")) (Types.Atom Types.Nil)
-                !appl_318 <- appl_317 `pseq` klCons (Types.Atom (Types.UnboundSym "-->")) appl_317
-                !appl_319 <- appl_316 `pseq` (appl_318 `pseq` klCons appl_316 appl_318)
-                appl_319 `pseq` kl_declare (ApplC (wrapNamed "limit" kl_limit)) appl_319) `catchError` (\(!kl_E) -> do return (Types.Atom (Types.Str "E")))
-            (do !appl_320 <- klCons (Types.Atom (Types.UnboundSym "symbol")) (Types.Atom Types.Nil)
-                !appl_321 <- appl_320 `pseq` klCons (Types.Atom (Types.UnboundSym "-->")) appl_320
-                !appl_322 <- appl_321 `pseq` klCons (Types.Atom (Types.UnboundSym "string")) appl_321
-                appl_322 `pseq` kl_declare (ApplC (wrapNamed "load" kl_load)) appl_322) `catchError` (\(!kl_E) -> do return (Types.Atom (Types.Str "E")))
-            (do !appl_323 <- klCons (Types.Atom (Types.UnboundSym "B")) (Types.Atom Types.Nil)
-                !appl_324 <- appl_323 `pseq` klCons (Types.Atom (Types.UnboundSym "-->")) appl_323
-                !appl_325 <- appl_324 `pseq` klCons (Types.Atom (Types.UnboundSym "A")) appl_324
-                !appl_326 <- klCons (Types.Atom (Types.UnboundSym "A")) (Types.Atom Types.Nil)
-                !appl_327 <- appl_326 `pseq` klCons (Types.Atom (Types.UnboundSym "list")) appl_326
-                !appl_328 <- klCons (Types.Atom (Types.UnboundSym "B")) (Types.Atom Types.Nil)
-                !appl_329 <- appl_328 `pseq` klCons (Types.Atom (Types.UnboundSym "list")) appl_328
-                !appl_330 <- appl_329 `pseq` klCons appl_329 (Types.Atom Types.Nil)
-                !appl_331 <- appl_330 `pseq` klCons (Types.Atom (Types.UnboundSym "-->")) appl_330
-                !appl_332 <- appl_327 `pseq` (appl_331 `pseq` klCons appl_327 appl_331)
-                !appl_333 <- appl_332 `pseq` klCons appl_332 (Types.Atom Types.Nil)
-                !appl_334 <- appl_333 `pseq` klCons (Types.Atom (Types.UnboundSym "-->")) appl_333
-                !appl_335 <- appl_325 `pseq` (appl_334 `pseq` klCons appl_325 appl_334)
-                appl_335 `pseq` kl_declare (ApplC (wrapNamed "map" kl_map)) appl_335) `catchError` (\(!kl_E) -> do return (Types.Atom (Types.Str "E")))
-            (do !appl_336 <- klCons (Types.Atom (Types.UnboundSym "B")) (Types.Atom Types.Nil)
-                !appl_337 <- appl_336 `pseq` klCons (Types.Atom (Types.UnboundSym "list")) appl_336
-                !appl_338 <- appl_337 `pseq` klCons appl_337 (Types.Atom Types.Nil)
-                !appl_339 <- appl_338 `pseq` klCons (Types.Atom (Types.UnboundSym "-->")) appl_338
-                !appl_340 <- appl_339 `pseq` klCons (Types.Atom (Types.UnboundSym "A")) appl_339
-                !appl_341 <- klCons (Types.Atom (Types.UnboundSym "A")) (Types.Atom Types.Nil)
-                !appl_342 <- appl_341 `pseq` klCons (Types.Atom (Types.UnboundSym "list")) appl_341
-                !appl_343 <- klCons (Types.Atom (Types.UnboundSym "B")) (Types.Atom Types.Nil)
-                !appl_344 <- appl_343 `pseq` klCons (Types.Atom (Types.UnboundSym "list")) appl_343
-                !appl_345 <- appl_344 `pseq` klCons appl_344 (Types.Atom Types.Nil)
-                !appl_346 <- appl_345 `pseq` klCons (Types.Atom (Types.UnboundSym "-->")) appl_345
-                !appl_347 <- appl_342 `pseq` (appl_346 `pseq` klCons appl_342 appl_346)
-                !appl_348 <- appl_347 `pseq` klCons appl_347 (Types.Atom Types.Nil)
-                !appl_349 <- appl_348 `pseq` klCons (Types.Atom (Types.UnboundSym "-->")) appl_348
-                !appl_350 <- appl_340 `pseq` (appl_349 `pseq` klCons appl_340 appl_349)
-                appl_350 `pseq` kl_declare (ApplC (wrapNamed "mapcan" kl_mapcan)) appl_350) `catchError` (\(!kl_E) -> do return (Types.Atom (Types.Str "E")))
-            (do !appl_351 <- klCons (Types.Atom (Types.UnboundSym "number")) (Types.Atom Types.Nil)
-                !appl_352 <- appl_351 `pseq` klCons (Types.Atom (Types.UnboundSym "-->")) appl_351
-                !appl_353 <- appl_352 `pseq` klCons (Types.Atom (Types.UnboundSym "number")) appl_352
-                appl_353 `pseq` kl_declare (ApplC (wrapNamed "maxinferences" kl_maxinferences)) appl_353) `catchError` (\(!kl_E) -> do return (Types.Atom (Types.Str "E")))
-            (do !appl_354 <- klCons (Types.Atom (Types.UnboundSym "string")) (Types.Atom Types.Nil)
-                !appl_355 <- appl_354 `pseq` klCons (Types.Atom (Types.UnboundSym "-->")) appl_354
-                !appl_356 <- appl_355 `pseq` klCons (Types.Atom (Types.UnboundSym "number")) appl_355
-                appl_356 `pseq` kl_declare (ApplC (wrapNamed "n->string" nToString)) appl_356) `catchError` (\(!kl_E) -> do return (Types.Atom (Types.Str "E")))
-            (do !appl_357 <- klCons (Types.Atom (Types.UnboundSym "number")) (Types.Atom Types.Nil)
-                !appl_358 <- appl_357 `pseq` klCons (Types.Atom (Types.UnboundSym "-->")) appl_357
-                !appl_359 <- appl_358 `pseq` klCons (Types.Atom (Types.UnboundSym "number")) appl_358
-                appl_359 `pseq` kl_declare (ApplC (wrapNamed "nl" kl_nl)) appl_359) `catchError` (\(!kl_E) -> do return (Types.Atom (Types.Str "E")))
-            (do !appl_360 <- klCons (Types.Atom (Types.UnboundSym "boolean")) (Types.Atom Types.Nil)
-                !appl_361 <- appl_360 `pseq` klCons (Types.Atom (Types.UnboundSym "-->")) appl_360
-                !appl_362 <- appl_361 `pseq` klCons (Types.Atom (Types.UnboundSym "boolean")) appl_361
-                appl_362 `pseq` kl_declare (ApplC (wrapNamed "not" kl_not)) appl_362) `catchError` (\(!kl_E) -> do return (Types.Atom (Types.Str "E")))
-            (do !appl_363 <- klCons (Types.Atom (Types.UnboundSym "A")) (Types.Atom Types.Nil)
-                !appl_364 <- appl_363 `pseq` klCons (Types.Atom (Types.UnboundSym "list")) appl_363
-                !appl_365 <- klCons (Types.Atom (Types.UnboundSym "A")) (Types.Atom Types.Nil)
-                !appl_366 <- appl_365 `pseq` klCons (Types.Atom (Types.UnboundSym "-->")) appl_365
-                !appl_367 <- appl_364 `pseq` (appl_366 `pseq` klCons appl_364 appl_366)
-                !appl_368 <- appl_367 `pseq` klCons appl_367 (Types.Atom Types.Nil)
-                !appl_369 <- appl_368 `pseq` klCons (Types.Atom (Types.UnboundSym "-->")) appl_368
-                !appl_370 <- appl_369 `pseq` klCons (Types.Atom (Types.UnboundSym "number")) appl_369
-                appl_370 `pseq` kl_declare (ApplC (wrapNamed "nth" kl_nth)) appl_370) `catchError` (\(!kl_E) -> do return (Types.Atom (Types.Str "E")))
-            (do !appl_371 <- klCons (Types.Atom (Types.UnboundSym "boolean")) (Types.Atom Types.Nil)
-                !appl_372 <- appl_371 `pseq` klCons (Types.Atom (Types.UnboundSym "-->")) appl_371
-                !appl_373 <- appl_372 `pseq` klCons (Types.Atom (Types.UnboundSym "A")) appl_372
-                appl_373 `pseq` kl_declare (ApplC (wrapNamed "number?" numberP)) appl_373) `catchError` (\(!kl_E) -> do return (Types.Atom (Types.Str "E")))
-            (do !appl_374 <- klCons (Types.Atom (Types.UnboundSym "number")) (Types.Atom Types.Nil)
-                !appl_375 <- appl_374 `pseq` klCons (Types.Atom (Types.UnboundSym "-->")) appl_374
-                !appl_376 <- appl_375 `pseq` klCons (Types.Atom (Types.UnboundSym "B")) appl_375
-                !appl_377 <- appl_376 `pseq` klCons appl_376 (Types.Atom Types.Nil)
-                !appl_378 <- appl_377 `pseq` klCons (Types.Atom (Types.UnboundSym "-->")) appl_377
-                !appl_379 <- appl_378 `pseq` klCons (Types.Atom (Types.UnboundSym "A")) appl_378
-                appl_379 `pseq` kl_declare (ApplC (wrapNamed "occurrences" kl_occurrences)) appl_379) `catchError` (\(!kl_E) -> do return (Types.Atom (Types.Str "E")))
-            (do !appl_380 <- klCons (Types.Atom (Types.UnboundSym "boolean")) (Types.Atom Types.Nil)
-                !appl_381 <- appl_380 `pseq` klCons (Types.Atom (Types.UnboundSym "-->")) appl_380
-                !appl_382 <- appl_381 `pseq` klCons (Types.Atom (Types.UnboundSym "symbol")) appl_381
-                appl_382 `pseq` kl_declare (ApplC (wrapNamed "occurs-check" kl_occurs_check)) appl_382) `catchError` (\(!kl_E) -> do return (Types.Atom (Types.Str "E")))
-            (do !appl_383 <- klCons (Types.Atom (Types.UnboundSym "boolean")) (Types.Atom Types.Nil)
-                !appl_384 <- appl_383 `pseq` klCons (Types.Atom (Types.UnboundSym "-->")) appl_383
-                !appl_385 <- appl_384 `pseq` klCons (Types.Atom (Types.UnboundSym "symbol")) appl_384
-                appl_385 `pseq` kl_declare (ApplC (wrapNamed "optimise" kl_optimise)) appl_385) `catchError` (\(!kl_E) -> do return (Types.Atom (Types.Str "E")))
-            (do !appl_386 <- klCons (Types.Atom (Types.UnboundSym "boolean")) (Types.Atom Types.Nil)
-                !appl_387 <- appl_386 `pseq` klCons (Types.Atom (Types.UnboundSym "-->")) appl_386
-                !appl_388 <- appl_387 `pseq` klCons (Types.Atom (Types.UnboundSym "boolean")) appl_387
-                !appl_389 <- appl_388 `pseq` klCons appl_388 (Types.Atom Types.Nil)
-                !appl_390 <- appl_389 `pseq` klCons (Types.Atom (Types.UnboundSym "-->")) appl_389
-                !appl_391 <- appl_390 `pseq` klCons (Types.Atom (Types.UnboundSym "boolean")) appl_390
-                appl_391 `pseq` kl_declare (Types.Atom (Types.UnboundSym "or")) appl_391) `catchError` (\(!kl_E) -> do return (Types.Atom (Types.Str "E")))
-            (do !appl_392 <- klCons (Types.Atom (Types.UnboundSym "string")) (Types.Atom Types.Nil)
-                !appl_393 <- appl_392 `pseq` klCons (Types.Atom (Types.UnboundSym "-->")) appl_392
-                appl_393 `pseq` kl_declare (ApplC (PL "os" kl_os)) appl_393) `catchError` (\(!kl_E) -> do return (Types.Atom (Types.Str "E")))
-            (do !appl_394 <- klCons (Types.Atom (Types.UnboundSym "boolean")) (Types.Atom Types.Nil)
-                !appl_395 <- appl_394 `pseq` klCons (Types.Atom (Types.UnboundSym "-->")) appl_394
-                !appl_396 <- appl_395 `pseq` klCons (Types.Atom (Types.UnboundSym "symbol")) appl_395
-                appl_396 `pseq` kl_declare (ApplC (wrapNamed "package?" kl_packageP)) appl_396) `catchError` (\(!kl_E) -> do return (Types.Atom (Types.Str "E")))
-            (do !appl_397 <- klCons (Types.Atom (Types.UnboundSym "string")) (Types.Atom Types.Nil)
-                !appl_398 <- appl_397 `pseq` klCons (Types.Atom (Types.UnboundSym "-->")) appl_397
-                appl_398 `pseq` kl_declare (ApplC (PL "port" kl_port)) appl_398) `catchError` (\(!kl_E) -> do return (Types.Atom (Types.Str "E")))
-            (do !appl_399 <- klCons (Types.Atom (Types.UnboundSym "string")) (Types.Atom Types.Nil)
-                !appl_400 <- appl_399 `pseq` klCons (Types.Atom (Types.UnboundSym "-->")) appl_399
-                appl_400 `pseq` kl_declare (ApplC (PL "porters" kl_porters)) appl_400) `catchError` (\(!kl_E) -> do return (Types.Atom (Types.Str "E")))
-            (do !appl_401 <- klCons (Types.Atom (Types.UnboundSym "string")) (Types.Atom Types.Nil)
-                !appl_402 <- appl_401 `pseq` klCons (Types.Atom (Types.UnboundSym "-->")) appl_401
-                !appl_403 <- appl_402 `pseq` klCons (Types.Atom (Types.UnboundSym "number")) appl_402
-                !appl_404 <- appl_403 `pseq` klCons appl_403 (Types.Atom Types.Nil)
-                !appl_405 <- appl_404 `pseq` klCons (Types.Atom (Types.UnboundSym "-->")) appl_404
-                !appl_406 <- appl_405 `pseq` klCons (Types.Atom (Types.UnboundSym "string")) appl_405
-                appl_406 `pseq` kl_declare (ApplC (wrapNamed "pos" pos)) appl_406) `catchError` (\(!kl_E) -> do return (Types.Atom (Types.Str "E")))
-            (do !appl_407 <- klCons (Types.Atom (Types.UnboundSym "out")) (Types.Atom Types.Nil)
-                !appl_408 <- appl_407 `pseq` klCons (Types.Atom (Types.UnboundSym "stream")) appl_407
-                !appl_409 <- klCons (Types.Atom (Types.UnboundSym "string")) (Types.Atom Types.Nil)
-                !appl_410 <- appl_409 `pseq` klCons (Types.Atom (Types.UnboundSym "-->")) appl_409
-                !appl_411 <- appl_408 `pseq` (appl_410 `pseq` klCons appl_408 appl_410)
-                !appl_412 <- appl_411 `pseq` klCons appl_411 (Types.Atom Types.Nil)
-                !appl_413 <- appl_412 `pseq` klCons (Types.Atom (Types.UnboundSym "-->")) appl_412
-                !appl_414 <- appl_413 `pseq` klCons (Types.Atom (Types.UnboundSym "string")) appl_413
-                appl_414 `pseq` kl_declare (ApplC (wrapNamed "pr" kl_pr)) appl_414) `catchError` (\(!kl_E) -> do return (Types.Atom (Types.Str "E")))
-            (do !appl_415 <- klCons (Types.Atom (Types.UnboundSym "A")) (Types.Atom Types.Nil)
-                !appl_416 <- appl_415 `pseq` klCons (Types.Atom (Types.UnboundSym "-->")) appl_415
-                !appl_417 <- appl_416 `pseq` klCons (Types.Atom (Types.UnboundSym "A")) appl_416
-                appl_417 `pseq` kl_declare (ApplC (wrapNamed "print" kl_print)) appl_417) `catchError` (\(!kl_E) -> do return (Types.Atom (Types.Str "E")))
-            (do !appl_418 <- klCons (Types.Atom (Types.UnboundSym "B")) (Types.Atom Types.Nil)
-                !appl_419 <- appl_418 `pseq` klCons (Types.Atom (Types.UnboundSym "-->")) appl_418
-                !appl_420 <- appl_419 `pseq` klCons (Types.Atom (Types.UnboundSym "A")) appl_419
-                !appl_421 <- klCons (Types.Atom (Types.UnboundSym "B")) (Types.Atom Types.Nil)
-                !appl_422 <- appl_421 `pseq` klCons (Types.Atom (Types.UnboundSym "-->")) appl_421
-                !appl_423 <- appl_422 `pseq` klCons (Types.Atom (Types.UnboundSym "A")) appl_422
-                !appl_424 <- appl_423 `pseq` klCons appl_423 (Types.Atom Types.Nil)
-                !appl_425 <- appl_424 `pseq` klCons (Types.Atom (Types.UnboundSym "-->")) appl_424
-                !appl_426 <- appl_420 `pseq` (appl_425 `pseq` klCons appl_420 appl_425)
-                appl_426 `pseq` kl_declare (ApplC (wrapNamed "profile" kl_profile)) appl_426) `catchError` (\(!kl_E) -> do return (Types.Atom (Types.Str "E")))
-            (do !appl_427 <- klCons (Types.Atom (Types.UnboundSym "symbol")) (Types.Atom Types.Nil)
-                !appl_428 <- appl_427 `pseq` klCons (Types.Atom (Types.UnboundSym "list")) appl_427
-                !appl_429 <- klCons (Types.Atom (Types.UnboundSym "symbol")) (Types.Atom Types.Nil)
-                !appl_430 <- appl_429 `pseq` klCons (Types.Atom (Types.UnboundSym "list")) appl_429
-                !appl_431 <- appl_430 `pseq` klCons appl_430 (Types.Atom Types.Nil)
-                !appl_432 <- appl_431 `pseq` klCons (Types.Atom (Types.UnboundSym "-->")) appl_431
-                !appl_433 <- appl_428 `pseq` (appl_432 `pseq` klCons appl_428 appl_432)
-                appl_433 `pseq` kl_declare (ApplC (wrapNamed "preclude" kl_preclude)) appl_433) `catchError` (\(!kl_E) -> do return (Types.Atom (Types.Str "E")))
-            (do !appl_434 <- klCons (Types.Atom (Types.UnboundSym "string")) (Types.Atom Types.Nil)
-                !appl_435 <- appl_434 `pseq` klCons (Types.Atom (Types.UnboundSym "-->")) appl_434
-                !appl_436 <- appl_435 `pseq` klCons (Types.Atom (Types.UnboundSym "string")) appl_435
-                appl_436 `pseq` kl_declare (ApplC (wrapNamed "shen.proc-nl" kl_shen_proc_nl)) appl_436) `catchError` (\(!kl_E) -> do return (Types.Atom (Types.Str "E")))
-            (do !appl_437 <- klCons (Types.Atom (Types.UnboundSym "B")) (Types.Atom Types.Nil)
-                !appl_438 <- appl_437 `pseq` klCons (Types.Atom (Types.UnboundSym "-->")) appl_437
-                !appl_439 <- appl_438 `pseq` klCons (Types.Atom (Types.UnboundSym "A")) appl_438
-                !appl_440 <- klCons (Types.Atom (Types.UnboundSym "B")) (Types.Atom Types.Nil)
-                !appl_441 <- appl_440 `pseq` klCons (Types.Atom (Types.UnboundSym "-->")) appl_440
-                !appl_442 <- appl_441 `pseq` klCons (Types.Atom (Types.UnboundSym "A")) appl_441
-                !appl_443 <- klCons (Types.Atom (Types.UnboundSym "number")) (Types.Atom Types.Nil)
-                !appl_444 <- appl_443 `pseq` klCons (ApplC (wrapNamed "*" multiply)) appl_443
-                !appl_445 <- appl_442 `pseq` (appl_444 `pseq` klCons appl_442 appl_444)
-                !appl_446 <- appl_445 `pseq` klCons appl_445 (Types.Atom Types.Nil)
-                !appl_447 <- appl_446 `pseq` klCons (Types.Atom (Types.UnboundSym "-->")) appl_446
-                !appl_448 <- appl_439 `pseq` (appl_447 `pseq` klCons appl_439 appl_447)
-                appl_448 `pseq` kl_declare (ApplC (wrapNamed "profile-results" kl_profile_results)) appl_448) `catchError` (\(!kl_E) -> do return (Types.Atom (Types.Str "E")))
-            (do !appl_449 <- klCons (Types.Atom (Types.UnboundSym "symbol")) (Types.Atom Types.Nil)
-                !appl_450 <- appl_449 `pseq` klCons (Types.Atom (Types.UnboundSym "-->")) appl_449
-                !appl_451 <- appl_450 `pseq` klCons (Types.Atom (Types.UnboundSym "symbol")) appl_450
-                appl_451 `pseq` kl_declare (ApplC (wrapNamed "protect" kl_protect)) appl_451) `catchError` (\(!kl_E) -> do return (Types.Atom (Types.Str "E")))
-            (do !appl_452 <- klCons (Types.Atom (Types.UnboundSym "symbol")) (Types.Atom Types.Nil)
-                !appl_453 <- appl_452 `pseq` klCons (Types.Atom (Types.UnboundSym "list")) appl_452
-                !appl_454 <- klCons (Types.Atom (Types.UnboundSym "symbol")) (Types.Atom Types.Nil)
-                !appl_455 <- appl_454 `pseq` klCons (Types.Atom (Types.UnboundSym "list")) appl_454
-                !appl_456 <- appl_455 `pseq` klCons appl_455 (Types.Atom Types.Nil)
-                !appl_457 <- appl_456 `pseq` klCons (Types.Atom (Types.UnboundSym "-->")) appl_456
-                !appl_458 <- appl_453 `pseq` (appl_457 `pseq` klCons appl_453 appl_457)
-                appl_458 `pseq` kl_declare (ApplC (wrapNamed "preclude-all-but" kl_preclude_all_but)) appl_458) `catchError` (\(!kl_E) -> do return (Types.Atom (Types.Str "E")))
-            (do !appl_459 <- klCons (Types.Atom (Types.UnboundSym "out")) (Types.Atom Types.Nil)
-                !appl_460 <- appl_459 `pseq` klCons (Types.Atom (Types.UnboundSym "stream")) appl_459
-                !appl_461 <- klCons (Types.Atom (Types.UnboundSym "string")) (Types.Atom Types.Nil)
-                !appl_462 <- appl_461 `pseq` klCons (Types.Atom (Types.UnboundSym "-->")) appl_461
-                !appl_463 <- appl_460 `pseq` (appl_462 `pseq` klCons appl_460 appl_462)
-                !appl_464 <- appl_463 `pseq` klCons appl_463 (Types.Atom Types.Nil)
-                !appl_465 <- appl_464 `pseq` klCons (Types.Atom (Types.UnboundSym "-->")) appl_464
-                !appl_466 <- appl_465 `pseq` klCons (Types.Atom (Types.UnboundSym "string")) appl_465
-                appl_466 `pseq` kl_declare (ApplC (wrapNamed "shen.prhush" kl_shen_prhush)) appl_466) `catchError` (\(!kl_E) -> do return (Types.Atom (Types.Str "E")))
-            (do !appl_467 <- klCons (Types.Atom (Types.UnboundSym "unit")) (Types.Atom Types.Nil)
-                !appl_468 <- appl_467 `pseq` klCons (Types.Atom (Types.UnboundSym "list")) appl_467
-                !appl_469 <- appl_468 `pseq` klCons appl_468 (Types.Atom Types.Nil)
-                !appl_470 <- appl_469 `pseq` klCons (Types.Atom (Types.UnboundSym "-->")) appl_469
-                !appl_471 <- appl_470 `pseq` klCons (Types.Atom (Types.UnboundSym "symbol")) appl_470
-                appl_471 `pseq` kl_declare (ApplC (wrapNamed "ps" kl_ps)) appl_471) `catchError` (\(!kl_E) -> do return (Types.Atom (Types.Str "E")))
-            (do !appl_472 <- klCons (Types.Atom (Types.UnboundSym "in")) (Types.Atom Types.Nil)
-                !appl_473 <- appl_472 `pseq` klCons (Types.Atom (Types.UnboundSym "stream")) appl_472
-                !appl_474 <- klCons (Types.Atom (Types.UnboundSym "unit")) (Types.Atom Types.Nil)
-                !appl_475 <- appl_474 `pseq` klCons (Types.Atom (Types.UnboundSym "-->")) appl_474
-                !appl_476 <- appl_473 `pseq` (appl_475 `pseq` klCons appl_473 appl_475)
-                appl_476 `pseq` kl_declare (ApplC (wrapNamed "read" kl_read)) appl_476) `catchError` (\(!kl_E) -> do return (Types.Atom (Types.Str "E")))
-            (do !appl_477 <- klCons (Types.Atom (Types.UnboundSym "in")) (Types.Atom Types.Nil)
-                !appl_478 <- appl_477 `pseq` klCons (Types.Atom (Types.UnboundSym "stream")) appl_477
-                !appl_479 <- klCons (Types.Atom (Types.UnboundSym "number")) (Types.Atom Types.Nil)
-                !appl_480 <- appl_479 `pseq` klCons (Types.Atom (Types.UnboundSym "-->")) appl_479
-                !appl_481 <- appl_478 `pseq` (appl_480 `pseq` klCons appl_478 appl_480)
-                appl_481 `pseq` kl_declare (ApplC (wrapNamed "read-byte" readByte)) appl_481) `catchError` (\(!kl_E) -> do return (Types.Atom (Types.Str "E")))
-            (do !appl_482 <- klCons (Types.Atom (Types.UnboundSym "number")) (Types.Atom Types.Nil)
-                !appl_483 <- appl_482 `pseq` klCons (Types.Atom (Types.UnboundSym "list")) appl_482
-                !appl_484 <- appl_483 `pseq` klCons appl_483 (Types.Atom Types.Nil)
-                !appl_485 <- appl_484 `pseq` klCons (Types.Atom (Types.UnboundSym "-->")) appl_484
-                !appl_486 <- appl_485 `pseq` klCons (Types.Atom (Types.UnboundSym "string")) appl_485
-                appl_486 `pseq` kl_declare (ApplC (wrapNamed "read-file-as-bytelist" kl_read_file_as_bytelist)) appl_486) `catchError` (\(!kl_E) -> do return (Types.Atom (Types.Str "E")))
-            (do !appl_487 <- klCons (Types.Atom (Types.UnboundSym "string")) (Types.Atom Types.Nil)
-                !appl_488 <- appl_487 `pseq` klCons (Types.Atom (Types.UnboundSym "-->")) appl_487
-                !appl_489 <- appl_488 `pseq` klCons (Types.Atom (Types.UnboundSym "string")) appl_488
-                appl_489 `pseq` kl_declare (ApplC (wrapNamed "read-file-as-string" kl_read_file_as_string)) appl_489) `catchError` (\(!kl_E) -> do return (Types.Atom (Types.Str "E")))
-            (do !appl_490 <- klCons (Types.Atom (Types.UnboundSym "unit")) (Types.Atom Types.Nil)
-                !appl_491 <- appl_490 `pseq` klCons (Types.Atom (Types.UnboundSym "list")) appl_490
-                !appl_492 <- appl_491 `pseq` klCons appl_491 (Types.Atom Types.Nil)
-                !appl_493 <- appl_492 `pseq` klCons (Types.Atom (Types.UnboundSym "-->")) appl_492
-                !appl_494 <- appl_493 `pseq` klCons (Types.Atom (Types.UnboundSym "string")) appl_493
-                appl_494 `pseq` kl_declare (ApplC (wrapNamed "read-file" kl_read_file)) appl_494) `catchError` (\(!kl_E) -> do return (Types.Atom (Types.Str "E")))
-            (do !appl_495 <- klCons (Types.Atom (Types.UnboundSym "unit")) (Types.Atom Types.Nil)
-                !appl_496 <- appl_495 `pseq` klCons (Types.Atom (Types.UnboundSym "list")) appl_495
-                !appl_497 <- appl_496 `pseq` klCons appl_496 (Types.Atom Types.Nil)
-                !appl_498 <- appl_497 `pseq` klCons (Types.Atom (Types.UnboundSym "-->")) appl_497
-                !appl_499 <- appl_498 `pseq` klCons (Types.Atom (Types.UnboundSym "string")) appl_498
-                appl_499 `pseq` kl_declare (ApplC (wrapNamed "read-from-string" kl_read_from_string)) appl_499) `catchError` (\(!kl_E) -> do return (Types.Atom (Types.Str "E")))
-            (do !appl_500 <- klCons (Types.Atom (Types.UnboundSym "string")) (Types.Atom Types.Nil)
-                !appl_501 <- appl_500 `pseq` klCons (Types.Atom (Types.UnboundSym "-->")) appl_500
-                appl_501 `pseq` kl_declare (ApplC (PL "release" kl_release)) appl_501) `catchError` (\(!kl_E) -> do return (Types.Atom (Types.Str "E")))
-            (do !appl_502 <- klCons (Types.Atom (Types.UnboundSym "A")) (Types.Atom Types.Nil)
-                !appl_503 <- appl_502 `pseq` klCons (Types.Atom (Types.UnboundSym "list")) appl_502
-                !appl_504 <- klCons (Types.Atom (Types.UnboundSym "A")) (Types.Atom Types.Nil)
-                !appl_505 <- appl_504 `pseq` klCons (Types.Atom (Types.UnboundSym "list")) appl_504
-                !appl_506 <- appl_505 `pseq` klCons appl_505 (Types.Atom Types.Nil)
-                !appl_507 <- appl_506 `pseq` klCons (Types.Atom (Types.UnboundSym "-->")) appl_506
-                !appl_508 <- appl_503 `pseq` (appl_507 `pseq` klCons appl_503 appl_507)
-                !appl_509 <- appl_508 `pseq` klCons appl_508 (Types.Atom Types.Nil)
-                !appl_510 <- appl_509 `pseq` klCons (Types.Atom (Types.UnboundSym "-->")) appl_509
-                !appl_511 <- appl_510 `pseq` klCons (Types.Atom (Types.UnboundSym "A")) appl_510
-                appl_511 `pseq` kl_declare (ApplC (wrapNamed "remove" kl_remove)) appl_511) `catchError` (\(!kl_E) -> do return (Types.Atom (Types.Str "E")))
-            (do !appl_512 <- klCons (Types.Atom (Types.UnboundSym "A")) (Types.Atom Types.Nil)
-                !appl_513 <- appl_512 `pseq` klCons (Types.Atom (Types.UnboundSym "list")) appl_512
-                !appl_514 <- klCons (Types.Atom (Types.UnboundSym "A")) (Types.Atom Types.Nil)
-                !appl_515 <- appl_514 `pseq` klCons (Types.Atom (Types.UnboundSym "list")) appl_514
-                !appl_516 <- appl_515 `pseq` klCons appl_515 (Types.Atom Types.Nil)
-                !appl_517 <- appl_516 `pseq` klCons (Types.Atom (Types.UnboundSym "-->")) appl_516
-                !appl_518 <- appl_513 `pseq` (appl_517 `pseq` klCons appl_513 appl_517)
-                appl_518 `pseq` kl_declare (ApplC (wrapNamed "reverse" kl_reverse)) appl_518) `catchError` (\(!kl_E) -> do return (Types.Atom (Types.Str "E")))
-            (do !appl_519 <- klCons (Types.Atom (Types.UnboundSym "A")) (Types.Atom Types.Nil)
-                !appl_520 <- appl_519 `pseq` klCons (Types.Atom (Types.UnboundSym "-->")) appl_519
-                !appl_521 <- appl_520 `pseq` klCons (Types.Atom (Types.UnboundSym "string")) appl_520
-                appl_521 `pseq` kl_declare (ApplC (wrapNamed "simple-error" simpleError)) appl_521) `catchError` (\(!kl_E) -> do return (Types.Atom (Types.Str "E")))
-            (do !appl_522 <- klCons (Types.Atom (Types.UnboundSym "B")) (Types.Atom Types.Nil)
-                !appl_523 <- appl_522 `pseq` klCons (ApplC (wrapNamed "*" multiply)) appl_522
-                !appl_524 <- appl_523 `pseq` klCons (Types.Atom (Types.UnboundSym "A")) appl_523
-                !appl_525 <- klCons (Types.Atom (Types.UnboundSym "B")) (Types.Atom Types.Nil)
-                !appl_526 <- appl_525 `pseq` klCons (Types.Atom (Types.UnboundSym "-->")) appl_525
-                !appl_527 <- appl_524 `pseq` (appl_526 `pseq` klCons appl_524 appl_526)
-                appl_527 `pseq` kl_declare (ApplC (wrapNamed "snd" kl_snd)) appl_527) `catchError` (\(!kl_E) -> do return (Types.Atom (Types.Str "E")))
-            (do !appl_528 <- klCons (Types.Atom (Types.UnboundSym "symbol")) (Types.Atom Types.Nil)
-                !appl_529 <- appl_528 `pseq` klCons (Types.Atom (Types.UnboundSym "-->")) appl_528
-                !appl_530 <- appl_529 `pseq` klCons (Types.Atom (Types.UnboundSym "symbol")) appl_529
-                appl_530 `pseq` kl_declare (ApplC (wrapNamed "specialise" kl_specialise)) appl_530) `catchError` (\(!kl_E) -> do return (Types.Atom (Types.Str "E")))
-            (do !appl_531 <- klCons (Types.Atom (Types.UnboundSym "boolean")) (Types.Atom Types.Nil)
-                !appl_532 <- appl_531 `pseq` klCons (Types.Atom (Types.UnboundSym "-->")) appl_531
-                !appl_533 <- appl_532 `pseq` klCons (Types.Atom (Types.UnboundSym "symbol")) appl_532
-                appl_533 `pseq` kl_declare (ApplC (wrapNamed "spy" kl_spy)) appl_533) `catchError` (\(!kl_E) -> do return (Types.Atom (Types.Str "E")))
-            (do !appl_534 <- klCons (Types.Atom (Types.UnboundSym "boolean")) (Types.Atom Types.Nil)
-                !appl_535 <- appl_534 `pseq` klCons (Types.Atom (Types.UnboundSym "-->")) appl_534
-                !appl_536 <- appl_535 `pseq` klCons (Types.Atom (Types.UnboundSym "symbol")) appl_535
-                appl_536 `pseq` kl_declare (ApplC (wrapNamed "step" kl_step)) appl_536) `catchError` (\(!kl_E) -> do return (Types.Atom (Types.Str "E")))
-            (do !appl_537 <- klCons (Types.Atom (Types.UnboundSym "in")) (Types.Atom Types.Nil)
-                !appl_538 <- appl_537 `pseq` klCons (Types.Atom (Types.UnboundSym "stream")) appl_537
-                !appl_539 <- appl_538 `pseq` klCons appl_538 (Types.Atom Types.Nil)
-                !appl_540 <- appl_539 `pseq` klCons (Types.Atom (Types.UnboundSym "-->")) appl_539
-                appl_540 `pseq` kl_declare (ApplC (PL "stinput" kl_stinput)) appl_540) `catchError` (\(!kl_E) -> do return (Types.Atom (Types.Str "E")))
-            (do !appl_541 <- klCons (Types.Atom (Types.UnboundSym "out")) (Types.Atom Types.Nil)
-                !appl_542 <- appl_541 `pseq` klCons (Types.Atom (Types.UnboundSym "stream")) appl_541
-                !appl_543 <- appl_542 `pseq` klCons appl_542 (Types.Atom Types.Nil)
-                !appl_544 <- appl_543 `pseq` klCons (Types.Atom (Types.UnboundSym "-->")) appl_543
-                appl_544 `pseq` kl_declare (ApplC (PL "stoutput" kl_stoutput)) appl_544) `catchError` (\(!kl_E) -> do return (Types.Atom (Types.Str "E")))
-            (do !appl_545 <- klCons (Types.Atom (Types.UnboundSym "boolean")) (Types.Atom Types.Nil)
-                !appl_546 <- appl_545 `pseq` klCons (Types.Atom (Types.UnboundSym "-->")) appl_545
-                !appl_547 <- appl_546 `pseq` klCons (Types.Atom (Types.UnboundSym "A")) appl_546
-                appl_547 `pseq` kl_declare (ApplC (wrapNamed "string?" stringP)) appl_547) `catchError` (\(!kl_E) -> do return (Types.Atom (Types.Str "E")))
-            (do !appl_548 <- klCons (Types.Atom (Types.UnboundSym "string")) (Types.Atom Types.Nil)
-                !appl_549 <- appl_548 `pseq` klCons (Types.Atom (Types.UnboundSym "-->")) appl_548
-                !appl_550 <- appl_549 `pseq` klCons (Types.Atom (Types.UnboundSym "A")) appl_549
-                appl_550 `pseq` kl_declare (ApplC (wrapNamed "str" str)) appl_550) `catchError` (\(!kl_E) -> do return (Types.Atom (Types.Str "E")))
-            (do !appl_551 <- klCons (Types.Atom (Types.UnboundSym "number")) (Types.Atom Types.Nil)
-                !appl_552 <- appl_551 `pseq` klCons (Types.Atom (Types.UnboundSym "-->")) appl_551
-                !appl_553 <- appl_552 `pseq` klCons (Types.Atom (Types.UnboundSym "string")) appl_552
-                appl_553 `pseq` kl_declare (ApplC (wrapNamed "string->n" stringToN)) appl_553) `catchError` (\(!kl_E) -> do return (Types.Atom (Types.Str "E")))
-            (do !appl_554 <- klCons (Types.Atom (Types.UnboundSym "symbol")) (Types.Atom Types.Nil)
-                !appl_555 <- appl_554 `pseq` klCons (Types.Atom (Types.UnboundSym "-->")) appl_554
-                !appl_556 <- appl_555 `pseq` klCons (Types.Atom (Types.UnboundSym "string")) appl_555
-                appl_556 `pseq` kl_declare (ApplC (wrapNamed "string->symbol" kl_string_RBsymbol)) appl_556) `catchError` (\(!kl_E) -> do return (Types.Atom (Types.Str "E")))
-            (do !appl_557 <- klCons (Types.Atom (Types.UnboundSym "number")) (Types.Atom Types.Nil)
-                !appl_558 <- appl_557 `pseq` klCons (Types.Atom (Types.UnboundSym "list")) appl_557
-                !appl_559 <- klCons (Types.Atom (Types.UnboundSym "number")) (Types.Atom Types.Nil)
-                !appl_560 <- appl_559 `pseq` klCons (Types.Atom (Types.UnboundSym "-->")) appl_559
-                !appl_561 <- appl_558 `pseq` (appl_560 `pseq` klCons appl_558 appl_560)
-                appl_561 `pseq` kl_declare (ApplC (wrapNamed "sum" kl_sum)) appl_561) `catchError` (\(!kl_E) -> do return (Types.Atom (Types.Str "E")))
-            (do !appl_562 <- klCons (Types.Atom (Types.UnboundSym "boolean")) (Types.Atom Types.Nil)
-                !appl_563 <- appl_562 `pseq` klCons (Types.Atom (Types.UnboundSym "-->")) appl_562
-                !appl_564 <- appl_563 `pseq` klCons (Types.Atom (Types.UnboundSym "A")) appl_563
-                appl_564 `pseq` kl_declare (ApplC (wrapNamed "symbol?" kl_symbolP)) appl_564) `catchError` (\(!kl_E) -> do return (Types.Atom (Types.Str "E")))
-            (do !appl_565 <- klCons (Types.Atom (Types.UnboundSym "symbol")) (Types.Atom Types.Nil)
-                !appl_566 <- appl_565 `pseq` klCons (Types.Atom (Types.UnboundSym "-->")) appl_565
-                !appl_567 <- appl_566 `pseq` klCons (Types.Atom (Types.UnboundSym "symbol")) appl_566
-                appl_567 `pseq` kl_declare (ApplC (wrapNamed "systemf" kl_systemf)) appl_567) `catchError` (\(!kl_E) -> do return (Types.Atom (Types.Str "E")))
-            (do !appl_568 <- klCons (Types.Atom (Types.UnboundSym "A")) (Types.Atom Types.Nil)
-                !appl_569 <- appl_568 `pseq` klCons (Types.Atom (Types.UnboundSym "list")) appl_568
-                !appl_570 <- klCons (Types.Atom (Types.UnboundSym "A")) (Types.Atom Types.Nil)
-                !appl_571 <- appl_570 `pseq` klCons (Types.Atom (Types.UnboundSym "list")) appl_570
-                !appl_572 <- appl_571 `pseq` klCons appl_571 (Types.Atom Types.Nil)
-                !appl_573 <- appl_572 `pseq` klCons (Types.Atom (Types.UnboundSym "-->")) appl_572
-                !appl_574 <- appl_569 `pseq` (appl_573 `pseq` klCons appl_569 appl_573)
-                appl_574 `pseq` kl_declare (ApplC (wrapNamed "tail" kl_tail)) appl_574) `catchError` (\(!kl_E) -> do return (Types.Atom (Types.Str "E")))
-            (do !appl_575 <- klCons (Types.Atom (Types.UnboundSym "string")) (Types.Atom Types.Nil)
-                !appl_576 <- appl_575 `pseq` klCons (Types.Atom (Types.UnboundSym "-->")) appl_575
-                !appl_577 <- appl_576 `pseq` klCons (Types.Atom (Types.UnboundSym "string")) appl_576
-                appl_577 `pseq` kl_declare (ApplC (wrapNamed "tlstr" tlstr)) appl_577) `catchError` (\(!kl_E) -> do return (Types.Atom (Types.Str "E")))
-            (do !appl_578 <- klCons (Types.Atom (Types.UnboundSym "A")) (Types.Atom Types.Nil)
-                !appl_579 <- appl_578 `pseq` klCons (ApplC (wrapNamed "vector" kl_vector)) appl_578
-                !appl_580 <- klCons (Types.Atom (Types.UnboundSym "A")) (Types.Atom Types.Nil)
-                !appl_581 <- appl_580 `pseq` klCons (ApplC (wrapNamed "vector" kl_vector)) appl_580
-                !appl_582 <- appl_581 `pseq` klCons appl_581 (Types.Atom Types.Nil)
-                !appl_583 <- appl_582 `pseq` klCons (Types.Atom (Types.UnboundSym "-->")) appl_582
-                !appl_584 <- appl_579 `pseq` (appl_583 `pseq` klCons appl_579 appl_583)
-                appl_584 `pseq` kl_declare (ApplC (wrapNamed "tlv" kl_tlv)) appl_584) `catchError` (\(!kl_E) -> do return (Types.Atom (Types.Str "E")))
-            (do !appl_585 <- klCons (Types.Atom (Types.UnboundSym "boolean")) (Types.Atom Types.Nil)
-                !appl_586 <- appl_585 `pseq` klCons (Types.Atom (Types.UnboundSym "-->")) appl_585
-                !appl_587 <- appl_586 `pseq` klCons (Types.Atom (Types.UnboundSym "symbol")) appl_586
-                appl_587 `pseq` kl_declare (ApplC (wrapNamed "tc" kl_tc)) appl_587) `catchError` (\(!kl_E) -> do return (Types.Atom (Types.Str "E")))
-            (do !appl_588 <- klCons (Types.Atom (Types.UnboundSym "boolean")) (Types.Atom Types.Nil)
-                !appl_589 <- appl_588 `pseq` klCons (Types.Atom (Types.UnboundSym "-->")) appl_588
-                appl_589 `pseq` kl_declare (ApplC (PL "tc?" kl_tcP)) appl_589) `catchError` (\(!kl_E) -> do return (Types.Atom (Types.Str "E")))
-            (do !appl_590 <- klCons (Types.Atom (Types.UnboundSym "A")) (Types.Atom Types.Nil)
-                !appl_591 <- appl_590 `pseq` klCons (Types.Atom (Types.UnboundSym "lazy")) appl_590
-                !appl_592 <- klCons (Types.Atom (Types.UnboundSym "A")) (Types.Atom Types.Nil)
-                !appl_593 <- appl_592 `pseq` klCons (Types.Atom (Types.UnboundSym "-->")) appl_592
-                !appl_594 <- appl_591 `pseq` (appl_593 `pseq` klCons appl_591 appl_593)
-                appl_594 `pseq` kl_declare (ApplC (wrapNamed "thaw" kl_thaw)) appl_594) `catchError` (\(!kl_E) -> do return (Types.Atom (Types.Str "E")))
-            (do !appl_595 <- klCons (Types.Atom (Types.UnboundSym "symbol")) (Types.Atom Types.Nil)
-                !appl_596 <- appl_595 `pseq` klCons (Types.Atom (Types.UnboundSym "-->")) appl_595
-                !appl_597 <- appl_596 `pseq` klCons (Types.Atom (Types.UnboundSym "symbol")) appl_596
-                appl_597 `pseq` kl_declare (ApplC (wrapNamed "track" kl_track)) appl_597) `catchError` (\(!kl_E) -> do return (Types.Atom (Types.Str "E")))
-            (do !appl_598 <- klCons (Types.Atom (Types.UnboundSym "A")) (Types.Atom Types.Nil)
-                !appl_599 <- appl_598 `pseq` klCons (Types.Atom (Types.UnboundSym "-->")) appl_598
-                !appl_600 <- appl_599 `pseq` klCons (Types.Atom (Types.UnboundSym "exception")) appl_599
-                !appl_601 <- klCons (Types.Atom (Types.UnboundSym "A")) (Types.Atom Types.Nil)
-                !appl_602 <- appl_601 `pseq` klCons (Types.Atom (Types.UnboundSym "-->")) appl_601
-                !appl_603 <- appl_600 `pseq` (appl_602 `pseq` klCons appl_600 appl_602)
-                !appl_604 <- appl_603 `pseq` klCons appl_603 (Types.Atom Types.Nil)
-                !appl_605 <- appl_604 `pseq` klCons (Types.Atom (Types.UnboundSym "-->")) appl_604
-                !appl_606 <- appl_605 `pseq` klCons (Types.Atom (Types.UnboundSym "A")) appl_605
-                appl_606 `pseq` kl_declare (Types.Atom (Types.UnboundSym "trap-error")) appl_606) `catchError` (\(!kl_E) -> do return (Types.Atom (Types.Str "E")))
-            (do !appl_607 <- klCons (Types.Atom (Types.UnboundSym "boolean")) (Types.Atom Types.Nil)
-                !appl_608 <- appl_607 `pseq` klCons (Types.Atom (Types.UnboundSym "-->")) appl_607
-                !appl_609 <- appl_608 `pseq` klCons (Types.Atom (Types.UnboundSym "A")) appl_608
-                appl_609 `pseq` kl_declare (ApplC (wrapNamed "tuple?" kl_tupleP)) appl_609) `catchError` (\(!kl_E) -> do return (Types.Atom (Types.Str "E")))
-            (do !appl_610 <- klCons (Types.Atom (Types.UnboundSym "symbol")) (Types.Atom Types.Nil)
-                !appl_611 <- appl_610 `pseq` klCons (Types.Atom (Types.UnboundSym "-->")) appl_610
-                !appl_612 <- appl_611 `pseq` klCons (Types.Atom (Types.UnboundSym "symbol")) appl_611
-                appl_612 `pseq` kl_declare (ApplC (wrapNamed "undefmacro" kl_undefmacro)) appl_612) `catchError` (\(!kl_E) -> do return (Types.Atom (Types.Str "E")))
-            (do !appl_613 <- klCons (Types.Atom (Types.UnboundSym "A")) (Types.Atom Types.Nil)
-                !appl_614 <- appl_613 `pseq` klCons (Types.Atom (Types.UnboundSym "list")) appl_613
-                !appl_615 <- klCons (Types.Atom (Types.UnboundSym "A")) (Types.Atom Types.Nil)
-                !appl_616 <- appl_615 `pseq` klCons (Types.Atom (Types.UnboundSym "list")) appl_615
-                !appl_617 <- klCons (Types.Atom (Types.UnboundSym "A")) (Types.Atom Types.Nil)
-                !appl_618 <- appl_617 `pseq` klCons (Types.Atom (Types.UnboundSym "list")) appl_617
-                !appl_619 <- appl_618 `pseq` klCons appl_618 (Types.Atom Types.Nil)
-                !appl_620 <- appl_619 `pseq` klCons (Types.Atom (Types.UnboundSym "-->")) appl_619
-                !appl_621 <- appl_616 `pseq` (appl_620 `pseq` klCons appl_616 appl_620)
-                !appl_622 <- appl_621 `pseq` klCons appl_621 (Types.Atom Types.Nil)
-                !appl_623 <- appl_622 `pseq` klCons (Types.Atom (Types.UnboundSym "-->")) appl_622
-                !appl_624 <- appl_614 `pseq` (appl_623 `pseq` klCons appl_614 appl_623)
-                appl_624 `pseq` kl_declare (ApplC (wrapNamed "union" kl_union)) appl_624) `catchError` (\(!kl_E) -> do return (Types.Atom (Types.Str "E")))
-            (do !appl_625 <- klCons (Types.Atom (Types.UnboundSym "B")) (Types.Atom Types.Nil)
-                !appl_626 <- appl_625 `pseq` klCons (Types.Atom (Types.UnboundSym "-->")) appl_625
-                !appl_627 <- appl_626 `pseq` klCons (Types.Atom (Types.UnboundSym "A")) appl_626
-                !appl_628 <- klCons (Types.Atom (Types.UnboundSym "B")) (Types.Atom Types.Nil)
-                !appl_629 <- appl_628 `pseq` klCons (Types.Atom (Types.UnboundSym "-->")) appl_628
-                !appl_630 <- appl_629 `pseq` klCons (Types.Atom (Types.UnboundSym "A")) appl_629
-                !appl_631 <- appl_630 `pseq` klCons appl_630 (Types.Atom Types.Nil)
-                !appl_632 <- appl_631 `pseq` klCons (Types.Atom (Types.UnboundSym "-->")) appl_631
-                !appl_633 <- appl_627 `pseq` (appl_632 `pseq` klCons appl_627 appl_632)
-                appl_633 `pseq` kl_declare (ApplC (wrapNamed "unprofile" kl_unprofile)) appl_633) `catchError` (\(!kl_E) -> do return (Types.Atom (Types.Str "E")))
-            (do !appl_634 <- klCons (Types.Atom (Types.UnboundSym "symbol")) (Types.Atom Types.Nil)
-                !appl_635 <- appl_634 `pseq` klCons (Types.Atom (Types.UnboundSym "-->")) appl_634
-                !appl_636 <- appl_635 `pseq` klCons (Types.Atom (Types.UnboundSym "symbol")) appl_635
-                appl_636 `pseq` kl_declare (ApplC (wrapNamed "untrack" kl_untrack)) appl_636) `catchError` (\(!kl_E) -> do return (Types.Atom (Types.Str "E")))
-            (do !appl_637 <- klCons (Types.Atom (Types.UnboundSym "symbol")) (Types.Atom Types.Nil)
-                !appl_638 <- appl_637 `pseq` klCons (Types.Atom (Types.UnboundSym "-->")) appl_637
-                !appl_639 <- appl_638 `pseq` klCons (Types.Atom (Types.UnboundSym "symbol")) appl_638
-                appl_639 `pseq` kl_declare (ApplC (wrapNamed "unspecialise" kl_unspecialise)) appl_639) `catchError` (\(!kl_E) -> do return (Types.Atom (Types.Str "E")))
-            (do !appl_640 <- klCons (Types.Atom (Types.UnboundSym "boolean")) (Types.Atom Types.Nil)
-                !appl_641 <- appl_640 `pseq` klCons (Types.Atom (Types.UnboundSym "-->")) appl_640
-                !appl_642 <- appl_641 `pseq` klCons (Types.Atom (Types.UnboundSym "A")) appl_641
-                appl_642 `pseq` kl_declare (ApplC (wrapNamed "variable?" kl_variableP)) appl_642) `catchError` (\(!kl_E) -> do return (Types.Atom (Types.Str "E")))
-            (do !appl_643 <- klCons (Types.Atom (Types.UnboundSym "boolean")) (Types.Atom Types.Nil)
-                !appl_644 <- appl_643 `pseq` klCons (Types.Atom (Types.UnboundSym "-->")) appl_643
-                !appl_645 <- appl_644 `pseq` klCons (Types.Atom (Types.UnboundSym "A")) appl_644
-                appl_645 `pseq` kl_declare (ApplC (wrapNamed "vector?" kl_vectorP)) appl_645) `catchError` (\(!kl_E) -> do return (Types.Atom (Types.Str "E")))
-            (do !appl_646 <- klCons (Types.Atom (Types.UnboundSym "string")) (Types.Atom Types.Nil)
-                !appl_647 <- appl_646 `pseq` klCons (Types.Atom (Types.UnboundSym "-->")) appl_646
-                appl_647 `pseq` kl_declare (ApplC (PL "version" kl_version)) appl_647) `catchError` (\(!kl_E) -> do return (Types.Atom (Types.Str "E")))
-            (do !appl_648 <- klCons (Types.Atom (Types.UnboundSym "A")) (Types.Atom Types.Nil)
-                !appl_649 <- appl_648 `pseq` klCons (Types.Atom (Types.UnboundSym "-->")) appl_648
-                !appl_650 <- appl_649 `pseq` klCons (Types.Atom (Types.UnboundSym "A")) appl_649
-                !appl_651 <- appl_650 `pseq` klCons appl_650 (Types.Atom Types.Nil)
-                !appl_652 <- appl_651 `pseq` klCons (Types.Atom (Types.UnboundSym "-->")) appl_651
-                !appl_653 <- appl_652 `pseq` klCons (Types.Atom (Types.UnboundSym "string")) appl_652
-                appl_653 `pseq` kl_declare (ApplC (wrapNamed "write-to-file" kl_write_to_file)) appl_653) `catchError` (\(!kl_E) -> do return (Types.Atom (Types.Str "E")))
-            (do !appl_654 <- klCons (Types.Atom (Types.UnboundSym "out")) (Types.Atom Types.Nil)
-                !appl_655 <- appl_654 `pseq` klCons (Types.Atom (Types.UnboundSym "stream")) appl_654
-                !appl_656 <- klCons (Types.Atom (Types.UnboundSym "number")) (Types.Atom Types.Nil)
-                !appl_657 <- appl_656 `pseq` klCons (Types.Atom (Types.UnboundSym "-->")) appl_656
-                !appl_658 <- appl_655 `pseq` (appl_657 `pseq` klCons appl_655 appl_657)
-                !appl_659 <- appl_658 `pseq` klCons appl_658 (Types.Atom Types.Nil)
-                !appl_660 <- appl_659 `pseq` klCons (Types.Atom (Types.UnboundSym "-->")) appl_659
-                !appl_661 <- appl_660 `pseq` klCons (Types.Atom (Types.UnboundSym "number")) appl_660
-                appl_661 `pseq` kl_declare (ApplC (wrapNamed "write-byte" writeByte)) appl_661) `catchError` (\(!kl_E) -> do return (Types.Atom (Types.Str "E")))
-            (do !appl_662 <- klCons (Types.Atom (Types.UnboundSym "boolean")) (Types.Atom Types.Nil)
-                !appl_663 <- appl_662 `pseq` klCons (Types.Atom (Types.UnboundSym "-->")) appl_662
-                !appl_664 <- appl_663 `pseq` klCons (Types.Atom (Types.UnboundSym "string")) appl_663
-                appl_664 `pseq` kl_declare (ApplC (wrapNamed "y-or-n?" kl_y_or_nP)) appl_664) `catchError` (\(!kl_E) -> do return (Types.Atom (Types.Str "E")))
-            (do !appl_665 <- klCons (Types.Atom (Types.UnboundSym "boolean")) (Types.Atom Types.Nil)
-                !appl_666 <- appl_665 `pseq` klCons (Types.Atom (Types.UnboundSym "-->")) appl_665
-                !appl_667 <- appl_666 `pseq` klCons (Types.Atom (Types.UnboundSym "number")) appl_666
-                !appl_668 <- appl_667 `pseq` klCons appl_667 (Types.Atom Types.Nil)
-                !appl_669 <- appl_668 `pseq` klCons (Types.Atom (Types.UnboundSym "-->")) appl_668
-                !appl_670 <- appl_669 `pseq` klCons (Types.Atom (Types.UnboundSym "number")) appl_669
-                appl_670 `pseq` kl_declare (ApplC (wrapNamed ">" greaterThan)) appl_670) `catchError` (\(!kl_E) -> do return (Types.Atom (Types.Str "E")))
-            (do !appl_671 <- klCons (Types.Atom (Types.UnboundSym "boolean")) (Types.Atom Types.Nil)
-                !appl_672 <- appl_671 `pseq` klCons (Types.Atom (Types.UnboundSym "-->")) appl_671
-                !appl_673 <- appl_672 `pseq` klCons (Types.Atom (Types.UnboundSym "number")) appl_672
-                !appl_674 <- appl_673 `pseq` klCons appl_673 (Types.Atom Types.Nil)
-                !appl_675 <- appl_674 `pseq` klCons (Types.Atom (Types.UnboundSym "-->")) appl_674
-                !appl_676 <- appl_675 `pseq` klCons (Types.Atom (Types.UnboundSym "number")) appl_675
-                appl_676 `pseq` kl_declare (ApplC (wrapNamed "<" lessThan)) appl_676) `catchError` (\(!kl_E) -> do return (Types.Atom (Types.Str "E")))
-            (do !appl_677 <- klCons (Types.Atom (Types.UnboundSym "boolean")) (Types.Atom Types.Nil)
-                !appl_678 <- appl_677 `pseq` klCons (Types.Atom (Types.UnboundSym "-->")) appl_677
-                !appl_679 <- appl_678 `pseq` klCons (Types.Atom (Types.UnboundSym "number")) appl_678
-                !appl_680 <- appl_679 `pseq` klCons appl_679 (Types.Atom Types.Nil)
-                !appl_681 <- appl_680 `pseq` klCons (Types.Atom (Types.UnboundSym "-->")) appl_680
-                !appl_682 <- appl_681 `pseq` klCons (Types.Atom (Types.UnboundSym "number")) appl_681
-                appl_682 `pseq` kl_declare (ApplC (wrapNamed ">=" greaterThanOrEqualTo)) appl_682) `catchError` (\(!kl_E) -> do return (Types.Atom (Types.Str "E")))
-            (do !appl_683 <- klCons (Types.Atom (Types.UnboundSym "boolean")) (Types.Atom Types.Nil)
-                !appl_684 <- appl_683 `pseq` klCons (Types.Atom (Types.UnboundSym "-->")) appl_683
-                !appl_685 <- appl_684 `pseq` klCons (Types.Atom (Types.UnboundSym "number")) appl_684
-                !appl_686 <- appl_685 `pseq` klCons appl_685 (Types.Atom Types.Nil)
-                !appl_687 <- appl_686 `pseq` klCons (Types.Atom (Types.UnboundSym "-->")) appl_686
-                !appl_688 <- appl_687 `pseq` klCons (Types.Atom (Types.UnboundSym "number")) appl_687
-                appl_688 `pseq` kl_declare (ApplC (wrapNamed "<=" lessThanOrEqualTo)) appl_688) `catchError` (\(!kl_E) -> do return (Types.Atom (Types.Str "E")))
-            (do !appl_689 <- klCons (Types.Atom (Types.UnboundSym "boolean")) (Types.Atom Types.Nil)
-                !appl_690 <- appl_689 `pseq` klCons (Types.Atom (Types.UnboundSym "-->")) appl_689
-                !appl_691 <- appl_690 `pseq` klCons (Types.Atom (Types.UnboundSym "A")) appl_690
-                !appl_692 <- appl_691 `pseq` klCons appl_691 (Types.Atom Types.Nil)
-                !appl_693 <- appl_692 `pseq` klCons (Types.Atom (Types.UnboundSym "-->")) appl_692
-                !appl_694 <- appl_693 `pseq` klCons (Types.Atom (Types.UnboundSym "A")) appl_693
-                appl_694 `pseq` kl_declare (ApplC (wrapNamed "=" eq)) appl_694) `catchError` (\(!kl_E) -> do return (Types.Atom (Types.Str "E")))
-            (do !appl_695 <- klCons (Types.Atom (Types.UnboundSym "number")) (Types.Atom Types.Nil)
-                !appl_696 <- appl_695 `pseq` klCons (Types.Atom (Types.UnboundSym "-->")) appl_695
-                !appl_697 <- appl_696 `pseq` klCons (Types.Atom (Types.UnboundSym "number")) appl_696
-                !appl_698 <- appl_697 `pseq` klCons appl_697 (Types.Atom Types.Nil)
-                !appl_699 <- appl_698 `pseq` klCons (Types.Atom (Types.UnboundSym "-->")) appl_698
-                !appl_700 <- appl_699 `pseq` klCons (Types.Atom (Types.UnboundSym "number")) appl_699
-                appl_700 `pseq` kl_declare (ApplC (wrapNamed "+" add)) appl_700) `catchError` (\(!kl_E) -> do return (Types.Atom (Types.Str "E")))
-            (do !appl_701 <- klCons (Types.Atom (Types.UnboundSym "number")) (Types.Atom Types.Nil)
-                !appl_702 <- appl_701 `pseq` klCons (Types.Atom (Types.UnboundSym "-->")) appl_701
-                !appl_703 <- appl_702 `pseq` klCons (Types.Atom (Types.UnboundSym "number")) appl_702
-                !appl_704 <- appl_703 `pseq` klCons appl_703 (Types.Atom Types.Nil)
-                !appl_705 <- appl_704 `pseq` klCons (Types.Atom (Types.UnboundSym "-->")) appl_704
-                !appl_706 <- appl_705 `pseq` klCons (Types.Atom (Types.UnboundSym "number")) appl_705
-                appl_706 `pseq` kl_declare (ApplC (wrapNamed "/" divide)) appl_706) `catchError` (\(!kl_E) -> do return (Types.Atom (Types.Str "E")))
-            (do !appl_707 <- klCons (Types.Atom (Types.UnboundSym "number")) (Types.Atom Types.Nil)
-                !appl_708 <- appl_707 `pseq` klCons (Types.Atom (Types.UnboundSym "-->")) appl_707
-                !appl_709 <- appl_708 `pseq` klCons (Types.Atom (Types.UnboundSym "number")) appl_708
-                !appl_710 <- appl_709 `pseq` klCons appl_709 (Types.Atom Types.Nil)
-                !appl_711 <- appl_710 `pseq` klCons (Types.Atom (Types.UnboundSym "-->")) appl_710
-                !appl_712 <- appl_711 `pseq` klCons (Types.Atom (Types.UnboundSym "number")) appl_711
-                appl_712 `pseq` kl_declare (ApplC (wrapNamed "-" Primitives.subtract)) appl_712) `catchError` (\(!kl_E) -> do return (Types.Atom (Types.Str "E")))
-            (do !appl_713 <- klCons (Types.Atom (Types.UnboundSym "number")) (Types.Atom Types.Nil)
-                !appl_714 <- appl_713 `pseq` klCons (Types.Atom (Types.UnboundSym "-->")) appl_713
-                !appl_715 <- appl_714 `pseq` klCons (Types.Atom (Types.UnboundSym "number")) appl_714
-                !appl_716 <- appl_715 `pseq` klCons appl_715 (Types.Atom Types.Nil)
-                !appl_717 <- appl_716 `pseq` klCons (Types.Atom (Types.UnboundSym "-->")) appl_716
-                !appl_718 <- appl_717 `pseq` klCons (Types.Atom (Types.UnboundSym "number")) appl_717
-                appl_718 `pseq` kl_declare (ApplC (wrapNamed "*" multiply)) appl_718) `catchError` (\(!kl_E) -> do return (Types.Atom (Types.Str "E")))
-            (do !appl_719 <- klCons (Types.Atom (Types.UnboundSym "boolean")) (Types.Atom Types.Nil)
-                !appl_720 <- appl_719 `pseq` klCons (Types.Atom (Types.UnboundSym "-->")) appl_719
-                !appl_721 <- appl_720 `pseq` klCons (Types.Atom (Types.UnboundSym "B")) appl_720
-                !appl_722 <- appl_721 `pseq` klCons appl_721 (Types.Atom Types.Nil)
-                !appl_723 <- appl_722 `pseq` klCons (Types.Atom (Types.UnboundSym "-->")) appl_722
-                !appl_724 <- appl_723 `pseq` klCons (Types.Atom (Types.UnboundSym "A")) appl_723
-                appl_724 `pseq` kl_declare (ApplC (wrapNamed "==" kl_EqEq)) appl_724) `catchError` (\(!kl_E) -> do return (Types.Atom (Types.Str "E")))
+{-# LANGUAGE BangPatterns #-}+{-# LANGUAGE OverloadedStrings #-}+{-# LANGUAGE Strict #-}+{-# LANGUAGE StrictData #-}+{-# LANGUAGE ViewPatterns #-}++module Backend.Types where++import Control.Monad.Except+import Control.Parallel+import Environment+import Core.Primitives as Primitives+import Backend.Utils+import Core.Types+import Core.Utils+import Wrap+import Backend.Toplevel+import Backend.Core+import Backend.Sys+import Backend.Sequent+import Backend.Yacc+import Backend.Reader+import Backend.Prolog+import Backend.Track+import Backend.Load+import Backend.Writer+import Backend.Macros+import Backend.Declarations++{-+Copyright (c) 2015, Mark Tarver+All rights reserved.++Redistribution and use in source and binary forms, with or without+modification, are permitted provided that the following conditions are met:++1. Redistributions of source code must retain the above copyright+   notice, this list of conditions and the following disclaimer.+2. Redistributions in binary form must reproduce the above copyright+   notice, this list of conditions and the following disclaimer in the+   documentation and/or other materials provided with the distribution.+3. The name of Mark Tarver may not be used to endorse or promote products+   derived from this software without specific prior written permission.++THIS SOFTWARE IS PROVIDED BY Mark Tarver ''AS IS'' AND ANY+EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED+WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE+DISCLAIMED. IN NO EVENT SHALL Mark Tarver BE LIABLE FOR ANY+DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES+(INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;+LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND+ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT+(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS+SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.+-}++kl_declare :: Core.Types.KLValue ->+              Core.Types.KLValue ->+              Core.Types.KLContext Core.Types.Env Core.Types.KLValue+kl_declare (!kl_V3988) (!kl_V3989) = do let !appl_0 = ApplC (Func "lambda" (Context (\(!kl_Record) -> do let !appl_1 = ApplC (Func "lambda" (Context (\(!kl_Variancy) -> do let !appl_2 = ApplC (Func "lambda" (Context (\(!kl_Type) -> do let !appl_3 = ApplC (Func "lambda" (Context (\(!kl_FMult) -> do let !appl_4 = ApplC (Func "lambda" (Context (\(!kl_Parameters) -> do let !appl_5 = ApplC (Func "lambda" (Context (\(!kl_Clause) -> do let !appl_6 = ApplC (Func "lambda" (Context (\(!kl_AUM_instruction) -> do let !appl_7 = ApplC (Func "lambda" (Context (\(!kl_Code) -> do let !appl_8 = ApplC (Func "lambda" (Context (\(!kl_ShenDef) -> do let !appl_9 = ApplC (Func "lambda" (Context (\(!kl_Eval) -> do return kl_V3988)))+                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                            !appl_10 <- kl_ShenDef `pseq` kl_shen_eval_without_macros kl_ShenDef+                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                            appl_10 `pseq` applyWrapper appl_9 [appl_10])))+                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                          let !appl_11 = Atom Nil+                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                          !appl_12 <- appl_11 `pseq` klCons (Core.Types.Atom (Core.Types.UnboundSym "Continuation")) appl_11+                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                          !appl_13 <- appl_12 `pseq` klCons (Core.Types.Atom (Core.Types.UnboundSym "ProcessN")) appl_12+                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                          let !appl_14 = Atom Nil+                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                          !appl_15 <- kl_Code `pseq` (appl_14 `pseq` klCons kl_Code appl_14)+                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                          !appl_16 <- appl_15 `pseq` klCons (Core.Types.Atom (Core.Types.UnboundSym "->")) appl_15+                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                          !appl_17 <- appl_13 `pseq` (appl_16 `pseq` kl_append appl_13 appl_16)+                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                          !appl_18 <- kl_Parameters `pseq` (appl_17 `pseq` kl_append kl_Parameters appl_17)+                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                          !appl_19 <- kl_FMult `pseq` (appl_18 `pseq` klCons kl_FMult appl_18)+                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                          !appl_20 <- appl_19 `pseq` klCons (Core.Types.Atom (Core.Types.UnboundSym "define")) appl_19+                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                          appl_20 `pseq` applyWrapper appl_8 [appl_20])))+                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                           !appl_21 <- kl_AUM_instruction `pseq` kl_shen_aum_to_shen kl_AUM_instruction+                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                           appl_21 `pseq` applyWrapper appl_7 [appl_21])))+                                                                                                                                                                                                                                                                                                                                                                                                                                                 !appl_22 <- kl_Clause `pseq` (kl_Parameters `pseq` kl_shen_aum kl_Clause kl_Parameters)+                                                                                                                                                                                                                                                                                                                                                                                                                                                 appl_22 `pseq` applyWrapper appl_6 [appl_22])))+                                                                                                                                                                                                                                                                                                                                                                                let !appl_23 = Atom Nil+                                                                                                                                                                                                                                                                                                                                                                                !appl_24 <- appl_23 `pseq` klCons (Core.Types.Atom (Core.Types.UnboundSym "X")) appl_23+                                                                                                                                                                                                                                                                                                                                                                                !appl_25 <- kl_FMult `pseq` (appl_24 `pseq` klCons kl_FMult appl_24)+                                                                                                                                                                                                                                                                                                                                                                                let !appl_26 = Atom Nil+                                                                                                                                                                                                                                                                                                                                                                                !appl_27 <- kl_Type `pseq` (appl_26 `pseq` klCons kl_Type appl_26)+                                                                                                                                                                                                                                                                                                                                                                                !appl_28 <- appl_27 `pseq` klCons (Core.Types.Atom (Core.Types.UnboundSym "X")) appl_27+                                                                                                                                                                                                                                                                                                                                                                                !appl_29 <- appl_28 `pseq` klCons (ApplC (wrapNamed "unify!" kl_unifyExcl)) appl_28+                                                                                                                                                                                                                                                                                                                                                                                let !appl_30 = Atom Nil+                                                                                                                                                                                                                                                                                                                                                                                !appl_31 <- appl_29 `pseq` (appl_30 `pseq` klCons appl_29 appl_30)+                                                                                                                                                                                                                                                                                                                                                                                let !appl_32 = Atom Nil+                                                                                                                                                                                                                                                                                                                                                                                !appl_33 <- appl_31 `pseq` (appl_32 `pseq` klCons appl_31 appl_32)+                                                                                                                                                                                                                                                                                                                                                                                !appl_34 <- appl_33 `pseq` klCons (Core.Types.Atom (Core.Types.UnboundSym ":-")) appl_33+                                                                                                                                                                                                                                                                                                                                                                                !appl_35 <- appl_25 `pseq` (appl_34 `pseq` klCons appl_25 appl_34)+                                                                                                                                                                                                                                                                                                                                                                                appl_35 `pseq` applyWrapper appl_5 [appl_35])))+                                                                                                                                                                                                                                                                                                           !appl_36 <- kl_shen_parameters (Core.Types.Atom (Core.Types.N (Core.Types.KI 1)))+                                                                                                                                                                                                                                                                                                           appl_36 `pseq` applyWrapper appl_4 [appl_36])))+                                                                                                                                                                                                                                           !appl_37 <- kl_V3988 `pseq` kl_concat (Core.Types.Atom (Core.Types.UnboundSym "shen.type-signature-of-")) kl_V3988+                                                                                                                                                                                                                                           appl_37 `pseq` applyWrapper appl_3 [appl_37])))+                                                                                                                                                                            !appl_38 <- kl_V3989 `pseq` kl_shen_demodulate kl_V3989+                                                                                                                                                                            !appl_39 <- appl_38 `pseq` kl_shen_rcons_form appl_38+                                                                                                                                                                            appl_39 `pseq` applyWrapper appl_2 [appl_39])))+                                                                                                         !appl_40 <- (do kl_V3988 `pseq` (kl_V3989 `pseq` kl_shen_variancy_test kl_V3988 kl_V3989)) `catchError` (\(!kl_E) -> do return (Core.Types.Atom (Core.Types.UnboundSym "shen.skip")))+                                                                                                         appl_40 `pseq` applyWrapper appl_1 [appl_40])))+                                        !appl_41 <- kl_V3988 `pseq` (kl_V3989 `pseq` klCons kl_V3988 kl_V3989)+                                        !appl_42 <- value (Core.Types.Atom (Core.Types.UnboundSym "shen.*signedfuncs*"))+                                        !appl_43 <- appl_41 `pseq` (appl_42 `pseq` klCons appl_41 appl_42)+                                        !appl_44 <- appl_43 `pseq` klSet (Core.Types.Atom (Core.Types.UnboundSym "shen.*signedfuncs*")) appl_43+                                        appl_44 `pseq` applyWrapper appl_0 [appl_44]++kl_shen_demodulate :: Core.Types.KLValue ->+                      Core.Types.KLContext Core.Types.Env Core.Types.KLValue+kl_shen_demodulate (!kl_V3991) = do let !appl_0 = ApplC (Func "lambda" (Context (\(!kl_Demod) -> do !kl_if_1 <- kl_Demod `pseq` (kl_V3991 `pseq` eq kl_Demod kl_V3991)+                                                                                                    case kl_if_1 of+                                                                                                        Atom (B (True)) -> do return kl_V3991+                                                                                                        Atom (B (False)) -> do do kl_Demod `pseq` kl_shen_demodulate kl_Demod+                                                                                                        _ -> throwError "if: expected boolean")))+                                    !appl_2 <- value (Core.Types.Atom (Core.Types.UnboundSym "shen.*demodulation-function*"))+                                    !appl_3 <- appl_2 `pseq` (kl_V3991 `pseq` kl_shen_walk appl_2 kl_V3991)+                                    appl_3 `pseq` applyWrapper appl_0 [appl_3]++kl_shen_variancy_test :: Core.Types.KLValue ->+                         Core.Types.KLValue ->+                         Core.Types.KLContext Core.Types.Env Core.Types.KLValue+kl_shen_variancy_test (!kl_V3994) (!kl_V3995) = do let !appl_0 = ApplC (Func "lambda" (Context (\(!kl_TypeF) -> do let !appl_1 = ApplC (Func "lambda" (Context (\(!kl_Check) -> do return (Core.Types.Atom (Core.Types.UnboundSym "shen.skip")))))+                                                                                                                   !appl_2 <- let pat_cond_3 = do return (Core.Types.Atom (Core.Types.UnboundSym "shen.skip"))+                                                                                                                                  pat_cond_4 = do do !kl_if_5 <- kl_TypeF `pseq` (kl_V3995 `pseq` kl_shen_variantP kl_TypeF kl_V3995)+                                                                                                                                                     case kl_if_5 of+                                                                                                                                                         Atom (B (True)) -> do return (Core.Types.Atom (Core.Types.UnboundSym "shen.skip"))+                                                                                                                                                         Atom (B (False)) -> do do !appl_6 <- kl_V3994 `pseq` kl_shen_app kl_V3994 (Core.Types.Atom (Core.Types.Str " may create errors\n")) (Core.Types.Atom (Core.Types.UnboundSym "shen.a"))+                                                                                                                                                                                   !appl_7 <- appl_6 `pseq` cn (Core.Types.Atom (Core.Types.Str "warning: changing the type of ")) appl_6+                                                                                                                                                                                   !appl_8 <- kl_stoutput+                                                                                                                                                                                   appl_7 `pseq` (appl_8 `pseq` kl_shen_prhush appl_7 appl_8)+                                                                                                                                                         _ -> throwError "if: expected boolean"+                                                                                                                               in case kl_TypeF of+                                                                                                                                      kl_TypeF@(Atom (UnboundSym "symbol")) -> pat_cond_3+                                                                                                                                      kl_TypeF@(ApplC (PL "symbol"+                                                                                                                                                          _)) -> pat_cond_3+                                                                                                                                      kl_TypeF@(ApplC (Func "symbol"+                                                                                                                                                            _)) -> pat_cond_3+                                                                                                                                      _ -> pat_cond_4+                                                                                                                   appl_2 `pseq` applyWrapper appl_1 [appl_2])))+                                                   let !aw_9 = Core.Types.Atom (Core.Types.UnboundSym "shen.typecheck")+                                                   !appl_10 <- kl_V3994 `pseq` applyWrapper aw_9 [kl_V3994,+                                                                                                  Core.Types.Atom (Core.Types.UnboundSym "B")]+                                                   appl_10 `pseq` applyWrapper appl_0 [appl_10]++kl_shen_variantP :: Core.Types.KLValue ->+                    Core.Types.KLValue ->+                    Core.Types.KLContext Core.Types.Env Core.Types.KLValue+kl_shen_variantP (!kl_V4008) (!kl_V4009) = do !kl_if_0 <- kl_V4009 `pseq` (kl_V4008 `pseq` eq kl_V4009 kl_V4008)+                                              case kl_if_0 of+                                                  Atom (B (True)) -> do return (Atom (B True))+                                                  Atom (B (False)) -> do !kl_if_1 <- let pat_cond_2 kl_V4008 kl_V4008h kl_V4008t = do let pat_cond_3 kl_V4009 kl_V4009h kl_V4009t = do return (Atom (B True))+                                                                                                                                          pat_cond_4 = do do return (Atom (B False))+                                                                                                                                       in case kl_V4009 of+                                                                                                                                              !(kl_V4009@(Cons (!kl_V4009h)+                                                                                                                                                               (!kl_V4009t))) | eqCore kl_V4009h kl_V4008h -> pat_cond_3 kl_V4009 kl_V4009h kl_V4009t+                                                                                                                                              _ -> pat_cond_4+                                                                                         pat_cond_5 = do do return (Atom (B False))+                                                                                      in case kl_V4008 of+                                                                                             !(kl_V4008@(Cons (!kl_V4008h)+                                                                                                              (!kl_V4008t))) -> pat_cond_2 kl_V4008 kl_V4008h kl_V4008t+                                                                                             _ -> pat_cond_5+                                                                         case kl_if_1 of+                                                                             Atom (B (True)) -> do !appl_6 <- kl_V4008 `pseq` tl kl_V4008+                                                                                                   !appl_7 <- kl_V4009 `pseq` tl kl_V4009+                                                                                                   appl_6 `pseq` (appl_7 `pseq` kl_shen_variantP appl_6 appl_7)+                                                                             Atom (B (False)) -> do !kl_if_8 <- let pat_cond_9 kl_V4008 kl_V4008h kl_V4008t = do !kl_if_10 <- let pat_cond_11 kl_V4009 kl_V4009h kl_V4009t = do !kl_if_12 <- kl_V4008h `pseq` kl_shen_pvarP kl_V4008h+                                                                                                                                                                                                                                !kl_if_13 <- case kl_if_12 of+                                                                                                                                                                                                                                                 Atom (B (True)) -> do !kl_if_14 <- kl_V4009h `pseq` kl_variableP kl_V4009h+                                                                                                                                                                                                                                                                       case kl_if_14 of+                                                                                                                                                                                                                                                                           Atom (B (True)) -> do return (Atom (B True))+                                                                                                                                                                                                                                                                           Atom (B (False)) -> do do return (Atom (B False))+                                                                                                                                                                                                                                                                           _ -> throwError "if: expected boolean"+                                                                                                                                                                                                                                                 Atom (B (False)) -> do do return (Atom (B False))+                                                                                                                                                                                                                                                 _ -> throwError "if: expected boolean"+                                                                                                                                                                                                                                case kl_if_13 of+                                                                                                                                                                                                                                    Atom (B (True)) -> do return (Atom (B True))+                                                                                                                                                                                                                                    Atom (B (False)) -> do do return (Atom (B False))+                                                                                                                                                                                                                                    _ -> throwError "if: expected boolean"+                                                                                                                                                                                  pat_cond_15 = do do return (Atom (B False))+                                                                                                                                                                               in case kl_V4009 of+                                                                                                                                                                                      !(kl_V4009@(Cons (!kl_V4009h)+                                                                                                                                                                                                       (!kl_V4009t))) -> pat_cond_11 kl_V4009 kl_V4009h kl_V4009t+                                                                                                                                                                                      _ -> pat_cond_15+                                                                                                                                                                 case kl_if_10 of+                                                                                                                                                                     Atom (B (True)) -> do return (Atom (B True))+                                                                                                                                                                     Atom (B (False)) -> do do return (Atom (B False))+                                                                                                                                                                     _ -> throwError "if: expected boolean"+                                                                                                                    pat_cond_16 = do do return (Atom (B False))+                                                                                                                 in case kl_V4008 of+                                                                                                                        !(kl_V4008@(Cons (!kl_V4008h)+                                                                                                                                         (!kl_V4008t))) -> pat_cond_9 kl_V4008 kl_V4008h kl_V4008t+                                                                                                                        _ -> pat_cond_16+                                                                                                    case kl_if_8 of+                                                                                                        Atom (B (True)) -> do !appl_17 <- kl_V4008 `pseq` hd kl_V4008+                                                                                                                              !appl_18 <- kl_V4008 `pseq` tl kl_V4008+                                                                                                                              !appl_19 <- appl_17 `pseq` (appl_18 `pseq` kl_subst (Core.Types.Atom (Core.Types.UnboundSym "shen.a")) appl_17 appl_18)+                                                                                                                              !appl_20 <- kl_V4009 `pseq` hd kl_V4009+                                                                                                                              !appl_21 <- kl_V4009 `pseq` tl kl_V4009+                                                                                                                              !appl_22 <- appl_20 `pseq` (appl_21 `pseq` kl_subst (Core.Types.Atom (Core.Types.UnboundSym "shen.a")) appl_20 appl_21)+                                                                                                                              appl_19 `pseq` (appl_22 `pseq` kl_shen_variantP appl_19 appl_22)+                                                                                                        Atom (B (False)) -> do !kl_if_23 <- let pat_cond_24 kl_V4008 kl_V4008h kl_V4008t = do !kl_if_25 <- let pat_cond_26 kl_V4008h kl_V4008hh kl_V4008ht = do let pat_cond_27 kl_V4009 kl_V4009h kl_V4009hh kl_V4009ht kl_V4009t = do return (Atom (B True))+                                                                                                                                                                                                                                                                    pat_cond_28 = do do return (Atom (B False))+                                                                                                                                                                                                                                                                 in case kl_V4009 of+                                                                                                                                                                                                                                                                        !(kl_V4009@(Cons (!(kl_V4009h@(Cons (!kl_V4009hh)+                                                                                                                                                                                                                                                                                                            (!kl_V4009ht))))+                                                                                                                                                                                                                                                                                         (!kl_V4009t))) -> pat_cond_27 kl_V4009 kl_V4009h kl_V4009hh kl_V4009ht kl_V4009t+                                                                                                                                                                                                                                                                        _ -> pat_cond_28+                                                                                                                                                                                                               pat_cond_29 = do do return (Atom (B False))+                                                                                                                                                                                                            in case kl_V4008h of+                                                                                                                                                                                                                   !(kl_V4008h@(Cons (!kl_V4008hh)+                                                                                                                                                                                                                                     (!kl_V4008ht))) -> pat_cond_26 kl_V4008h kl_V4008hh kl_V4008ht+                                                                                                                                                                                                                   _ -> pat_cond_29+                                                                                                                                                                                              case kl_if_25 of+                                                                                                                                                                                                  Atom (B (True)) -> do return (Atom (B True))+                                                                                                                                                                                                  Atom (B (False)) -> do do return (Atom (B False))+                                                                                                                                                                                                  _ -> throwError "if: expected boolean"+                                                                                                                                                pat_cond_30 = do do return (Atom (B False))+                                                                                                                                             in case kl_V4008 of+                                                                                                                                                    !(kl_V4008@(Cons (!kl_V4008h)+                                                                                                                                                                     (!kl_V4008t))) -> pat_cond_24 kl_V4008 kl_V4008h kl_V4008t+                                                                                                                                                    _ -> pat_cond_30+                                                                                                                               case kl_if_23 of+                                                                                                                                   Atom (B (True)) -> do !appl_31 <- kl_V4008 `pseq` hd kl_V4008+                                                                                                                                                         !appl_32 <- kl_V4008 `pseq` tl kl_V4008+                                                                                                                                                         !appl_33 <- appl_31 `pseq` (appl_32 `pseq` kl_append appl_31 appl_32)+                                                                                                                                                         !appl_34 <- kl_V4009 `pseq` hd kl_V4009+                                                                                                                                                         !appl_35 <- kl_V4009 `pseq` tl kl_V4009+                                                                                                                                                         !appl_36 <- appl_34 `pseq` (appl_35 `pseq` kl_append appl_34 appl_35)+                                                                                                                                                         appl_33 `pseq` (appl_36 `pseq` kl_shen_variantP appl_33 appl_36)+                                                                                                                                   Atom (B (False)) -> do do return (Atom (B False))+                                                                                                                                   _ -> throwError "if: expected boolean"+                                                                                                        _ -> throwError "if: expected boolean"+                                                                             _ -> throwError "if: expected boolean"+                                                  _ -> throwError "if: expected boolean"++expr12 :: Core.Types.KLContext Core.Types.Env Core.Types.KLValue+expr12 = do (do return (Core.Types.Atom (Core.Types.Str "Copyright (c) 2015, Mark Tarver\n\nAll rights reserved.\n\nRedistribution and use in source and binary forms, with or without\nmodification, are permitted provided that the following conditions are met:\n1. Redistributions of source code must retain the above copyright\n   notice, this list of conditions and the following disclaimer.\n2. Redistributions in binary form must reproduce the above copyright\n   notice, this list of conditions and the following disclaimer in the\n   documentation and/or other materials provided with the distribution.\n3. The name of Mark Tarver may not be used to endorse or promote products\n   derived from this software without specific prior written permission.\n\nTHIS SOFTWARE IS PROVIDED BY Mark Tarver ''AS IS'' AND ANY\nEXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED\nWARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE\nDISCLAIMED. IN NO EVENT SHALL Mark Tarver BE LIABLE FOR ANY\nDIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES\n(INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;\nLOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND\nON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT\n(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS\nSOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE."))) `catchError` (\(!kl_E) -> do return (Core.Types.Atom (Core.Types.Str "E")))+            (do let !appl_0 = Atom Nil+                !appl_1 <- appl_0 `pseq` klCons (Core.Types.Atom (Core.Types.UnboundSym "boolean")) appl_0+                !appl_2 <- appl_1 `pseq` klCons (Core.Types.Atom (Core.Types.UnboundSym "-->")) appl_1+                !appl_3 <- appl_2 `pseq` klCons (Core.Types.Atom (Core.Types.UnboundSym "A")) appl_2+                appl_3 `pseq` kl_declare (ApplC (wrapNamed "absvector?" absvectorP)) appl_3) `catchError` (\(!kl_E) -> do return (Core.Types.Atom (Core.Types.Str "E")))+            (do let !appl_4 = Atom Nil+                !appl_5 <- appl_4 `pseq` klCons (Core.Types.Atom (Core.Types.UnboundSym "A")) appl_4+                !appl_6 <- appl_5 `pseq` klCons (Core.Types.Atom (Core.Types.UnboundSym "list")) appl_5+                let !appl_7 = Atom Nil+                !appl_8 <- appl_7 `pseq` klCons (Core.Types.Atom (Core.Types.UnboundSym "A")) appl_7+                !appl_9 <- appl_8 `pseq` klCons (Core.Types.Atom (Core.Types.UnboundSym "list")) appl_8+                let !appl_10 = Atom Nil+                !appl_11 <- appl_9 `pseq` (appl_10 `pseq` klCons appl_9 appl_10)+                !appl_12 <- appl_11 `pseq` klCons (Core.Types.Atom (Core.Types.UnboundSym "-->")) appl_11+                !appl_13 <- appl_6 `pseq` (appl_12 `pseq` klCons appl_6 appl_12)+                let !appl_14 = Atom Nil+                !appl_15 <- appl_13 `pseq` (appl_14 `pseq` klCons appl_13 appl_14)+                !appl_16 <- appl_15 `pseq` klCons (Core.Types.Atom (Core.Types.UnboundSym "-->")) appl_15+                !appl_17 <- appl_16 `pseq` klCons (Core.Types.Atom (Core.Types.UnboundSym "A")) appl_16+                appl_17 `pseq` kl_declare (ApplC (wrapNamed "adjoin" kl_adjoin)) appl_17) `catchError` (\(!kl_E) -> do return (Core.Types.Atom (Core.Types.Str "E")))+            (do let !appl_18 = Atom Nil+                !appl_19 <- appl_18 `pseq` klCons (Core.Types.Atom (Core.Types.UnboundSym "boolean")) appl_18+                !appl_20 <- appl_19 `pseq` klCons (Core.Types.Atom (Core.Types.UnboundSym "-->")) appl_19+                !appl_21 <- appl_20 `pseq` klCons (Core.Types.Atom (Core.Types.UnboundSym "boolean")) appl_20+                let !appl_22 = Atom Nil+                !appl_23 <- appl_21 `pseq` (appl_22 `pseq` klCons appl_21 appl_22)+                !appl_24 <- appl_23 `pseq` klCons (Core.Types.Atom (Core.Types.UnboundSym "-->")) appl_23+                !appl_25 <- appl_24 `pseq` klCons (Core.Types.Atom (Core.Types.UnboundSym "boolean")) appl_24+                appl_25 `pseq` kl_declare (Core.Types.Atom (Core.Types.UnboundSym "and")) appl_25) `catchError` (\(!kl_E) -> do return (Core.Types.Atom (Core.Types.Str "E")))+            (do let !appl_26 = Atom Nil+                !appl_27 <- appl_26 `pseq` klCons (Core.Types.Atom (Core.Types.UnboundSym "string")) appl_26+                !appl_28 <- appl_27 `pseq` klCons (Core.Types.Atom (Core.Types.UnboundSym "-->")) appl_27+                !appl_29 <- appl_28 `pseq` klCons (Core.Types.Atom (Core.Types.UnboundSym "symbol")) appl_28+                let !appl_30 = Atom Nil+                !appl_31 <- appl_29 `pseq` (appl_30 `pseq` klCons appl_29 appl_30)+                !appl_32 <- appl_31 `pseq` klCons (Core.Types.Atom (Core.Types.UnboundSym "-->")) appl_31+                !appl_33 <- appl_32 `pseq` klCons (Core.Types.Atom (Core.Types.UnboundSym "string")) appl_32+                let !appl_34 = Atom Nil+                !appl_35 <- appl_33 `pseq` (appl_34 `pseq` klCons appl_33 appl_34)+                !appl_36 <- appl_35 `pseq` klCons (Core.Types.Atom (Core.Types.UnboundSym "-->")) appl_35+                !appl_37 <- appl_36 `pseq` klCons (Core.Types.Atom (Core.Types.UnboundSym "A")) appl_36+                appl_37 `pseq` kl_declare (ApplC (wrapNamed "shen.app" kl_shen_app)) appl_37) `catchError` (\(!kl_E) -> do return (Core.Types.Atom (Core.Types.Str "E")))+            (do let !appl_38 = Atom Nil+                !appl_39 <- appl_38 `pseq` klCons (Core.Types.Atom (Core.Types.UnboundSym "A")) appl_38+                !appl_40 <- appl_39 `pseq` klCons (Core.Types.Atom (Core.Types.UnboundSym "list")) appl_39+                let !appl_41 = Atom Nil+                !appl_42 <- appl_41 `pseq` klCons (Core.Types.Atom (Core.Types.UnboundSym "A")) appl_41+                !appl_43 <- appl_42 `pseq` klCons (Core.Types.Atom (Core.Types.UnboundSym "list")) appl_42+                let !appl_44 = Atom Nil+                !appl_45 <- appl_44 `pseq` klCons (Core.Types.Atom (Core.Types.UnboundSym "A")) appl_44+                !appl_46 <- appl_45 `pseq` klCons (Core.Types.Atom (Core.Types.UnboundSym "list")) appl_45+                let !appl_47 = Atom Nil+                !appl_48 <- appl_46 `pseq` (appl_47 `pseq` klCons appl_46 appl_47)+                !appl_49 <- appl_48 `pseq` klCons (Core.Types.Atom (Core.Types.UnboundSym "-->")) appl_48+                !appl_50 <- appl_43 `pseq` (appl_49 `pseq` klCons appl_43 appl_49)+                let !appl_51 = Atom Nil+                !appl_52 <- appl_50 `pseq` (appl_51 `pseq` klCons appl_50 appl_51)+                !appl_53 <- appl_52 `pseq` klCons (Core.Types.Atom (Core.Types.UnboundSym "-->")) appl_52+                !appl_54 <- appl_40 `pseq` (appl_53 `pseq` klCons appl_40 appl_53)+                appl_54 `pseq` kl_declare (ApplC (wrapNamed "append" kl_append)) appl_54) `catchError` (\(!kl_E) -> do return (Core.Types.Atom (Core.Types.Str "E")))+            (do let !appl_55 = Atom Nil+                !appl_56 <- appl_55 `pseq` klCons (Core.Types.Atom (Core.Types.UnboundSym "number")) appl_55+                !appl_57 <- appl_56 `pseq` klCons (Core.Types.Atom (Core.Types.UnboundSym "-->")) appl_56+                !appl_58 <- appl_57 `pseq` klCons (Core.Types.Atom (Core.Types.UnboundSym "A")) appl_57+                appl_58 `pseq` kl_declare (ApplC (wrapNamed "arity" kl_arity)) appl_58) `catchError` (\(!kl_E) -> do return (Core.Types.Atom (Core.Types.Str "E")))+            (do let !appl_59 = Atom Nil+                !appl_60 <- appl_59 `pseq` klCons (Core.Types.Atom (Core.Types.UnboundSym "A")) appl_59+                !appl_61 <- appl_60 `pseq` klCons (Core.Types.Atom (Core.Types.UnboundSym "list")) appl_60+                let !appl_62 = Atom Nil+                !appl_63 <- appl_61 `pseq` (appl_62 `pseq` klCons appl_61 appl_62)+                !appl_64 <- appl_63 `pseq` klCons (Core.Types.Atom (Core.Types.UnboundSym "list")) appl_63+                let !appl_65 = Atom Nil+                !appl_66 <- appl_65 `pseq` klCons (Core.Types.Atom (Core.Types.UnboundSym "A")) appl_65+                !appl_67 <- appl_66 `pseq` klCons (Core.Types.Atom (Core.Types.UnboundSym "list")) appl_66+                let !appl_68 = Atom Nil+                !appl_69 <- appl_67 `pseq` (appl_68 `pseq` klCons appl_67 appl_68)+                !appl_70 <- appl_69 `pseq` klCons (Core.Types.Atom (Core.Types.UnboundSym "-->")) appl_69+                !appl_71 <- appl_64 `pseq` (appl_70 `pseq` klCons appl_64 appl_70)+                let !appl_72 = Atom Nil+                !appl_73 <- appl_71 `pseq` (appl_72 `pseq` klCons appl_71 appl_72)+                !appl_74 <- appl_73 `pseq` klCons (Core.Types.Atom (Core.Types.UnboundSym "-->")) appl_73+                !appl_75 <- appl_74 `pseq` klCons (Core.Types.Atom (Core.Types.UnboundSym "A")) appl_74+                appl_75 `pseq` kl_declare (ApplC (wrapNamed "assoc" kl_assoc)) appl_75) `catchError` (\(!kl_E) -> do return (Core.Types.Atom (Core.Types.Str "E")))+            (do let !appl_76 = Atom Nil+                !appl_77 <- appl_76 `pseq` klCons (Core.Types.Atom (Core.Types.UnboundSym "boolean")) appl_76+                !appl_78 <- appl_77 `pseq` klCons (Core.Types.Atom (Core.Types.UnboundSym "-->")) appl_77+                !appl_79 <- appl_78 `pseq` klCons (Core.Types.Atom (Core.Types.UnboundSym "A")) appl_78+                appl_79 `pseq` kl_declare (ApplC (wrapNamed "boolean?" kl_booleanP)) appl_79) `catchError` (\(!kl_E) -> do return (Core.Types.Atom (Core.Types.Str "E")))+            (do let !appl_80 = Atom Nil+                !appl_81 <- appl_80 `pseq` klCons (Core.Types.Atom (Core.Types.UnboundSym "boolean")) appl_80+                !appl_82 <- appl_81 `pseq` klCons (Core.Types.Atom (Core.Types.UnboundSym "-->")) appl_81+                !appl_83 <- appl_82 `pseq` klCons (Core.Types.Atom (Core.Types.UnboundSym "symbol")) appl_82+                appl_83 `pseq` kl_declare (ApplC (wrapNamed "bound?" kl_boundP)) appl_83) `catchError` (\(!kl_E) -> do return (Core.Types.Atom (Core.Types.Str "E")))+            (do let !appl_84 = Atom Nil+                !appl_85 <- appl_84 `pseq` klCons (Core.Types.Atom (Core.Types.UnboundSym "string")) appl_84+                !appl_86 <- appl_85 `pseq` klCons (Core.Types.Atom (Core.Types.UnboundSym "-->")) appl_85+                !appl_87 <- appl_86 `pseq` klCons (Core.Types.Atom (Core.Types.UnboundSym "string")) appl_86+                appl_87 `pseq` kl_declare (ApplC (wrapNamed "cd" kl_cd)) appl_87) `catchError` (\(!kl_E) -> do return (Core.Types.Atom (Core.Types.Str "E")))+            (do let !appl_88 = Atom Nil+                !appl_89 <- appl_88 `pseq` klCons (Core.Types.Atom (Core.Types.UnboundSym "A")) appl_88+                !appl_90 <- appl_89 `pseq` klCons (Core.Types.Atom (Core.Types.UnboundSym "stream")) appl_89+                let !appl_91 = Atom Nil+                !appl_92 <- appl_91 `pseq` klCons (Core.Types.Atom (Core.Types.UnboundSym "B")) appl_91+                !appl_93 <- appl_92 `pseq` klCons (Core.Types.Atom (Core.Types.UnboundSym "list")) appl_92+                let !appl_94 = Atom Nil+                !appl_95 <- appl_93 `pseq` (appl_94 `pseq` klCons appl_93 appl_94)+                !appl_96 <- appl_95 `pseq` klCons (Core.Types.Atom (Core.Types.UnboundSym "-->")) appl_95+                !appl_97 <- appl_90 `pseq` (appl_96 `pseq` klCons appl_90 appl_96)+                appl_97 `pseq` kl_declare (ApplC (wrapNamed "close" closeStream)) appl_97) `catchError` (\(!kl_E) -> do return (Core.Types.Atom (Core.Types.Str "E")))+            (do let !appl_98 = Atom Nil+                !appl_99 <- appl_98 `pseq` klCons (Core.Types.Atom (Core.Types.UnboundSym "string")) appl_98+                !appl_100 <- appl_99 `pseq` klCons (Core.Types.Atom (Core.Types.UnboundSym "-->")) appl_99+                !appl_101 <- appl_100 `pseq` klCons (Core.Types.Atom (Core.Types.UnboundSym "string")) appl_100+                let !appl_102 = Atom Nil+                !appl_103 <- appl_101 `pseq` (appl_102 `pseq` klCons appl_101 appl_102)+                !appl_104 <- appl_103 `pseq` klCons (Core.Types.Atom (Core.Types.UnboundSym "-->")) appl_103+                !appl_105 <- appl_104 `pseq` klCons (Core.Types.Atom (Core.Types.UnboundSym "string")) appl_104+                appl_105 `pseq` kl_declare (ApplC (wrapNamed "cn" cn)) appl_105) `catchError` (\(!kl_E) -> do return (Core.Types.Atom (Core.Types.Str "E")))+            (do let !appl_106 = Atom Nil+                !appl_107 <- appl_106 `pseq` klCons (Core.Types.Atom (Core.Types.UnboundSym "B")) appl_106+                !appl_108 <- appl_107 `pseq` klCons (Core.Types.Atom (Core.Types.UnboundSym "shen.==>")) appl_107+                !appl_109 <- appl_108 `pseq` klCons (Core.Types.Atom (Core.Types.UnboundSym "A")) appl_108+                let !appl_110 = Atom Nil+                !appl_111 <- appl_110 `pseq` klCons (Core.Types.Atom (Core.Types.UnboundSym "B")) appl_110+                !appl_112 <- appl_111 `pseq` klCons (Core.Types.Atom (Core.Types.UnboundSym "-->")) appl_111+                !appl_113 <- appl_112 `pseq` klCons (Core.Types.Atom (Core.Types.UnboundSym "A")) appl_112+                let !appl_114 = Atom Nil+                !appl_115 <- appl_114 `pseq` klCons (Core.Types.Atom (Core.Types.UnboundSym "B")) appl_114+                !appl_116 <- appl_115 `pseq` klCons (Core.Types.Atom (Core.Types.UnboundSym "-->")) appl_115+                !appl_117 <- appl_113 `pseq` (appl_116 `pseq` klCons appl_113 appl_116)+                let !appl_118 = Atom Nil+                !appl_119 <- appl_117 `pseq` (appl_118 `pseq` klCons appl_117 appl_118)+                !appl_120 <- appl_119 `pseq` klCons (Core.Types.Atom (Core.Types.UnboundSym "-->")) appl_119+                !appl_121 <- appl_120 `pseq` klCons (Core.Types.Atom (Core.Types.UnboundSym "A")) appl_120+                let !appl_122 = Atom Nil+                !appl_123 <- appl_121 `pseq` (appl_122 `pseq` klCons appl_121 appl_122)+                !appl_124 <- appl_123 `pseq` klCons (Core.Types.Atom (Core.Types.UnboundSym "-->")) appl_123+                !appl_125 <- appl_109 `pseq` (appl_124 `pseq` klCons appl_109 appl_124)+                appl_125 `pseq` kl_declare (ApplC (wrapNamed "compile" kl_compile)) appl_125) `catchError` (\(!kl_E) -> do return (Core.Types.Atom (Core.Types.Str "E")))+            (do let !appl_126 = Atom Nil+                !appl_127 <- appl_126 `pseq` klCons (Core.Types.Atom (Core.Types.UnboundSym "boolean")) appl_126+                !appl_128 <- appl_127 `pseq` klCons (Core.Types.Atom (Core.Types.UnboundSym "-->")) appl_127+                !appl_129 <- appl_128 `pseq` klCons (Core.Types.Atom (Core.Types.UnboundSym "A")) appl_128+                appl_129 `pseq` kl_declare (ApplC (wrapNamed "cons?" consP)) appl_129) `catchError` (\(!kl_E) -> do return (Core.Types.Atom (Core.Types.Str "E")))+            (do let !appl_130 = Atom Nil+                !appl_131 <- appl_130 `pseq` klCons (Core.Types.Atom (Core.Types.UnboundSym "B")) appl_130+                !appl_132 <- appl_131 `pseq` klCons (Core.Types.Atom (Core.Types.UnboundSym "-->")) appl_131+                !appl_133 <- appl_132 `pseq` klCons (Core.Types.Atom (Core.Types.UnboundSym "A")) appl_132+                let !appl_134 = Atom Nil+                !appl_135 <- appl_134 `pseq` klCons (Core.Types.Atom (Core.Types.UnboundSym "symbol")) appl_134+                !appl_136 <- appl_135 `pseq` klCons (Core.Types.Atom (Core.Types.UnboundSym "-->")) appl_135+                !appl_137 <- appl_133 `pseq` (appl_136 `pseq` klCons appl_133 appl_136)+                appl_137 `pseq` kl_declare (ApplC (wrapNamed "destroy" kl_destroy)) appl_137) `catchError` (\(!kl_E) -> do return (Core.Types.Atom (Core.Types.Str "E")))+            (do let !appl_138 = Atom Nil+                !appl_139 <- appl_138 `pseq` klCons (Core.Types.Atom (Core.Types.UnboundSym "A")) appl_138+                !appl_140 <- appl_139 `pseq` klCons (Core.Types.Atom (Core.Types.UnboundSym "list")) appl_139+                let !appl_141 = Atom Nil+                !appl_142 <- appl_141 `pseq` klCons (Core.Types.Atom (Core.Types.UnboundSym "A")) appl_141+                !appl_143 <- appl_142 `pseq` klCons (Core.Types.Atom (Core.Types.UnboundSym "list")) appl_142+                let !appl_144 = Atom Nil+                !appl_145 <- appl_144 `pseq` klCons (Core.Types.Atom (Core.Types.UnboundSym "A")) appl_144+                !appl_146 <- appl_145 `pseq` klCons (Core.Types.Atom (Core.Types.UnboundSym "list")) appl_145+                let !appl_147 = Atom Nil+                !appl_148 <- appl_146 `pseq` (appl_147 `pseq` klCons appl_146 appl_147)+                !appl_149 <- appl_148 `pseq` klCons (Core.Types.Atom (Core.Types.UnboundSym "-->")) appl_148+                !appl_150 <- appl_143 `pseq` (appl_149 `pseq` klCons appl_143 appl_149)+                let !appl_151 = Atom Nil+                !appl_152 <- appl_150 `pseq` (appl_151 `pseq` klCons appl_150 appl_151)+                !appl_153 <- appl_152 `pseq` klCons (Core.Types.Atom (Core.Types.UnboundSym "-->")) appl_152+                !appl_154 <- appl_140 `pseq` (appl_153 `pseq` klCons appl_140 appl_153)+                appl_154 `pseq` kl_declare (ApplC (wrapNamed "difference" kl_difference)) appl_154) `catchError` (\(!kl_E) -> do return (Core.Types.Atom (Core.Types.Str "E")))+            (do let !appl_155 = Atom Nil+                !appl_156 <- appl_155 `pseq` klCons (Core.Types.Atom (Core.Types.UnboundSym "B")) appl_155+                !appl_157 <- appl_156 `pseq` klCons (Core.Types.Atom (Core.Types.UnboundSym "-->")) appl_156+                !appl_158 <- appl_157 `pseq` klCons (Core.Types.Atom (Core.Types.UnboundSym "B")) appl_157+                let !appl_159 = Atom Nil+                !appl_160 <- appl_158 `pseq` (appl_159 `pseq` klCons appl_158 appl_159)+                !appl_161 <- appl_160 `pseq` klCons (Core.Types.Atom (Core.Types.UnboundSym "-->")) appl_160+                !appl_162 <- appl_161 `pseq` klCons (Core.Types.Atom (Core.Types.UnboundSym "A")) appl_161+                appl_162 `pseq` kl_declare (ApplC (wrapNamed "do" kl_do)) appl_162) `catchError` (\(!kl_E) -> do return (Core.Types.Atom (Core.Types.Str "E")))+            (do let !appl_163 = Atom Nil+                !appl_164 <- appl_163 `pseq` klCons (Core.Types.Atom (Core.Types.UnboundSym "A")) appl_163+                !appl_165 <- appl_164 `pseq` klCons (Core.Types.Atom (Core.Types.UnboundSym "list")) appl_164+                let !appl_166 = Atom Nil+                !appl_167 <- appl_166 `pseq` klCons (Core.Types.Atom (Core.Types.UnboundSym "B")) appl_166+                !appl_168 <- appl_167 `pseq` klCons (Core.Types.Atom (Core.Types.UnboundSym "list")) appl_167+                let !appl_169 = Atom Nil+                !appl_170 <- appl_168 `pseq` (appl_169 `pseq` klCons appl_168 appl_169)+                !appl_171 <- appl_170 `pseq` klCons (Core.Types.Atom (Core.Types.UnboundSym "shen.==>")) appl_170+                !appl_172 <- appl_165 `pseq` (appl_171 `pseq` klCons appl_165 appl_171)+                appl_172 `pseq` kl_declare (ApplC (wrapNamed "<e>" kl_LBeRB)) appl_172) `catchError` (\(!kl_E) -> do return (Core.Types.Atom (Core.Types.Str "E")))+            (do let !appl_173 = Atom Nil+                !appl_174 <- appl_173 `pseq` klCons (Core.Types.Atom (Core.Types.UnboundSym "A")) appl_173+                !appl_175 <- appl_174 `pseq` klCons (Core.Types.Atom (Core.Types.UnboundSym "list")) appl_174+                let !appl_176 = Atom Nil+                !appl_177 <- appl_176 `pseq` klCons (Core.Types.Atom (Core.Types.UnboundSym "A")) appl_176+                !appl_178 <- appl_177 `pseq` klCons (Core.Types.Atom (Core.Types.UnboundSym "list")) appl_177+                let !appl_179 = Atom Nil+                !appl_180 <- appl_178 `pseq` (appl_179 `pseq` klCons appl_178 appl_179)+                !appl_181 <- appl_180 `pseq` klCons (Core.Types.Atom (Core.Types.UnboundSym "shen.==>")) appl_180+                !appl_182 <- appl_175 `pseq` (appl_181 `pseq` klCons appl_175 appl_181)+                appl_182 `pseq` kl_declare (ApplC (wrapNamed "<!>" kl_LBExclRB)) appl_182) `catchError` (\(!kl_E) -> do return (Core.Types.Atom (Core.Types.Str "E")))+            (do let !appl_183 = Atom Nil+                !appl_184 <- appl_183 `pseq` klCons (Core.Types.Atom (Core.Types.UnboundSym "A")) appl_183+                !appl_185 <- appl_184 `pseq` klCons (Core.Types.Atom (Core.Types.UnboundSym "list")) appl_184+                let !appl_186 = Atom Nil+                !appl_187 <- appl_186 `pseq` klCons (Core.Types.Atom (Core.Types.UnboundSym "boolean")) appl_186+                !appl_188 <- appl_187 `pseq` klCons (Core.Types.Atom (Core.Types.UnboundSym "-->")) appl_187+                !appl_189 <- appl_185 `pseq` (appl_188 `pseq` klCons appl_185 appl_188)+                let !appl_190 = Atom Nil+                !appl_191 <- appl_189 `pseq` (appl_190 `pseq` klCons appl_189 appl_190)+                !appl_192 <- appl_191 `pseq` klCons (Core.Types.Atom (Core.Types.UnboundSym "-->")) appl_191+                !appl_193 <- appl_192 `pseq` klCons (Core.Types.Atom (Core.Types.UnboundSym "A")) appl_192+                appl_193 `pseq` kl_declare (ApplC (wrapNamed "element?" kl_elementP)) appl_193) `catchError` (\(!kl_E) -> do return (Core.Types.Atom (Core.Types.Str "E")))+            (do let !appl_194 = Atom Nil+                !appl_195 <- appl_194 `pseq` klCons (Core.Types.Atom (Core.Types.UnboundSym "boolean")) appl_194+                !appl_196 <- appl_195 `pseq` klCons (Core.Types.Atom (Core.Types.UnboundSym "-->")) appl_195+                !appl_197 <- appl_196 `pseq` klCons (Core.Types.Atom (Core.Types.UnboundSym "A")) appl_196+                appl_197 `pseq` kl_declare (ApplC (wrapNamed "empty?" kl_emptyP)) appl_197) `catchError` (\(!kl_E) -> do return (Core.Types.Atom (Core.Types.Str "E")))+            (do let !appl_198 = Atom Nil+                !appl_199 <- appl_198 `pseq` klCons (Core.Types.Atom (Core.Types.UnboundSym "boolean")) appl_198+                !appl_200 <- appl_199 `pseq` klCons (Core.Types.Atom (Core.Types.UnboundSym "-->")) appl_199+                !appl_201 <- appl_200 `pseq` klCons (Core.Types.Atom (Core.Types.UnboundSym "symbol")) appl_200+                appl_201 `pseq` kl_declare (Core.Types.Atom (Core.Types.UnboundSym "enable-type-theory")) appl_201) `catchError` (\(!kl_E) -> do return (Core.Types.Atom (Core.Types.Str "E")))+            (do let !appl_202 = Atom Nil+                !appl_203 <- appl_202 `pseq` klCons (Core.Types.Atom (Core.Types.UnboundSym "symbol")) appl_202+                !appl_204 <- appl_203 `pseq` klCons (Core.Types.Atom (Core.Types.UnboundSym "list")) appl_203+                let !appl_205 = Atom Nil+                !appl_206 <- appl_204 `pseq` (appl_205 `pseq` klCons appl_204 appl_205)+                !appl_207 <- appl_206 `pseq` klCons (Core.Types.Atom (Core.Types.UnboundSym "-->")) appl_206+                !appl_208 <- appl_207 `pseq` klCons (Core.Types.Atom (Core.Types.UnboundSym "symbol")) appl_207+                appl_208 `pseq` kl_declare (ApplC (wrapNamed "external" kl_external)) appl_208) `catchError` (\(!kl_E) -> do return (Core.Types.Atom (Core.Types.Str "E")))+            (do let !appl_209 = Atom Nil+                !appl_210 <- appl_209 `pseq` klCons (Core.Types.Atom (Core.Types.UnboundSym "string")) appl_209+                !appl_211 <- appl_210 `pseq` klCons (Core.Types.Atom (Core.Types.UnboundSym "-->")) appl_210+                !appl_212 <- appl_211 `pseq` klCons (Core.Types.Atom (Core.Types.UnboundSym "exception")) appl_211+                appl_212 `pseq` kl_declare (ApplC (wrapNamed "error-to-string" errorToString)) appl_212) `catchError` (\(!kl_E) -> do return (Core.Types.Atom (Core.Types.Str "E")))+            (do let !appl_213 = Atom Nil+                !appl_214 <- appl_213 `pseq` klCons (Core.Types.Atom (Core.Types.UnboundSym "string")) appl_213+                !appl_215 <- appl_214 `pseq` klCons (Core.Types.Atom (Core.Types.UnboundSym "list")) appl_214+                let !appl_216 = Atom Nil+                !appl_217 <- appl_215 `pseq` (appl_216 `pseq` klCons appl_215 appl_216)+                !appl_218 <- appl_217 `pseq` klCons (Core.Types.Atom (Core.Types.UnboundSym "-->")) appl_217+                !appl_219 <- appl_218 `pseq` klCons (Core.Types.Atom (Core.Types.UnboundSym "A")) appl_218+                appl_219 `pseq` kl_declare (ApplC (wrapNamed "explode" kl_explode)) appl_219) `catchError` (\(!kl_E) -> do return (Core.Types.Atom (Core.Types.Str "E")))+            (do let !appl_220 = Atom Nil+                !appl_221 <- appl_220 `pseq` klCons (Core.Types.Atom (Core.Types.UnboundSym "symbol")) appl_220+                !appl_222 <- appl_221 `pseq` klCons (Core.Types.Atom (Core.Types.UnboundSym "-->")) appl_221+                appl_222 `pseq` kl_declare (ApplC (PL "fail" kl_fail)) appl_222) `catchError` (\(!kl_E) -> do return (Core.Types.Atom (Core.Types.Str "E")))+            (do let !appl_223 = Atom Nil+                !appl_224 <- appl_223 `pseq` klCons (Core.Types.Atom (Core.Types.UnboundSym "boolean")) appl_223+                !appl_225 <- appl_224 `pseq` klCons (Core.Types.Atom (Core.Types.UnboundSym "-->")) appl_224+                !appl_226 <- appl_225 `pseq` klCons (Core.Types.Atom (Core.Types.UnboundSym "symbol")) appl_225+                let !appl_227 = Atom Nil+                !appl_228 <- appl_227 `pseq` klCons (Core.Types.Atom (Core.Types.UnboundSym "symbol")) appl_227+                !appl_229 <- appl_228 `pseq` klCons (Core.Types.Atom (Core.Types.UnboundSym "-->")) appl_228+                !appl_230 <- appl_229 `pseq` klCons (Core.Types.Atom (Core.Types.UnboundSym "symbol")) appl_229+                let !appl_231 = Atom Nil+                !appl_232 <- appl_230 `pseq` (appl_231 `pseq` klCons appl_230 appl_231)+                !appl_233 <- appl_232 `pseq` klCons (Core.Types.Atom (Core.Types.UnboundSym "-->")) appl_232+                !appl_234 <- appl_226 `pseq` (appl_233 `pseq` klCons appl_226 appl_233)+                appl_234 `pseq` kl_declare (ApplC (wrapNamed "fail-if" kl_fail_if)) appl_234) `catchError` (\(!kl_E) -> do return (Core.Types.Atom (Core.Types.Str "E")))+            (do let !appl_235 = Atom Nil+                !appl_236 <- appl_235 `pseq` klCons (Core.Types.Atom (Core.Types.UnboundSym "A")) appl_235+                !appl_237 <- appl_236 `pseq` klCons (Core.Types.Atom (Core.Types.UnboundSym "-->")) appl_236+                !appl_238 <- appl_237 `pseq` klCons (Core.Types.Atom (Core.Types.UnboundSym "A")) appl_237+                let !appl_239 = Atom Nil+                !appl_240 <- appl_239 `pseq` klCons (Core.Types.Atom (Core.Types.UnboundSym "A")) appl_239+                !appl_241 <- appl_240 `pseq` klCons (Core.Types.Atom (Core.Types.UnboundSym "-->")) appl_240+                !appl_242 <- appl_241 `pseq` klCons (Core.Types.Atom (Core.Types.UnboundSym "A")) appl_241+                let !appl_243 = Atom Nil+                !appl_244 <- appl_242 `pseq` (appl_243 `pseq` klCons appl_242 appl_243)+                !appl_245 <- appl_244 `pseq` klCons (Core.Types.Atom (Core.Types.UnboundSym "-->")) appl_244+                !appl_246 <- appl_238 `pseq` (appl_245 `pseq` klCons appl_238 appl_245)+                appl_246 `pseq` kl_declare (ApplC (wrapNamed "fix" kl_fix)) appl_246) `catchError` (\(!kl_E) -> do return (Core.Types.Atom (Core.Types.Str "E")))+            (do let !appl_247 = Atom Nil+                !appl_248 <- appl_247 `pseq` klCons (Core.Types.Atom (Core.Types.UnboundSym "A")) appl_247+                !appl_249 <- appl_248 `pseq` klCons (Core.Types.Atom (Core.Types.UnboundSym "lazy")) appl_248+                let !appl_250 = Atom Nil+                !appl_251 <- appl_249 `pseq` (appl_250 `pseq` klCons appl_249 appl_250)+                !appl_252 <- appl_251 `pseq` klCons (Core.Types.Atom (Core.Types.UnboundSym "-->")) appl_251+                !appl_253 <- appl_252 `pseq` klCons (Core.Types.Atom (Core.Types.UnboundSym "A")) appl_252+                appl_253 `pseq` kl_declare (Core.Types.Atom (Core.Types.UnboundSym "freeze")) appl_253) `catchError` (\(!kl_E) -> do return (Core.Types.Atom (Core.Types.Str "E")))+            (do let !appl_254 = Atom Nil+                !appl_255 <- appl_254 `pseq` klCons (Core.Types.Atom (Core.Types.UnboundSym "B")) appl_254+                !appl_256 <- appl_255 `pseq` klCons (ApplC (wrapNamed "*" multiply)) appl_255+                !appl_257 <- appl_256 `pseq` klCons (Core.Types.Atom (Core.Types.UnboundSym "A")) appl_256+                let !appl_258 = Atom Nil+                !appl_259 <- appl_258 `pseq` klCons (Core.Types.Atom (Core.Types.UnboundSym "A")) appl_258+                !appl_260 <- appl_259 `pseq` klCons (Core.Types.Atom (Core.Types.UnboundSym "-->")) appl_259+                !appl_261 <- appl_257 `pseq` (appl_260 `pseq` klCons appl_257 appl_260)+                appl_261 `pseq` kl_declare (ApplC (wrapNamed "fst" kl_fst)) appl_261) `catchError` (\(!kl_E) -> do return (Core.Types.Atom (Core.Types.Str "E")))+            (do let !appl_262 = Atom Nil+                !appl_263 <- appl_262 `pseq` klCons (Core.Types.Atom (Core.Types.UnboundSym "B")) appl_262+                !appl_264 <- appl_263 `pseq` klCons (Core.Types.Atom (Core.Types.UnboundSym "-->")) appl_263+                !appl_265 <- appl_264 `pseq` klCons (Core.Types.Atom (Core.Types.UnboundSym "A")) appl_264+                let !appl_266 = Atom Nil+                !appl_267 <- appl_266 `pseq` klCons (Core.Types.Atom (Core.Types.UnboundSym "B")) appl_266+                !appl_268 <- appl_267 `pseq` klCons (Core.Types.Atom (Core.Types.UnboundSym "-->")) appl_267+                !appl_269 <- appl_268 `pseq` klCons (Core.Types.Atom (Core.Types.UnboundSym "A")) appl_268+                let !appl_270 = Atom Nil+                !appl_271 <- appl_269 `pseq` (appl_270 `pseq` klCons appl_269 appl_270)+                !appl_272 <- appl_271 `pseq` klCons (Core.Types.Atom (Core.Types.UnboundSym "-->")) appl_271+                !appl_273 <- appl_265 `pseq` (appl_272 `pseq` klCons appl_265 appl_272)+                appl_273 `pseq` kl_declare (ApplC (wrapNamed "function" kl_function)) appl_273) `catchError` (\(!kl_E) -> do return (Core.Types.Atom (Core.Types.Str "E")))+            (do let !appl_274 = Atom Nil+                !appl_275 <- appl_274 `pseq` klCons (Core.Types.Atom (Core.Types.UnboundSym "symbol")) appl_274+                !appl_276 <- appl_275 `pseq` klCons (Core.Types.Atom (Core.Types.UnboundSym "-->")) appl_275+                !appl_277 <- appl_276 `pseq` klCons (Core.Types.Atom (Core.Types.UnboundSym "symbol")) appl_276+                appl_277 `pseq` kl_declare (ApplC (wrapNamed "gensym" kl_gensym)) appl_277) `catchError` (\(!kl_E) -> do return (Core.Types.Atom (Core.Types.Str "E")))+            (do let !appl_278 = Atom Nil+                !appl_279 <- appl_278 `pseq` klCons (Core.Types.Atom (Core.Types.UnboundSym "A")) appl_278+                !appl_280 <- appl_279 `pseq` klCons (ApplC (wrapNamed "vector" kl_vector)) appl_279+                let !appl_281 = Atom Nil+                !appl_282 <- appl_281 `pseq` klCons (Core.Types.Atom (Core.Types.UnboundSym "A")) appl_281+                !appl_283 <- appl_282 `pseq` klCons (Core.Types.Atom (Core.Types.UnboundSym "-->")) appl_282+                !appl_284 <- appl_283 `pseq` klCons (Core.Types.Atom (Core.Types.UnboundSym "number")) appl_283+                let !appl_285 = Atom Nil+                !appl_286 <- appl_284 `pseq` (appl_285 `pseq` klCons appl_284 appl_285)+                !appl_287 <- appl_286 `pseq` klCons (Core.Types.Atom (Core.Types.UnboundSym "-->")) appl_286+                !appl_288 <- appl_280 `pseq` (appl_287 `pseq` klCons appl_280 appl_287)+                appl_288 `pseq` kl_declare (ApplC (wrapNamed "<-vector" kl_LB_vector)) appl_288) `catchError` (\(!kl_E) -> do return (Core.Types.Atom (Core.Types.Str "E")))+            (do let !appl_289 = Atom Nil+                !appl_290 <- appl_289 `pseq` klCons (Core.Types.Atom (Core.Types.UnboundSym "A")) appl_289+                !appl_291 <- appl_290 `pseq` klCons (ApplC (wrapNamed "vector" kl_vector)) appl_290+                let !appl_292 = Atom Nil+                !appl_293 <- appl_292 `pseq` klCons (Core.Types.Atom (Core.Types.UnboundSym "A")) appl_292+                !appl_294 <- appl_293 `pseq` klCons (Core.Types.Atom (Core.Types.UnboundSym "lazy")) appl_293+                let !appl_295 = Atom Nil+                !appl_296 <- appl_295 `pseq` klCons (Core.Types.Atom (Core.Types.UnboundSym "A")) appl_295+                !appl_297 <- appl_296 `pseq` klCons (Core.Types.Atom (Core.Types.UnboundSym "-->")) appl_296+                !appl_298 <- appl_294 `pseq` (appl_297 `pseq` klCons appl_294 appl_297)+                let !appl_299 = Atom Nil+                !appl_300 <- appl_298 `pseq` (appl_299 `pseq` klCons appl_298 appl_299)+                !appl_301 <- appl_300 `pseq` klCons (Core.Types.Atom (Core.Types.UnboundSym "-->")) appl_300+                !appl_302 <- appl_301 `pseq` klCons (Core.Types.Atom (Core.Types.UnboundSym "number")) appl_301+                let !appl_303 = Atom Nil+                !appl_304 <- appl_302 `pseq` (appl_303 `pseq` klCons appl_302 appl_303)+                !appl_305 <- appl_304 `pseq` klCons (Core.Types.Atom (Core.Types.UnboundSym "-->")) appl_304+                !appl_306 <- appl_291 `pseq` (appl_305 `pseq` klCons appl_291 appl_305)+                appl_306 `pseq` kl_declare (ApplC (wrapNamed "<-vector/or" kl_LB_vectorDivor)) appl_306) `catchError` (\(!kl_E) -> do return (Core.Types.Atom (Core.Types.Str "E")))+            (do let !appl_307 = Atom Nil+                !appl_308 <- appl_307 `pseq` klCons (Core.Types.Atom (Core.Types.UnboundSym "A")) appl_307+                !appl_309 <- appl_308 `pseq` klCons (ApplC (wrapNamed "vector" kl_vector)) appl_308+                let !appl_310 = Atom Nil+                !appl_311 <- appl_310 `pseq` klCons (Core.Types.Atom (Core.Types.UnboundSym "A")) appl_310+                !appl_312 <- appl_311 `pseq` klCons (ApplC (wrapNamed "vector" kl_vector)) appl_311+                let !appl_313 = Atom Nil+                !appl_314 <- appl_312 `pseq` (appl_313 `pseq` klCons appl_312 appl_313)+                !appl_315 <- appl_314 `pseq` klCons (Core.Types.Atom (Core.Types.UnboundSym "-->")) appl_314+                !appl_316 <- appl_315 `pseq` klCons (Core.Types.Atom (Core.Types.UnboundSym "A")) appl_315+                let !appl_317 = Atom Nil+                !appl_318 <- appl_316 `pseq` (appl_317 `pseq` klCons appl_316 appl_317)+                !appl_319 <- appl_318 `pseq` klCons (Core.Types.Atom (Core.Types.UnboundSym "-->")) appl_318+                !appl_320 <- appl_319 `pseq` klCons (Core.Types.Atom (Core.Types.UnboundSym "number")) appl_319+                let !appl_321 = Atom Nil+                !appl_322 <- appl_320 `pseq` (appl_321 `pseq` klCons appl_320 appl_321)+                !appl_323 <- appl_322 `pseq` klCons (Core.Types.Atom (Core.Types.UnboundSym "-->")) appl_322+                !appl_324 <- appl_309 `pseq` (appl_323 `pseq` klCons appl_309 appl_323)+                appl_324 `pseq` kl_declare (ApplC (wrapNamed "vector->" kl_vector_RB)) appl_324) `catchError` (\(!kl_E) -> do return (Core.Types.Atom (Core.Types.Str "E")))+            (do let !appl_325 = Atom Nil+                !appl_326 <- appl_325 `pseq` klCons (Core.Types.Atom (Core.Types.UnboundSym "A")) appl_325+                !appl_327 <- appl_326 `pseq` klCons (ApplC (wrapNamed "vector" kl_vector)) appl_326+                let !appl_328 = Atom Nil+                !appl_329 <- appl_327 `pseq` (appl_328 `pseq` klCons appl_327 appl_328)+                !appl_330 <- appl_329 `pseq` klCons (Core.Types.Atom (Core.Types.UnboundSym "-->")) appl_329+                !appl_331 <- appl_330 `pseq` klCons (Core.Types.Atom (Core.Types.UnboundSym "number")) appl_330+                appl_331 `pseq` kl_declare (ApplC (wrapNamed "vector" kl_vector)) appl_331) `catchError` (\(!kl_E) -> do return (Core.Types.Atom (Core.Types.Str "E")))+            (do let !appl_332 = Atom Nil+                !appl_333 <- appl_332 `pseq` klCons (Core.Types.Atom (Core.Types.UnboundSym "V")) appl_332+                !appl_334 <- appl_333 `pseq` klCons (Core.Types.Atom (Core.Types.UnboundSym "K")) appl_333+                !appl_335 <- appl_334 `pseq` klCons (ApplC (wrapNamed "dict" kl_dict)) appl_334+                let !appl_336 = Atom Nil+                !appl_337 <- appl_335 `pseq` (appl_336 `pseq` klCons appl_335 appl_336)+                !appl_338 <- appl_337 `pseq` klCons (Core.Types.Atom (Core.Types.UnboundSym "-->")) appl_337+                !appl_339 <- appl_338 `pseq` klCons (Core.Types.Atom (Core.Types.UnboundSym "number")) appl_338+                appl_339 `pseq` kl_declare (ApplC (wrapNamed "dict" kl_dict)) appl_339) `catchError` (\(!kl_E) -> do return (Core.Types.Atom (Core.Types.Str "E")))+            (do let !appl_340 = Atom Nil+                !appl_341 <- appl_340 `pseq` klCons (Core.Types.Atom (Core.Types.UnboundSym "boolean")) appl_340+                !appl_342 <- appl_341 `pseq` klCons (Core.Types.Atom (Core.Types.UnboundSym "-->")) appl_341+                !appl_343 <- appl_342 `pseq` klCons (Core.Types.Atom (Core.Types.UnboundSym "A")) appl_342+                appl_343 `pseq` kl_declare (ApplC (wrapNamed "dict?" kl_dictP)) appl_343) `catchError` (\(!kl_E) -> do return (Core.Types.Atom (Core.Types.Str "E")))+            (do let !appl_344 = Atom Nil+                !appl_345 <- appl_344 `pseq` klCons (Core.Types.Atom (Core.Types.UnboundSym "V")) appl_344+                !appl_346 <- appl_345 `pseq` klCons (Core.Types.Atom (Core.Types.UnboundSym "K")) appl_345+                !appl_347 <- appl_346 `pseq` klCons (ApplC (wrapNamed "dict" kl_dict)) appl_346+                let !appl_348 = Atom Nil+                !appl_349 <- appl_348 `pseq` klCons (Core.Types.Atom (Core.Types.UnboundSym "number")) appl_348+                !appl_350 <- appl_349 `pseq` klCons (Core.Types.Atom (Core.Types.UnboundSym "-->")) appl_349+                !appl_351 <- appl_347 `pseq` (appl_350 `pseq` klCons appl_347 appl_350)+                appl_351 `pseq` kl_declare (ApplC (wrapNamed "dict-count" kl_dict_count)) appl_351) `catchError` (\(!kl_E) -> do return (Core.Types.Atom (Core.Types.Str "E")))+            (do let !appl_352 = Atom Nil+                !appl_353 <- appl_352 `pseq` klCons (Core.Types.Atom (Core.Types.UnboundSym "V")) appl_352+                !appl_354 <- appl_353 `pseq` klCons (Core.Types.Atom (Core.Types.UnboundSym "K")) appl_353+                !appl_355 <- appl_354 `pseq` klCons (ApplC (wrapNamed "dict" kl_dict)) appl_354+                let !appl_356 = Atom Nil+                !appl_357 <- appl_356 `pseq` klCons (Core.Types.Atom (Core.Types.UnboundSym "V")) appl_356+                !appl_358 <- appl_357 `pseq` klCons (Core.Types.Atom (Core.Types.UnboundSym "-->")) appl_357+                !appl_359 <- appl_358 `pseq` klCons (Core.Types.Atom (Core.Types.UnboundSym "K")) appl_358+                let !appl_360 = Atom Nil+                !appl_361 <- appl_359 `pseq` (appl_360 `pseq` klCons appl_359 appl_360)+                !appl_362 <- appl_361 `pseq` klCons (Core.Types.Atom (Core.Types.UnboundSym "-->")) appl_361+                !appl_363 <- appl_355 `pseq` (appl_362 `pseq` klCons appl_355 appl_362)+                appl_363 `pseq` kl_declare (ApplC (wrapNamed "<-dict" kl_LB_dict)) appl_363) `catchError` (\(!kl_E) -> do return (Core.Types.Atom (Core.Types.Str "E")))+            (do let !appl_364 = Atom Nil+                !appl_365 <- appl_364 `pseq` klCons (Core.Types.Atom (Core.Types.UnboundSym "V")) appl_364+                !appl_366 <- appl_365 `pseq` klCons (Core.Types.Atom (Core.Types.UnboundSym "K")) appl_365+                !appl_367 <- appl_366 `pseq` klCons (ApplC (wrapNamed "dict" kl_dict)) appl_366+                let !appl_368 = Atom Nil+                !appl_369 <- appl_368 `pseq` klCons (Core.Types.Atom (Core.Types.UnboundSym "V")) appl_368+                !appl_370 <- appl_369 `pseq` klCons (Core.Types.Atom (Core.Types.UnboundSym "lazy")) appl_369+                let !appl_371 = Atom Nil+                !appl_372 <- appl_371 `pseq` klCons (Core.Types.Atom (Core.Types.UnboundSym "V")) appl_371+                !appl_373 <- appl_372 `pseq` klCons (Core.Types.Atom (Core.Types.UnboundSym "-->")) appl_372+                !appl_374 <- appl_370 `pseq` (appl_373 `pseq` klCons appl_370 appl_373)+                let !appl_375 = Atom Nil+                !appl_376 <- appl_374 `pseq` (appl_375 `pseq` klCons appl_374 appl_375)+                !appl_377 <- appl_376 `pseq` klCons (Core.Types.Atom (Core.Types.UnboundSym "-->")) appl_376+                !appl_378 <- appl_377 `pseq` klCons (Core.Types.Atom (Core.Types.UnboundSym "K")) appl_377+                let !appl_379 = Atom Nil+                !appl_380 <- appl_378 `pseq` (appl_379 `pseq` klCons appl_378 appl_379)+                !appl_381 <- appl_380 `pseq` klCons (Core.Types.Atom (Core.Types.UnboundSym "-->")) appl_380+                !appl_382 <- appl_367 `pseq` (appl_381 `pseq` klCons appl_367 appl_381)+                appl_382 `pseq` kl_declare (ApplC (wrapNamed "<-dict/or" kl_LB_dictDivor)) appl_382) `catchError` (\(!kl_E) -> do return (Core.Types.Atom (Core.Types.Str "E")))+            (do let !appl_383 = Atom Nil+                !appl_384 <- appl_383 `pseq` klCons (Core.Types.Atom (Core.Types.UnboundSym "V")) appl_383+                !appl_385 <- appl_384 `pseq` klCons (Core.Types.Atom (Core.Types.UnboundSym "K")) appl_384+                !appl_386 <- appl_385 `pseq` klCons (ApplC (wrapNamed "dict" kl_dict)) appl_385+                let !appl_387 = Atom Nil+                !appl_388 <- appl_387 `pseq` klCons (Core.Types.Atom (Core.Types.UnboundSym "V")) appl_387+                !appl_389 <- appl_388 `pseq` klCons (Core.Types.Atom (Core.Types.UnboundSym "-->")) appl_388+                !appl_390 <- appl_389 `pseq` klCons (Core.Types.Atom (Core.Types.UnboundSym "V")) appl_389+                let !appl_391 = Atom Nil+                !appl_392 <- appl_390 `pseq` (appl_391 `pseq` klCons appl_390 appl_391)+                !appl_393 <- appl_392 `pseq` klCons (Core.Types.Atom (Core.Types.UnboundSym "-->")) appl_392+                !appl_394 <- appl_393 `pseq` klCons (Core.Types.Atom (Core.Types.UnboundSym "K")) appl_393+                let !appl_395 = Atom Nil+                !appl_396 <- appl_394 `pseq` (appl_395 `pseq` klCons appl_394 appl_395)+                !appl_397 <- appl_396 `pseq` klCons (Core.Types.Atom (Core.Types.UnboundSym "-->")) appl_396+                !appl_398 <- appl_386 `pseq` (appl_397 `pseq` klCons appl_386 appl_397)+                appl_398 `pseq` kl_declare (ApplC (wrapNamed "dict->" kl_dict_RB)) appl_398) `catchError` (\(!kl_E) -> do return (Core.Types.Atom (Core.Types.Str "E")))+            (do let !appl_399 = Atom Nil+                !appl_400 <- appl_399 `pseq` klCons (Core.Types.Atom (Core.Types.UnboundSym "V")) appl_399+                !appl_401 <- appl_400 `pseq` klCons (Core.Types.Atom (Core.Types.UnboundSym "K")) appl_400+                !appl_402 <- appl_401 `pseq` klCons (ApplC (wrapNamed "dict" kl_dict)) appl_401+                let !appl_403 = Atom Nil+                !appl_404 <- appl_403 `pseq` klCons (Core.Types.Atom (Core.Types.UnboundSym "K")) appl_403+                !appl_405 <- appl_404 `pseq` klCons (Core.Types.Atom (Core.Types.UnboundSym "-->")) appl_404+                !appl_406 <- appl_405 `pseq` klCons (Core.Types.Atom (Core.Types.UnboundSym "K")) appl_405+                let !appl_407 = Atom Nil+                !appl_408 <- appl_406 `pseq` (appl_407 `pseq` klCons appl_406 appl_407)+                !appl_409 <- appl_408 `pseq` klCons (Core.Types.Atom (Core.Types.UnboundSym "-->")) appl_408+                !appl_410 <- appl_402 `pseq` (appl_409 `pseq` klCons appl_402 appl_409)+                appl_410 `pseq` kl_declare (ApplC (wrapNamed "dict-rm" kl_dict_rm)) appl_410) `catchError` (\(!kl_E) -> do return (Core.Types.Atom (Core.Types.Str "E")))+            (do let !appl_411 = Atom Nil+                !appl_412 <- appl_411 `pseq` klCons (Core.Types.Atom (Core.Types.UnboundSym "A")) appl_411+                !appl_413 <- appl_412 `pseq` klCons (Core.Types.Atom (Core.Types.UnboundSym "-->")) appl_412+                !appl_414 <- appl_413 `pseq` klCons (Core.Types.Atom (Core.Types.UnboundSym "A")) appl_413+                let !appl_415 = Atom Nil+                !appl_416 <- appl_414 `pseq` (appl_415 `pseq` klCons appl_414 appl_415)+                !appl_417 <- appl_416 `pseq` klCons (Core.Types.Atom (Core.Types.UnboundSym "-->")) appl_416+                !appl_418 <- appl_417 `pseq` klCons (Core.Types.Atom (Core.Types.UnboundSym "V")) appl_417+                let !appl_419 = Atom Nil+                !appl_420 <- appl_418 `pseq` (appl_419 `pseq` klCons appl_418 appl_419)+                !appl_421 <- appl_420 `pseq` klCons (Core.Types.Atom (Core.Types.UnboundSym "-->")) appl_420+                !appl_422 <- appl_421 `pseq` klCons (Core.Types.Atom (Core.Types.UnboundSym "K")) appl_421+                let !appl_423 = Atom Nil+                !appl_424 <- appl_423 `pseq` klCons (Core.Types.Atom (Core.Types.UnboundSym "V")) appl_423+                !appl_425 <- appl_424 `pseq` klCons (Core.Types.Atom (Core.Types.UnboundSym "K")) appl_424+                !appl_426 <- appl_425 `pseq` klCons (ApplC (wrapNamed "dict" kl_dict)) appl_425+                let !appl_427 = Atom Nil+                !appl_428 <- appl_427 `pseq` klCons (Core.Types.Atom (Core.Types.UnboundSym "A")) appl_427+                !appl_429 <- appl_428 `pseq` klCons (Core.Types.Atom (Core.Types.UnboundSym "-->")) appl_428+                !appl_430 <- appl_429 `pseq` klCons (Core.Types.Atom (Core.Types.UnboundSym "A")) appl_429+                let !appl_431 = Atom Nil+                !appl_432 <- appl_430 `pseq` (appl_431 `pseq` klCons appl_430 appl_431)+                !appl_433 <- appl_432 `pseq` klCons (Core.Types.Atom (Core.Types.UnboundSym "-->")) appl_432+                !appl_434 <- appl_426 `pseq` (appl_433 `pseq` klCons appl_426 appl_433)+                let !appl_435 = Atom Nil+                !appl_436 <- appl_434 `pseq` (appl_435 `pseq` klCons appl_434 appl_435)+                !appl_437 <- appl_436 `pseq` klCons (Core.Types.Atom (Core.Types.UnboundSym "-->")) appl_436+                !appl_438 <- appl_422 `pseq` (appl_437 `pseq` klCons appl_422 appl_437)+                appl_438 `pseq` kl_declare (ApplC (wrapNamed "dict-fold" kl_dict_fold)) appl_438) `catchError` (\(!kl_E) -> do return (Core.Types.Atom (Core.Types.Str "E")))+            (do let !appl_439 = Atom Nil+                !appl_440 <- appl_439 `pseq` klCons (Core.Types.Atom (Core.Types.UnboundSym "V")) appl_439+                !appl_441 <- appl_440 `pseq` klCons (Core.Types.Atom (Core.Types.UnboundSym "K")) appl_440+                !appl_442 <- appl_441 `pseq` klCons (ApplC (wrapNamed "dict" kl_dict)) appl_441+                let !appl_443 = Atom Nil+                !appl_444 <- appl_443 `pseq` klCons (Core.Types.Atom (Core.Types.UnboundSym "K")) appl_443+                !appl_445 <- appl_444 `pseq` klCons (Core.Types.Atom (Core.Types.UnboundSym "list")) appl_444+                let !appl_446 = Atom Nil+                !appl_447 <- appl_445 `pseq` (appl_446 `pseq` klCons appl_445 appl_446)+                !appl_448 <- appl_447 `pseq` klCons (Core.Types.Atom (Core.Types.UnboundSym "-->")) appl_447+                !appl_449 <- appl_442 `pseq` (appl_448 `pseq` klCons appl_442 appl_448)+                appl_449 `pseq` kl_declare (ApplC (wrapNamed "dict-keys" kl_dict_keys)) appl_449) `catchError` (\(!kl_E) -> do return (Core.Types.Atom (Core.Types.Str "E")))+            (do let !appl_450 = Atom Nil+                !appl_451 <- appl_450 `pseq` klCons (Core.Types.Atom (Core.Types.UnboundSym "V")) appl_450+                !appl_452 <- appl_451 `pseq` klCons (Core.Types.Atom (Core.Types.UnboundSym "K")) appl_451+                !appl_453 <- appl_452 `pseq` klCons (ApplC (wrapNamed "dict" kl_dict)) appl_452+                let !appl_454 = Atom Nil+                !appl_455 <- appl_454 `pseq` klCons (Core.Types.Atom (Core.Types.UnboundSym "V")) appl_454+                !appl_456 <- appl_455 `pseq` klCons (Core.Types.Atom (Core.Types.UnboundSym "list")) appl_455+                let !appl_457 = Atom Nil+                !appl_458 <- appl_456 `pseq` (appl_457 `pseq` klCons appl_456 appl_457)+                !appl_459 <- appl_458 `pseq` klCons (Core.Types.Atom (Core.Types.UnboundSym "-->")) appl_458+                !appl_460 <- appl_453 `pseq` (appl_459 `pseq` klCons appl_453 appl_459)+                appl_460 `pseq` kl_declare (ApplC (wrapNamed "dict-values" kl_dict_values)) appl_460) `catchError` (\(!kl_E) -> do return (Core.Types.Atom (Core.Types.Str "E")))+            (do let !appl_461 = Atom Nil+                !appl_462 <- appl_461 `pseq` klCons (Core.Types.Atom (Core.Types.UnboundSym "unit")) appl_461+                !appl_463 <- appl_462 `pseq` klCons (Core.Types.Atom (Core.Types.UnboundSym "-->")) appl_462+                !appl_464 <- appl_463 `pseq` klCons (Core.Types.Atom (Core.Types.UnboundSym "number")) appl_463+                appl_464 `pseq` kl_declare (ApplC (wrapNamed "exit" kl_exit)) appl_464) `catchError` (\(!kl_E) -> do return (Core.Types.Atom (Core.Types.Str "E")))+            (do let !appl_465 = Atom Nil+                !appl_466 <- appl_465 `pseq` klCons (Core.Types.Atom (Core.Types.UnboundSym "number")) appl_465+                !appl_467 <- appl_466 `pseq` klCons (Core.Types.Atom (Core.Types.UnboundSym "-->")) appl_466+                !appl_468 <- appl_467 `pseq` klCons (Core.Types.Atom (Core.Types.UnboundSym "symbol")) appl_467+                appl_468 `pseq` kl_declare (ApplC (wrapNamed "get-time" getTime)) appl_468) `catchError` (\(!kl_E) -> do return (Core.Types.Atom (Core.Types.Str "E")))+            (do let !appl_469 = Atom Nil+                !appl_470 <- appl_469 `pseq` klCons (Core.Types.Atom (Core.Types.UnboundSym "number")) appl_469+                !appl_471 <- appl_470 `pseq` klCons (Core.Types.Atom (Core.Types.UnboundSym "-->")) appl_470+                !appl_472 <- appl_471 `pseq` klCons (Core.Types.Atom (Core.Types.UnboundSym "number")) appl_471+                let !appl_473 = Atom Nil+                !appl_474 <- appl_472 `pseq` (appl_473 `pseq` klCons appl_472 appl_473)+                !appl_475 <- appl_474 `pseq` klCons (Core.Types.Atom (Core.Types.UnboundSym "-->")) appl_474+                !appl_476 <- appl_475 `pseq` klCons (Core.Types.Atom (Core.Types.UnboundSym "A")) appl_475+                appl_476 `pseq` kl_declare (ApplC (wrapNamed "hash" kl_hash)) appl_476) `catchError` (\(!kl_E) -> do return (Core.Types.Atom (Core.Types.Str "E")))+            (do let !appl_477 = Atom Nil+                !appl_478 <- appl_477 `pseq` klCons (Core.Types.Atom (Core.Types.UnboundSym "A")) appl_477+                !appl_479 <- appl_478 `pseq` klCons (Core.Types.Atom (Core.Types.UnboundSym "list")) appl_478+                let !appl_480 = Atom Nil+                !appl_481 <- appl_480 `pseq` klCons (Core.Types.Atom (Core.Types.UnboundSym "A")) appl_480+                !appl_482 <- appl_481 `pseq` klCons (Core.Types.Atom (Core.Types.UnboundSym "-->")) appl_481+                !appl_483 <- appl_479 `pseq` (appl_482 `pseq` klCons appl_479 appl_482)+                appl_483 `pseq` kl_declare (ApplC (wrapNamed "head" kl_head)) appl_483) `catchError` (\(!kl_E) -> do return (Core.Types.Atom (Core.Types.Str "E")))+            (do let !appl_484 = Atom Nil+                !appl_485 <- appl_484 `pseq` klCons (Core.Types.Atom (Core.Types.UnboundSym "A")) appl_484+                !appl_486 <- appl_485 `pseq` klCons (ApplC (wrapNamed "vector" kl_vector)) appl_485+                let !appl_487 = Atom Nil+                !appl_488 <- appl_487 `pseq` klCons (Core.Types.Atom (Core.Types.UnboundSym "A")) appl_487+                !appl_489 <- appl_488 `pseq` klCons (Core.Types.Atom (Core.Types.UnboundSym "-->")) appl_488+                !appl_490 <- appl_486 `pseq` (appl_489 `pseq` klCons appl_486 appl_489)+                appl_490 `pseq` kl_declare (ApplC (wrapNamed "hdv" kl_hdv)) appl_490) `catchError` (\(!kl_E) -> do return (Core.Types.Atom (Core.Types.Str "E")))+            (do let !appl_491 = Atom Nil+                !appl_492 <- appl_491 `pseq` klCons (Core.Types.Atom (Core.Types.UnboundSym "string")) appl_491+                !appl_493 <- appl_492 `pseq` klCons (Core.Types.Atom (Core.Types.UnboundSym "-->")) appl_492+                !appl_494 <- appl_493 `pseq` klCons (Core.Types.Atom (Core.Types.UnboundSym "string")) appl_493+                appl_494 `pseq` kl_declare (ApplC (wrapNamed "hdstr" kl_hdstr)) appl_494) `catchError` (\(!kl_E) -> do return (Core.Types.Atom (Core.Types.Str "E")))+            (do let !appl_495 = Atom Nil+                !appl_496 <- appl_495 `pseq` klCons (Core.Types.Atom (Core.Types.UnboundSym "A")) appl_495+                !appl_497 <- appl_496 `pseq` klCons (Core.Types.Atom (Core.Types.UnboundSym "-->")) appl_496+                !appl_498 <- appl_497 `pseq` klCons (Core.Types.Atom (Core.Types.UnboundSym "A")) appl_497+                let !appl_499 = Atom Nil+                !appl_500 <- appl_498 `pseq` (appl_499 `pseq` klCons appl_498 appl_499)+                !appl_501 <- appl_500 `pseq` klCons (Core.Types.Atom (Core.Types.UnboundSym "-->")) appl_500+                !appl_502 <- appl_501 `pseq` klCons (Core.Types.Atom (Core.Types.UnboundSym "A")) appl_501+                let !appl_503 = Atom Nil+                !appl_504 <- appl_502 `pseq` (appl_503 `pseq` klCons appl_502 appl_503)+                !appl_505 <- appl_504 `pseq` klCons (Core.Types.Atom (Core.Types.UnboundSym "-->")) appl_504+                !appl_506 <- appl_505 `pseq` klCons (Core.Types.Atom (Core.Types.UnboundSym "boolean")) appl_505+                appl_506 `pseq` kl_declare (Core.Types.Atom (Core.Types.UnboundSym "if")) appl_506) `catchError` (\(!kl_E) -> do return (Core.Types.Atom (Core.Types.Str "E")))+            (do let !appl_507 = Atom Nil+                !appl_508 <- appl_507 `pseq` klCons (Core.Types.Atom (Core.Types.UnboundSym "string")) appl_507+                !appl_509 <- appl_508 `pseq` klCons (Core.Types.Atom (Core.Types.UnboundSym "-->")) appl_508+                appl_509 `pseq` kl_declare (ApplC (PL "it" kl_it)) appl_509) `catchError` (\(!kl_E) -> do return (Core.Types.Atom (Core.Types.Str "E")))+            (do let !appl_510 = Atom Nil+                !appl_511 <- appl_510 `pseq` klCons (Core.Types.Atom (Core.Types.UnboundSym "string")) appl_510+                !appl_512 <- appl_511 `pseq` klCons (Core.Types.Atom (Core.Types.UnboundSym "-->")) appl_511+                appl_512 `pseq` kl_declare (ApplC (PL "implementation" kl_implementation)) appl_512) `catchError` (\(!kl_E) -> do return (Core.Types.Atom (Core.Types.Str "E")))+            (do let !appl_513 = Atom Nil+                !appl_514 <- appl_513 `pseq` klCons (Core.Types.Atom (Core.Types.UnboundSym "symbol")) appl_513+                !appl_515 <- appl_514 `pseq` klCons (Core.Types.Atom (Core.Types.UnboundSym "list")) appl_514+                let !appl_516 = Atom Nil+                !appl_517 <- appl_516 `pseq` klCons (Core.Types.Atom (Core.Types.UnboundSym "symbol")) appl_516+                !appl_518 <- appl_517 `pseq` klCons (Core.Types.Atom (Core.Types.UnboundSym "list")) appl_517+                let !appl_519 = Atom Nil+                !appl_520 <- appl_518 `pseq` (appl_519 `pseq` klCons appl_518 appl_519)+                !appl_521 <- appl_520 `pseq` klCons (Core.Types.Atom (Core.Types.UnboundSym "-->")) appl_520+                !appl_522 <- appl_515 `pseq` (appl_521 `pseq` klCons appl_515 appl_521)+                appl_522 `pseq` kl_declare (ApplC (wrapNamed "include" kl_include)) appl_522) `catchError` (\(!kl_E) -> do return (Core.Types.Atom (Core.Types.Str "E")))+            (do let !appl_523 = Atom Nil+                !appl_524 <- appl_523 `pseq` klCons (Core.Types.Atom (Core.Types.UnboundSym "symbol")) appl_523+                !appl_525 <- appl_524 `pseq` klCons (Core.Types.Atom (Core.Types.UnboundSym "list")) appl_524+                let !appl_526 = Atom Nil+                !appl_527 <- appl_526 `pseq` klCons (Core.Types.Atom (Core.Types.UnboundSym "symbol")) appl_526+                !appl_528 <- appl_527 `pseq` klCons (Core.Types.Atom (Core.Types.UnboundSym "list")) appl_527+                let !appl_529 = Atom Nil+                !appl_530 <- appl_528 `pseq` (appl_529 `pseq` klCons appl_528 appl_529)+                !appl_531 <- appl_530 `pseq` klCons (Core.Types.Atom (Core.Types.UnboundSym "-->")) appl_530+                !appl_532 <- appl_525 `pseq` (appl_531 `pseq` klCons appl_525 appl_531)+                appl_532 `pseq` kl_declare (ApplC (wrapNamed "include-all-but" kl_include_all_but)) appl_532) `catchError` (\(!kl_E) -> do return (Core.Types.Atom (Core.Types.Str "E")))+            (do let !appl_533 = Atom Nil+                !appl_534 <- appl_533 `pseq` klCons (Core.Types.Atom (Core.Types.UnboundSym "number")) appl_533+                !appl_535 <- appl_534 `pseq` klCons (Core.Types.Atom (Core.Types.UnboundSym "-->")) appl_534+                appl_535 `pseq` kl_declare (ApplC (PL "inferences" kl_inferences)) appl_535) `catchError` (\(!kl_E) -> do return (Core.Types.Atom (Core.Types.Str "E")))+            (do let !appl_536 = Atom Nil+                !appl_537 <- appl_536 `pseq` klCons (Core.Types.Atom (Core.Types.UnboundSym "string")) appl_536+                !appl_538 <- appl_537 `pseq` klCons (Core.Types.Atom (Core.Types.UnboundSym "-->")) appl_537+                !appl_539 <- appl_538 `pseq` klCons (Core.Types.Atom (Core.Types.UnboundSym "string")) appl_538+                let !appl_540 = Atom Nil+                !appl_541 <- appl_539 `pseq` (appl_540 `pseq` klCons appl_539 appl_540)+                !appl_542 <- appl_541 `pseq` klCons (Core.Types.Atom (Core.Types.UnboundSym "-->")) appl_541+                !appl_543 <- appl_542 `pseq` klCons (Core.Types.Atom (Core.Types.UnboundSym "A")) appl_542+                appl_543 `pseq` kl_declare (ApplC (wrapNamed "shen.insert" kl_shen_insert)) appl_543) `catchError` (\(!kl_E) -> do return (Core.Types.Atom (Core.Types.Str "E")))+            (do let !appl_544 = Atom Nil+                !appl_545 <- appl_544 `pseq` klCons (Core.Types.Atom (Core.Types.UnboundSym "boolean")) appl_544+                !appl_546 <- appl_545 `pseq` klCons (Core.Types.Atom (Core.Types.UnboundSym "-->")) appl_545+                !appl_547 <- appl_546 `pseq` klCons (Core.Types.Atom (Core.Types.UnboundSym "A")) appl_546+                appl_547 `pseq` kl_declare (ApplC (wrapNamed "integer?" kl_integerP)) appl_547) `catchError` (\(!kl_E) -> do return (Core.Types.Atom (Core.Types.Str "E")))+            (do let !appl_548 = Atom Nil+                !appl_549 <- appl_548 `pseq` klCons (Core.Types.Atom (Core.Types.UnboundSym "symbol")) appl_548+                !appl_550 <- appl_549 `pseq` klCons (Core.Types.Atom (Core.Types.UnboundSym "list")) appl_549+                let !appl_551 = Atom Nil+                !appl_552 <- appl_550 `pseq` (appl_551 `pseq` klCons appl_550 appl_551)+                !appl_553 <- appl_552 `pseq` klCons (Core.Types.Atom (Core.Types.UnboundSym "-->")) appl_552+                !appl_554 <- appl_553 `pseq` klCons (Core.Types.Atom (Core.Types.UnboundSym "symbol")) appl_553+                appl_554 `pseq` kl_declare (ApplC (wrapNamed "internal" kl_internal)) appl_554) `catchError` (\(!kl_E) -> do return (Core.Types.Atom (Core.Types.Str "E")))+            (do let !appl_555 = Atom Nil+                !appl_556 <- appl_555 `pseq` klCons (Core.Types.Atom (Core.Types.UnboundSym "A")) appl_555+                !appl_557 <- appl_556 `pseq` klCons (Core.Types.Atom (Core.Types.UnboundSym "list")) appl_556+                let !appl_558 = Atom Nil+                !appl_559 <- appl_558 `pseq` klCons (Core.Types.Atom (Core.Types.UnboundSym "A")) appl_558+                !appl_560 <- appl_559 `pseq` klCons (Core.Types.Atom (Core.Types.UnboundSym "list")) appl_559+                let !appl_561 = Atom Nil+                !appl_562 <- appl_561 `pseq` klCons (Core.Types.Atom (Core.Types.UnboundSym "A")) appl_561+                !appl_563 <- appl_562 `pseq` klCons (Core.Types.Atom (Core.Types.UnboundSym "list")) appl_562+                let !appl_564 = Atom Nil+                !appl_565 <- appl_563 `pseq` (appl_564 `pseq` klCons appl_563 appl_564)+                !appl_566 <- appl_565 `pseq` klCons (Core.Types.Atom (Core.Types.UnboundSym "-->")) appl_565+                !appl_567 <- appl_560 `pseq` (appl_566 `pseq` klCons appl_560 appl_566)+                let !appl_568 = Atom Nil+                !appl_569 <- appl_567 `pseq` (appl_568 `pseq` klCons appl_567 appl_568)+                !appl_570 <- appl_569 `pseq` klCons (Core.Types.Atom (Core.Types.UnboundSym "-->")) appl_569+                !appl_571 <- appl_557 `pseq` (appl_570 `pseq` klCons appl_557 appl_570)+                appl_571 `pseq` kl_declare (ApplC (wrapNamed "intersection" kl_intersection)) appl_571) `catchError` (\(!kl_E) -> do return (Core.Types.Atom (Core.Types.Str "E")))+            (do let !appl_572 = Atom Nil+                !appl_573 <- appl_572 `pseq` klCons (Core.Types.Atom (Core.Types.UnboundSym "A")) appl_572+                !appl_574 <- appl_573 `pseq` klCons (Core.Types.Atom (Core.Types.UnboundSym "-->")) appl_573+                appl_574 `pseq` kl_declare (ApplC (PL "kill" kl_kill)) appl_574) `catchError` (\(!kl_E) -> do return (Core.Types.Atom (Core.Types.Str "E")))+            (do let !appl_575 = Atom Nil+                !appl_576 <- appl_575 `pseq` klCons (Core.Types.Atom (Core.Types.UnboundSym "string")) appl_575+                !appl_577 <- appl_576 `pseq` klCons (Core.Types.Atom (Core.Types.UnboundSym "-->")) appl_576+                appl_577 `pseq` kl_declare (ApplC (PL "language" kl_language)) appl_577) `catchError` (\(!kl_E) -> do return (Core.Types.Atom (Core.Types.Str "E")))+            (do let !appl_578 = Atom Nil+                !appl_579 <- appl_578 `pseq` klCons (Core.Types.Atom (Core.Types.UnboundSym "A")) appl_578+                !appl_580 <- appl_579 `pseq` klCons (Core.Types.Atom (Core.Types.UnboundSym "list")) appl_579+                let !appl_581 = Atom Nil+                !appl_582 <- appl_581 `pseq` klCons (Core.Types.Atom (Core.Types.UnboundSym "number")) appl_581+                !appl_583 <- appl_582 `pseq` klCons (Core.Types.Atom (Core.Types.UnboundSym "-->")) appl_582+                !appl_584 <- appl_580 `pseq` (appl_583 `pseq` klCons appl_580 appl_583)+                appl_584 `pseq` kl_declare (ApplC (wrapNamed "length" kl_length)) appl_584) `catchError` (\(!kl_E) -> do return (Core.Types.Atom (Core.Types.Str "E")))+            (do let !appl_585 = Atom Nil+                !appl_586 <- appl_585 `pseq` klCons (Core.Types.Atom (Core.Types.UnboundSym "A")) appl_585+                !appl_587 <- appl_586 `pseq` klCons (ApplC (wrapNamed "vector" kl_vector)) appl_586+                let !appl_588 = Atom Nil+                !appl_589 <- appl_588 `pseq` klCons (Core.Types.Atom (Core.Types.UnboundSym "number")) appl_588+                !appl_590 <- appl_589 `pseq` klCons (Core.Types.Atom (Core.Types.UnboundSym "-->")) appl_589+                !appl_591 <- appl_587 `pseq` (appl_590 `pseq` klCons appl_587 appl_590)+                appl_591 `pseq` kl_declare (ApplC (wrapNamed "limit" kl_limit)) appl_591) `catchError` (\(!kl_E) -> do return (Core.Types.Atom (Core.Types.Str "E")))+            (do let !appl_592 = Atom Nil+                !appl_593 <- appl_592 `pseq` klCons (Core.Types.Atom (Core.Types.UnboundSym "symbol")) appl_592+                !appl_594 <- appl_593 `pseq` klCons (Core.Types.Atom (Core.Types.UnboundSym "-->")) appl_593+                !appl_595 <- appl_594 `pseq` klCons (Core.Types.Atom (Core.Types.UnboundSym "string")) appl_594+                appl_595 `pseq` kl_declare (ApplC (wrapNamed "load" kl_load)) appl_595) `catchError` (\(!kl_E) -> do return (Core.Types.Atom (Core.Types.Str "E")))+            (do let !appl_596 = Atom Nil+                !appl_597 <- appl_596 `pseq` klCons (Core.Types.Atom (Core.Types.UnboundSym "B")) appl_596+                !appl_598 <- appl_597 `pseq` klCons (Core.Types.Atom (Core.Types.UnboundSym "-->")) appl_597+                !appl_599 <- appl_598 `pseq` klCons (Core.Types.Atom (Core.Types.UnboundSym "A")) appl_598+                let !appl_600 = Atom Nil+                !appl_601 <- appl_599 `pseq` (appl_600 `pseq` klCons appl_599 appl_600)+                !appl_602 <- appl_601 `pseq` klCons (Core.Types.Atom (Core.Types.UnboundSym "-->")) appl_601+                !appl_603 <- appl_602 `pseq` klCons (Core.Types.Atom (Core.Types.UnboundSym "B")) appl_602+                let !appl_604 = Atom Nil+                !appl_605 <- appl_604 `pseq` klCons (Core.Types.Atom (Core.Types.UnboundSym "A")) appl_604+                !appl_606 <- appl_605 `pseq` klCons (Core.Types.Atom (Core.Types.UnboundSym "list")) appl_605+                let !appl_607 = Atom Nil+                !appl_608 <- appl_607 `pseq` klCons (Core.Types.Atom (Core.Types.UnboundSym "B")) appl_607+                !appl_609 <- appl_608 `pseq` klCons (Core.Types.Atom (Core.Types.UnboundSym "-->")) appl_608+                !appl_610 <- appl_606 `pseq` (appl_609 `pseq` klCons appl_606 appl_609)+                let !appl_611 = Atom Nil+                !appl_612 <- appl_610 `pseq` (appl_611 `pseq` klCons appl_610 appl_611)+                !appl_613 <- appl_612 `pseq` klCons (Core.Types.Atom (Core.Types.UnboundSym "-->")) appl_612+                !appl_614 <- appl_613 `pseq` klCons (Core.Types.Atom (Core.Types.UnboundSym "B")) appl_613+                let !appl_615 = Atom Nil+                !appl_616 <- appl_614 `pseq` (appl_615 `pseq` klCons appl_614 appl_615)+                !appl_617 <- appl_616 `pseq` klCons (Core.Types.Atom (Core.Types.UnboundSym "-->")) appl_616+                !appl_618 <- appl_603 `pseq` (appl_617 `pseq` klCons appl_603 appl_617)+                appl_618 `pseq` kl_declare (ApplC (wrapNamed "fold-left" kl_fold_left)) appl_618) `catchError` (\(!kl_E) -> do return (Core.Types.Atom (Core.Types.Str "E")))+            (do let !appl_619 = Atom Nil+                !appl_620 <- appl_619 `pseq` klCons (Core.Types.Atom (Core.Types.UnboundSym "B")) appl_619+                !appl_621 <- appl_620 `pseq` klCons (Core.Types.Atom (Core.Types.UnboundSym "-->")) appl_620+                !appl_622 <- appl_621 `pseq` klCons (Core.Types.Atom (Core.Types.UnboundSym "B")) appl_621+                let !appl_623 = Atom Nil+                !appl_624 <- appl_622 `pseq` (appl_623 `pseq` klCons appl_622 appl_623)+                !appl_625 <- appl_624 `pseq` klCons (Core.Types.Atom (Core.Types.UnboundSym "-->")) appl_624+                !appl_626 <- appl_625 `pseq` klCons (Core.Types.Atom (Core.Types.UnboundSym "A")) appl_625+                let !appl_627 = Atom Nil+                !appl_628 <- appl_627 `pseq` klCons (Core.Types.Atom (Core.Types.UnboundSym "A")) appl_627+                !appl_629 <- appl_628 `pseq` klCons (Core.Types.Atom (Core.Types.UnboundSym "list")) appl_628+                let !appl_630 = Atom Nil+                !appl_631 <- appl_630 `pseq` klCons (Core.Types.Atom (Core.Types.UnboundSym "B")) appl_630+                !appl_632 <- appl_631 `pseq` klCons (Core.Types.Atom (Core.Types.UnboundSym "-->")) appl_631+                !appl_633 <- appl_632 `pseq` klCons (Core.Types.Atom (Core.Types.UnboundSym "B")) appl_632+                let !appl_634 = Atom Nil+                !appl_635 <- appl_633 `pseq` (appl_634 `pseq` klCons appl_633 appl_634)+                !appl_636 <- appl_635 `pseq` klCons (Core.Types.Atom (Core.Types.UnboundSym "-->")) appl_635+                !appl_637 <- appl_629 `pseq` (appl_636 `pseq` klCons appl_629 appl_636)+                let !appl_638 = Atom Nil+                !appl_639 <- appl_637 `pseq` (appl_638 `pseq` klCons appl_637 appl_638)+                !appl_640 <- appl_639 `pseq` klCons (Core.Types.Atom (Core.Types.UnboundSym "-->")) appl_639+                !appl_641 <- appl_626 `pseq` (appl_640 `pseq` klCons appl_626 appl_640)+                appl_641 `pseq` kl_declare (ApplC (wrapNamed "fold-right" kl_fold_right)) appl_641) `catchError` (\(!kl_E) -> do return (Core.Types.Atom (Core.Types.Str "E")))+            (do let !appl_642 = Atom Nil+                !appl_643 <- appl_642 `pseq` klCons (Core.Types.Atom (Core.Types.UnboundSym "B")) appl_642+                !appl_644 <- appl_643 `pseq` klCons (Core.Types.Atom (Core.Types.UnboundSym "-->")) appl_643+                !appl_645 <- appl_644 `pseq` klCons (Core.Types.Atom (Core.Types.UnboundSym "A")) appl_644+                let !appl_646 = Atom Nil+                !appl_647 <- appl_646 `pseq` klCons (Core.Types.Atom (Core.Types.UnboundSym "A")) appl_646+                !appl_648 <- appl_647 `pseq` klCons (Core.Types.Atom (Core.Types.UnboundSym "list")) appl_647+                let !appl_649 = Atom Nil+                !appl_650 <- appl_649 `pseq` klCons (Core.Types.Atom (Core.Types.UnboundSym "unit")) appl_649+                !appl_651 <- appl_650 `pseq` klCons (Core.Types.Atom (Core.Types.UnboundSym "-->")) appl_650+                !appl_652 <- appl_648 `pseq` (appl_651 `pseq` klCons appl_648 appl_651)+                let !appl_653 = Atom Nil+                !appl_654 <- appl_652 `pseq` (appl_653 `pseq` klCons appl_652 appl_653)+                !appl_655 <- appl_654 `pseq` klCons (Core.Types.Atom (Core.Types.UnboundSym "-->")) appl_654+                !appl_656 <- appl_645 `pseq` (appl_655 `pseq` klCons appl_645 appl_655)+                appl_656 `pseq` kl_declare (ApplC (wrapNamed "for-each" kl_for_each)) appl_656) `catchError` (\(!kl_E) -> do return (Core.Types.Atom (Core.Types.Str "E")))+            (do let !appl_657 = Atom Nil+                !appl_658 <- appl_657 `pseq` klCons (Core.Types.Atom (Core.Types.UnboundSym "B")) appl_657+                !appl_659 <- appl_658 `pseq` klCons (Core.Types.Atom (Core.Types.UnboundSym "-->")) appl_658+                !appl_660 <- appl_659 `pseq` klCons (Core.Types.Atom (Core.Types.UnboundSym "A")) appl_659+                let !appl_661 = Atom Nil+                !appl_662 <- appl_661 `pseq` klCons (Core.Types.Atom (Core.Types.UnboundSym "A")) appl_661+                !appl_663 <- appl_662 `pseq` klCons (Core.Types.Atom (Core.Types.UnboundSym "list")) appl_662+                let !appl_664 = Atom Nil+                !appl_665 <- appl_664 `pseq` klCons (Core.Types.Atom (Core.Types.UnboundSym "B")) appl_664+                !appl_666 <- appl_665 `pseq` klCons (Core.Types.Atom (Core.Types.UnboundSym "list")) appl_665+                let !appl_667 = Atom Nil+                !appl_668 <- appl_666 `pseq` (appl_667 `pseq` klCons appl_666 appl_667)+                !appl_669 <- appl_668 `pseq` klCons (Core.Types.Atom (Core.Types.UnboundSym "-->")) appl_668+                !appl_670 <- appl_663 `pseq` (appl_669 `pseq` klCons appl_663 appl_669)+                let !appl_671 = Atom Nil+                !appl_672 <- appl_670 `pseq` (appl_671 `pseq` klCons appl_670 appl_671)+                !appl_673 <- appl_672 `pseq` klCons (Core.Types.Atom (Core.Types.UnboundSym "-->")) appl_672+                !appl_674 <- appl_660 `pseq` (appl_673 `pseq` klCons appl_660 appl_673)+                appl_674 `pseq` kl_declare (ApplC (wrapNamed "map" kl_map)) appl_674) `catchError` (\(!kl_E) -> do return (Core.Types.Atom (Core.Types.Str "E")))+            (do let !appl_675 = Atom Nil+                !appl_676 <- appl_675 `pseq` klCons (Core.Types.Atom (Core.Types.UnboundSym "B")) appl_675+                !appl_677 <- appl_676 `pseq` klCons (Core.Types.Atom (Core.Types.UnboundSym "list")) appl_676+                let !appl_678 = Atom Nil+                !appl_679 <- appl_677 `pseq` (appl_678 `pseq` klCons appl_677 appl_678)+                !appl_680 <- appl_679 `pseq` klCons (Core.Types.Atom (Core.Types.UnboundSym "-->")) appl_679+                !appl_681 <- appl_680 `pseq` klCons (Core.Types.Atom (Core.Types.UnboundSym "A")) appl_680+                let !appl_682 = Atom Nil+                !appl_683 <- appl_682 `pseq` klCons (Core.Types.Atom (Core.Types.UnboundSym "A")) appl_682+                !appl_684 <- appl_683 `pseq` klCons (Core.Types.Atom (Core.Types.UnboundSym "list")) appl_683+                let !appl_685 = Atom Nil+                !appl_686 <- appl_685 `pseq` klCons (Core.Types.Atom (Core.Types.UnboundSym "B")) appl_685+                !appl_687 <- appl_686 `pseq` klCons (Core.Types.Atom (Core.Types.UnboundSym "list")) appl_686+                let !appl_688 = Atom Nil+                !appl_689 <- appl_687 `pseq` (appl_688 `pseq` klCons appl_687 appl_688)+                !appl_690 <- appl_689 `pseq` klCons (Core.Types.Atom (Core.Types.UnboundSym "-->")) appl_689+                !appl_691 <- appl_684 `pseq` (appl_690 `pseq` klCons appl_684 appl_690)+                let !appl_692 = Atom Nil+                !appl_693 <- appl_691 `pseq` (appl_692 `pseq` klCons appl_691 appl_692)+                !appl_694 <- appl_693 `pseq` klCons (Core.Types.Atom (Core.Types.UnboundSym "-->")) appl_693+                !appl_695 <- appl_681 `pseq` (appl_694 `pseq` klCons appl_681 appl_694)+                appl_695 `pseq` kl_declare (ApplC (wrapNamed "mapcan" kl_mapcan)) appl_695) `catchError` (\(!kl_E) -> do return (Core.Types.Atom (Core.Types.Str "E")))+            (do let !appl_696 = Atom Nil+                !appl_697 <- appl_696 `pseq` klCons (Core.Types.Atom (Core.Types.UnboundSym "boolean")) appl_696+                !appl_698 <- appl_697 `pseq` klCons (Core.Types.Atom (Core.Types.UnboundSym "-->")) appl_697+                !appl_699 <- appl_698 `pseq` klCons (Core.Types.Atom (Core.Types.UnboundSym "A")) appl_698+                let !appl_700 = Atom Nil+                !appl_701 <- appl_700 `pseq` klCons (Core.Types.Atom (Core.Types.UnboundSym "A")) appl_700+                !appl_702 <- appl_701 `pseq` klCons (Core.Types.Atom (Core.Types.UnboundSym "list")) appl_701+                let !appl_703 = Atom Nil+                !appl_704 <- appl_703 `pseq` klCons (Core.Types.Atom (Core.Types.UnboundSym "A")) appl_703+                !appl_705 <- appl_704 `pseq` klCons (Core.Types.Atom (Core.Types.UnboundSym "list")) appl_704+                let !appl_706 = Atom Nil+                !appl_707 <- appl_705 `pseq` (appl_706 `pseq` klCons appl_705 appl_706)+                !appl_708 <- appl_707 `pseq` klCons (Core.Types.Atom (Core.Types.UnboundSym "-->")) appl_707+                !appl_709 <- appl_702 `pseq` (appl_708 `pseq` klCons appl_702 appl_708)+                let !appl_710 = Atom Nil+                !appl_711 <- appl_709 `pseq` (appl_710 `pseq` klCons appl_709 appl_710)+                !appl_712 <- appl_711 `pseq` klCons (Core.Types.Atom (Core.Types.UnboundSym "-->")) appl_711+                !appl_713 <- appl_699 `pseq` (appl_712 `pseq` klCons appl_699 appl_712)+                appl_713 `pseq` kl_declare (ApplC (wrapNamed "filter" kl_filter)) appl_713) `catchError` (\(!kl_E) -> do return (Core.Types.Atom (Core.Types.Str "E")))+            (do let !appl_714 = Atom Nil+                !appl_715 <- appl_714 `pseq` klCons (Core.Types.Atom (Core.Types.UnboundSym "number")) appl_714+                !appl_716 <- appl_715 `pseq` klCons (Core.Types.Atom (Core.Types.UnboundSym "-->")) appl_715+                !appl_717 <- appl_716 `pseq` klCons (Core.Types.Atom (Core.Types.UnboundSym "number")) appl_716+                appl_717 `pseq` kl_declare (ApplC (wrapNamed "maxinferences" kl_maxinferences)) appl_717) `catchError` (\(!kl_E) -> do return (Core.Types.Atom (Core.Types.Str "E")))+            (do let !appl_718 = Atom Nil+                !appl_719 <- appl_718 `pseq` klCons (Core.Types.Atom (Core.Types.UnboundSym "string")) appl_718+                !appl_720 <- appl_719 `pseq` klCons (Core.Types.Atom (Core.Types.UnboundSym "-->")) appl_719+                !appl_721 <- appl_720 `pseq` klCons (Core.Types.Atom (Core.Types.UnboundSym "number")) appl_720+                appl_721 `pseq` kl_declare (ApplC (wrapNamed "n->string" nToString)) appl_721) `catchError` (\(!kl_E) -> do return (Core.Types.Atom (Core.Types.Str "E")))+            (do let !appl_722 = Atom Nil+                !appl_723 <- appl_722 `pseq` klCons (Core.Types.Atom (Core.Types.UnboundSym "number")) appl_722+                !appl_724 <- appl_723 `pseq` klCons (Core.Types.Atom (Core.Types.UnboundSym "-->")) appl_723+                !appl_725 <- appl_724 `pseq` klCons (Core.Types.Atom (Core.Types.UnboundSym "number")) appl_724+                appl_725 `pseq` kl_declare (ApplC (wrapNamed "nl" kl_nl)) appl_725) `catchError` (\(!kl_E) -> do return (Core.Types.Atom (Core.Types.Str "E")))+            (do let !appl_726 = Atom Nil+                !appl_727 <- appl_726 `pseq` klCons (Core.Types.Atom (Core.Types.UnboundSym "boolean")) appl_726+                !appl_728 <- appl_727 `pseq` klCons (Core.Types.Atom (Core.Types.UnboundSym "-->")) appl_727+                !appl_729 <- appl_728 `pseq` klCons (Core.Types.Atom (Core.Types.UnboundSym "boolean")) appl_728+                appl_729 `pseq` kl_declare (ApplC (wrapNamed "not" kl_not)) appl_729) `catchError` (\(!kl_E) -> do return (Core.Types.Atom (Core.Types.Str "E")))+            (do let !appl_730 = Atom Nil+                !appl_731 <- appl_730 `pseq` klCons (Core.Types.Atom (Core.Types.UnboundSym "A")) appl_730+                !appl_732 <- appl_731 `pseq` klCons (Core.Types.Atom (Core.Types.UnboundSym "list")) appl_731+                let !appl_733 = Atom Nil+                !appl_734 <- appl_733 `pseq` klCons (Core.Types.Atom (Core.Types.UnboundSym "A")) appl_733+                !appl_735 <- appl_734 `pseq` klCons (Core.Types.Atom (Core.Types.UnboundSym "-->")) appl_734+                !appl_736 <- appl_732 `pseq` (appl_735 `pseq` klCons appl_732 appl_735)+                let !appl_737 = Atom Nil+                !appl_738 <- appl_736 `pseq` (appl_737 `pseq` klCons appl_736 appl_737)+                !appl_739 <- appl_738 `pseq` klCons (Core.Types.Atom (Core.Types.UnboundSym "-->")) appl_738+                !appl_740 <- appl_739 `pseq` klCons (Core.Types.Atom (Core.Types.UnboundSym "number")) appl_739+                appl_740 `pseq` kl_declare (ApplC (wrapNamed "nth" kl_nth)) appl_740) `catchError` (\(!kl_E) -> do return (Core.Types.Atom (Core.Types.Str "E")))+            (do let !appl_741 = Atom Nil+                !appl_742 <- appl_741 `pseq` klCons (Core.Types.Atom (Core.Types.UnboundSym "boolean")) appl_741+                !appl_743 <- appl_742 `pseq` klCons (Core.Types.Atom (Core.Types.UnboundSym "-->")) appl_742+                !appl_744 <- appl_743 `pseq` klCons (Core.Types.Atom (Core.Types.UnboundSym "A")) appl_743+                appl_744 `pseq` kl_declare (ApplC (wrapNamed "number?" numberP)) appl_744) `catchError` (\(!kl_E) -> do return (Core.Types.Atom (Core.Types.Str "E")))+            (do let !appl_745 = Atom Nil+                !appl_746 <- appl_745 `pseq` klCons (Core.Types.Atom (Core.Types.UnboundSym "number")) appl_745+                !appl_747 <- appl_746 `pseq` klCons (Core.Types.Atom (Core.Types.UnboundSym "-->")) appl_746+                !appl_748 <- appl_747 `pseq` klCons (Core.Types.Atom (Core.Types.UnboundSym "B")) appl_747+                let !appl_749 = Atom Nil+                !appl_750 <- appl_748 `pseq` (appl_749 `pseq` klCons appl_748 appl_749)+                !appl_751 <- appl_750 `pseq` klCons (Core.Types.Atom (Core.Types.UnboundSym "-->")) appl_750+                !appl_752 <- appl_751 `pseq` klCons (Core.Types.Atom (Core.Types.UnboundSym "A")) appl_751+                appl_752 `pseq` kl_declare (ApplC (wrapNamed "occurrences" kl_occurrences)) appl_752) `catchError` (\(!kl_E) -> do return (Core.Types.Atom (Core.Types.Str "E")))+            (do let !appl_753 = Atom Nil+                !appl_754 <- appl_753 `pseq` klCons (Core.Types.Atom (Core.Types.UnboundSym "boolean")) appl_753+                !appl_755 <- appl_754 `pseq` klCons (Core.Types.Atom (Core.Types.UnboundSym "-->")) appl_754+                !appl_756 <- appl_755 `pseq` klCons (Core.Types.Atom (Core.Types.UnboundSym "symbol")) appl_755+                appl_756 `pseq` kl_declare (ApplC (wrapNamed "occurs-check" kl_occurs_check)) appl_756) `catchError` (\(!kl_E) -> do return (Core.Types.Atom (Core.Types.Str "E")))+            (do let !appl_757 = Atom Nil+                !appl_758 <- appl_757 `pseq` klCons (Core.Types.Atom (Core.Types.UnboundSym "boolean")) appl_757+                !appl_759 <- appl_758 `pseq` klCons (Core.Types.Atom (Core.Types.UnboundSym "-->")) appl_758+                !appl_760 <- appl_759 `pseq` klCons (Core.Types.Atom (Core.Types.UnboundSym "symbol")) appl_759+                appl_760 `pseq` kl_declare (ApplC (wrapNamed "optimise" kl_optimise)) appl_760) `catchError` (\(!kl_E) -> do return (Core.Types.Atom (Core.Types.Str "E")))+            (do let !appl_761 = Atom Nil+                !appl_762 <- appl_761 `pseq` klCons (Core.Types.Atom (Core.Types.UnboundSym "boolean")) appl_761+                !appl_763 <- appl_762 `pseq` klCons (Core.Types.Atom (Core.Types.UnboundSym "-->")) appl_762+                !appl_764 <- appl_763 `pseq` klCons (Core.Types.Atom (Core.Types.UnboundSym "boolean")) appl_763+                let !appl_765 = Atom Nil+                !appl_766 <- appl_764 `pseq` (appl_765 `pseq` klCons appl_764 appl_765)+                !appl_767 <- appl_766 `pseq` klCons (Core.Types.Atom (Core.Types.UnboundSym "-->")) appl_766+                !appl_768 <- appl_767 `pseq` klCons (Core.Types.Atom (Core.Types.UnboundSym "boolean")) appl_767+                appl_768 `pseq` kl_declare (Core.Types.Atom (Core.Types.UnboundSym "or")) appl_768) `catchError` (\(!kl_E) -> do return (Core.Types.Atom (Core.Types.Str "E")))+            (do let !appl_769 = Atom Nil+                !appl_770 <- appl_769 `pseq` klCons (Core.Types.Atom (Core.Types.UnboundSym "string")) appl_769+                !appl_771 <- appl_770 `pseq` klCons (Core.Types.Atom (Core.Types.UnboundSym "-->")) appl_770+                appl_771 `pseq` kl_declare (ApplC (PL "os" kl_os)) appl_771) `catchError` (\(!kl_E) -> do return (Core.Types.Atom (Core.Types.Str "E")))+            (do let !appl_772 = Atom Nil+                !appl_773 <- appl_772 `pseq` klCons (Core.Types.Atom (Core.Types.UnboundSym "boolean")) appl_772+                !appl_774 <- appl_773 `pseq` klCons (Core.Types.Atom (Core.Types.UnboundSym "-->")) appl_773+                !appl_775 <- appl_774 `pseq` klCons (Core.Types.Atom (Core.Types.UnboundSym "symbol")) appl_774+                appl_775 `pseq` kl_declare (ApplC (wrapNamed "package?" kl_packageP)) appl_775) `catchError` (\(!kl_E) -> do return (Core.Types.Atom (Core.Types.Str "E")))+            (do let !appl_776 = Atom Nil+                !appl_777 <- appl_776 `pseq` klCons (Core.Types.Atom (Core.Types.UnboundSym "string")) appl_776+                !appl_778 <- appl_777 `pseq` klCons (Core.Types.Atom (Core.Types.UnboundSym "-->")) appl_777+                appl_778 `pseq` kl_declare (ApplC (PL "port" kl_port)) appl_778) `catchError` (\(!kl_E) -> do return (Core.Types.Atom (Core.Types.Str "E")))+            (do let !appl_779 = Atom Nil+                !appl_780 <- appl_779 `pseq` klCons (Core.Types.Atom (Core.Types.UnboundSym "string")) appl_779+                !appl_781 <- appl_780 `pseq` klCons (Core.Types.Atom (Core.Types.UnboundSym "-->")) appl_780+                appl_781 `pseq` kl_declare (ApplC (PL "porters" kl_porters)) appl_781) `catchError` (\(!kl_E) -> do return (Core.Types.Atom (Core.Types.Str "E")))+            (do let !appl_782 = Atom Nil+                !appl_783 <- appl_782 `pseq` klCons (Core.Types.Atom (Core.Types.UnboundSym "string")) appl_782+                !appl_784 <- appl_783 `pseq` klCons (Core.Types.Atom (Core.Types.UnboundSym "-->")) appl_783+                !appl_785 <- appl_784 `pseq` klCons (Core.Types.Atom (Core.Types.UnboundSym "number")) appl_784+                let !appl_786 = Atom Nil+                !appl_787 <- appl_785 `pseq` (appl_786 `pseq` klCons appl_785 appl_786)+                !appl_788 <- appl_787 `pseq` klCons (Core.Types.Atom (Core.Types.UnboundSym "-->")) appl_787+                !appl_789 <- appl_788 `pseq` klCons (Core.Types.Atom (Core.Types.UnboundSym "string")) appl_788+                appl_789 `pseq` kl_declare (ApplC (wrapNamed "pos" pos)) appl_789) `catchError` (\(!kl_E) -> do return (Core.Types.Atom (Core.Types.Str "E")))+            (do let !appl_790 = Atom Nil+                !appl_791 <- appl_790 `pseq` klCons (Core.Types.Atom (Core.Types.UnboundSym "out")) appl_790+                !appl_792 <- appl_791 `pseq` klCons (Core.Types.Atom (Core.Types.UnboundSym "stream")) appl_791+                let !appl_793 = Atom Nil+                !appl_794 <- appl_793 `pseq` klCons (Core.Types.Atom (Core.Types.UnboundSym "string")) appl_793+                !appl_795 <- appl_794 `pseq` klCons (Core.Types.Atom (Core.Types.UnboundSym "-->")) appl_794+                !appl_796 <- appl_792 `pseq` (appl_795 `pseq` klCons appl_792 appl_795)+                let !appl_797 = Atom Nil+                !appl_798 <- appl_796 `pseq` (appl_797 `pseq` klCons appl_796 appl_797)+                !appl_799 <- appl_798 `pseq` klCons (Core.Types.Atom (Core.Types.UnboundSym "-->")) appl_798+                !appl_800 <- appl_799 `pseq` klCons (Core.Types.Atom (Core.Types.UnboundSym "string")) appl_799+                appl_800 `pseq` kl_declare (ApplC (wrapNamed "pr" kl_pr)) appl_800) `catchError` (\(!kl_E) -> do return (Core.Types.Atom (Core.Types.Str "E")))+            (do let !appl_801 = Atom Nil+                !appl_802 <- appl_801 `pseq` klCons (Core.Types.Atom (Core.Types.UnboundSym "A")) appl_801+                !appl_803 <- appl_802 `pseq` klCons (Core.Types.Atom (Core.Types.UnboundSym "-->")) appl_802+                !appl_804 <- appl_803 `pseq` klCons (Core.Types.Atom (Core.Types.UnboundSym "A")) appl_803+                appl_804 `pseq` kl_declare (ApplC (wrapNamed "print" kl_print)) appl_804) `catchError` (\(!kl_E) -> do return (Core.Types.Atom (Core.Types.Str "E")))+            (do let !appl_805 = Atom Nil+                !appl_806 <- appl_805 `pseq` klCons (Core.Types.Atom (Core.Types.UnboundSym "B")) appl_805+                !appl_807 <- appl_806 `pseq` klCons (Core.Types.Atom (Core.Types.UnboundSym "-->")) appl_806+                !appl_808 <- appl_807 `pseq` klCons (Core.Types.Atom (Core.Types.UnboundSym "A")) appl_807+                let !appl_809 = Atom Nil+                !appl_810 <- appl_809 `pseq` klCons (Core.Types.Atom (Core.Types.UnboundSym "B")) appl_809+                !appl_811 <- appl_810 `pseq` klCons (Core.Types.Atom (Core.Types.UnboundSym "-->")) appl_810+                !appl_812 <- appl_811 `pseq` klCons (Core.Types.Atom (Core.Types.UnboundSym "A")) appl_811+                let !appl_813 = Atom Nil+                !appl_814 <- appl_812 `pseq` (appl_813 `pseq` klCons appl_812 appl_813)+                !appl_815 <- appl_814 `pseq` klCons (Core.Types.Atom (Core.Types.UnboundSym "-->")) appl_814+                !appl_816 <- appl_808 `pseq` (appl_815 `pseq` klCons appl_808 appl_815)+                appl_816 `pseq` kl_declare (ApplC (wrapNamed "profile" kl_profile)) appl_816) `catchError` (\(!kl_E) -> do return (Core.Types.Atom (Core.Types.Str "E")))+            (do let !appl_817 = Atom Nil+                !appl_818 <- appl_817 `pseq` klCons (Core.Types.Atom (Core.Types.UnboundSym "symbol")) appl_817+                !appl_819 <- appl_818 `pseq` klCons (Core.Types.Atom (Core.Types.UnboundSym "list")) appl_818+                let !appl_820 = Atom Nil+                !appl_821 <- appl_820 `pseq` klCons (Core.Types.Atom (Core.Types.UnboundSym "symbol")) appl_820+                !appl_822 <- appl_821 `pseq` klCons (Core.Types.Atom (Core.Types.UnboundSym "list")) appl_821+                let !appl_823 = Atom Nil+                !appl_824 <- appl_822 `pseq` (appl_823 `pseq` klCons appl_822 appl_823)+                !appl_825 <- appl_824 `pseq` klCons (Core.Types.Atom (Core.Types.UnboundSym "-->")) appl_824+                !appl_826 <- appl_819 `pseq` (appl_825 `pseq` klCons appl_819 appl_825)+                appl_826 `pseq` kl_declare (ApplC (wrapNamed "preclude" kl_preclude)) appl_826) `catchError` (\(!kl_E) -> do return (Core.Types.Atom (Core.Types.Str "E")))+            (do let !appl_827 = Atom Nil+                !appl_828 <- appl_827 `pseq` klCons (Core.Types.Atom (Core.Types.UnboundSym "string")) appl_827+                !appl_829 <- appl_828 `pseq` klCons (Core.Types.Atom (Core.Types.UnboundSym "-->")) appl_828+                !appl_830 <- appl_829 `pseq` klCons (Core.Types.Atom (Core.Types.UnboundSym "string")) appl_829+                appl_830 `pseq` kl_declare (ApplC (wrapNamed "shen.proc-nl" kl_shen_proc_nl)) appl_830) `catchError` (\(!kl_E) -> do return (Core.Types.Atom (Core.Types.Str "E")))+            (do let !appl_831 = Atom Nil+                !appl_832 <- appl_831 `pseq` klCons (Core.Types.Atom (Core.Types.UnboundSym "B")) appl_831+                !appl_833 <- appl_832 `pseq` klCons (Core.Types.Atom (Core.Types.UnboundSym "-->")) appl_832+                !appl_834 <- appl_833 `pseq` klCons (Core.Types.Atom (Core.Types.UnboundSym "A")) appl_833+                let !appl_835 = Atom Nil+                !appl_836 <- appl_835 `pseq` klCons (Core.Types.Atom (Core.Types.UnboundSym "B")) appl_835+                !appl_837 <- appl_836 `pseq` klCons (Core.Types.Atom (Core.Types.UnboundSym "-->")) appl_836+                !appl_838 <- appl_837 `pseq` klCons (Core.Types.Atom (Core.Types.UnboundSym "A")) appl_837+                let !appl_839 = Atom Nil+                !appl_840 <- appl_839 `pseq` klCons (Core.Types.Atom (Core.Types.UnboundSym "number")) appl_839+                !appl_841 <- appl_840 `pseq` klCons (ApplC (wrapNamed "*" multiply)) appl_840+                !appl_842 <- appl_838 `pseq` (appl_841 `pseq` klCons appl_838 appl_841)+                let !appl_843 = Atom Nil+                !appl_844 <- appl_842 `pseq` (appl_843 `pseq` klCons appl_842 appl_843)+                !appl_845 <- appl_844 `pseq` klCons (Core.Types.Atom (Core.Types.UnboundSym "-->")) appl_844+                !appl_846 <- appl_834 `pseq` (appl_845 `pseq` klCons appl_834 appl_845)+                appl_846 `pseq` kl_declare (ApplC (wrapNamed "profile-results" kl_profile_results)) appl_846) `catchError` (\(!kl_E) -> do return (Core.Types.Atom (Core.Types.Str "E")))+            (do let !appl_847 = Atom Nil+                !appl_848 <- appl_847 `pseq` klCons (Core.Types.Atom (Core.Types.UnboundSym "symbol")) appl_847+                !appl_849 <- appl_848 `pseq` klCons (Core.Types.Atom (Core.Types.UnboundSym "-->")) appl_848+                !appl_850 <- appl_849 `pseq` klCons (Core.Types.Atom (Core.Types.UnboundSym "symbol")) appl_849+                appl_850 `pseq` kl_declare (ApplC (wrapNamed "protect" kl_protect)) appl_850) `catchError` (\(!kl_E) -> do return (Core.Types.Atom (Core.Types.Str "E")))+            (do let !appl_851 = Atom Nil+                !appl_852 <- appl_851 `pseq` klCons (Core.Types.Atom (Core.Types.UnboundSym "symbol")) appl_851+                !appl_853 <- appl_852 `pseq` klCons (Core.Types.Atom (Core.Types.UnboundSym "list")) appl_852+                let !appl_854 = Atom Nil+                !appl_855 <- appl_854 `pseq` klCons (Core.Types.Atom (Core.Types.UnboundSym "symbol")) appl_854+                !appl_856 <- appl_855 `pseq` klCons (Core.Types.Atom (Core.Types.UnboundSym "list")) appl_855+                let !appl_857 = Atom Nil+                !appl_858 <- appl_856 `pseq` (appl_857 `pseq` klCons appl_856 appl_857)+                !appl_859 <- appl_858 `pseq` klCons (Core.Types.Atom (Core.Types.UnboundSym "-->")) appl_858+                !appl_860 <- appl_853 `pseq` (appl_859 `pseq` klCons appl_853 appl_859)+                appl_860 `pseq` kl_declare (ApplC (wrapNamed "preclude-all-but" kl_preclude_all_but)) appl_860) `catchError` (\(!kl_E) -> do return (Core.Types.Atom (Core.Types.Str "E")))+            (do let !appl_861 = Atom Nil+                !appl_862 <- appl_861 `pseq` klCons (Core.Types.Atom (Core.Types.UnboundSym "out")) appl_861+                !appl_863 <- appl_862 `pseq` klCons (Core.Types.Atom (Core.Types.UnboundSym "stream")) appl_862+                let !appl_864 = Atom Nil+                !appl_865 <- appl_864 `pseq` klCons (Core.Types.Atom (Core.Types.UnboundSym "string")) appl_864+                !appl_866 <- appl_865 `pseq` klCons (Core.Types.Atom (Core.Types.UnboundSym "-->")) appl_865+                !appl_867 <- appl_863 `pseq` (appl_866 `pseq` klCons appl_863 appl_866)+                let !appl_868 = Atom Nil+                !appl_869 <- appl_867 `pseq` (appl_868 `pseq` klCons appl_867 appl_868)+                !appl_870 <- appl_869 `pseq` klCons (Core.Types.Atom (Core.Types.UnboundSym "-->")) appl_869+                !appl_871 <- appl_870 `pseq` klCons (Core.Types.Atom (Core.Types.UnboundSym "string")) appl_870+                appl_871 `pseq` kl_declare (ApplC (wrapNamed "shen.prhush" kl_shen_prhush)) appl_871) `catchError` (\(!kl_E) -> do return (Core.Types.Atom (Core.Types.Str "E")))+            (do let !appl_872 = Atom Nil+                !appl_873 <- appl_872 `pseq` klCons (Core.Types.Atom (Core.Types.UnboundSym "unit")) appl_872+                !appl_874 <- appl_873 `pseq` klCons (Core.Types.Atom (Core.Types.UnboundSym "list")) appl_873+                let !appl_875 = Atom Nil+                !appl_876 <- appl_874 `pseq` (appl_875 `pseq` klCons appl_874 appl_875)+                !appl_877 <- appl_876 `pseq` klCons (Core.Types.Atom (Core.Types.UnboundSym "-->")) appl_876+                !appl_878 <- appl_877 `pseq` klCons (Core.Types.Atom (Core.Types.UnboundSym "symbol")) appl_877+                appl_878 `pseq` kl_declare (ApplC (wrapNamed "ps" kl_ps)) appl_878) `catchError` (\(!kl_E) -> do return (Core.Types.Atom (Core.Types.Str "E")))+            (do let !appl_879 = Atom Nil+                !appl_880 <- appl_879 `pseq` klCons (Core.Types.Atom (Core.Types.UnboundSym "in")) appl_879+                !appl_881 <- appl_880 `pseq` klCons (Core.Types.Atom (Core.Types.UnboundSym "stream")) appl_880+                let !appl_882 = Atom Nil+                !appl_883 <- appl_882 `pseq` klCons (Core.Types.Atom (Core.Types.UnboundSym "unit")) appl_882+                !appl_884 <- appl_883 `pseq` klCons (Core.Types.Atom (Core.Types.UnboundSym "-->")) appl_883+                !appl_885 <- appl_881 `pseq` (appl_884 `pseq` klCons appl_881 appl_884)+                appl_885 `pseq` kl_declare (ApplC (wrapNamed "read" kl_read)) appl_885) `catchError` (\(!kl_E) -> do return (Core.Types.Atom (Core.Types.Str "E")))+            (do let !appl_886 = Atom Nil+                !appl_887 <- appl_886 `pseq` klCons (Core.Types.Atom (Core.Types.UnboundSym "in")) appl_886+                !appl_888 <- appl_887 `pseq` klCons (Core.Types.Atom (Core.Types.UnboundSym "stream")) appl_887+                let !appl_889 = Atom Nil+                !appl_890 <- appl_889 `pseq` klCons (Core.Types.Atom (Core.Types.UnboundSym "number")) appl_889+                !appl_891 <- appl_890 `pseq` klCons (Core.Types.Atom (Core.Types.UnboundSym "-->")) appl_890+                !appl_892 <- appl_888 `pseq` (appl_891 `pseq` klCons appl_888 appl_891)+                appl_892 `pseq` kl_declare (ApplC (wrapNamed "read-byte" readByte)) appl_892) `catchError` (\(!kl_E) -> do return (Core.Types.Atom (Core.Types.Str "E")))+            (do let !appl_893 = Atom Nil+                !appl_894 <- appl_893 `pseq` klCons (Core.Types.Atom (Core.Types.UnboundSym "in")) appl_893+                !appl_895 <- appl_894 `pseq` klCons (Core.Types.Atom (Core.Types.UnboundSym "stream")) appl_894+                let !appl_896 = Atom Nil+                !appl_897 <- appl_896 `pseq` klCons (Core.Types.Atom (Core.Types.UnboundSym "number")) appl_896+                !appl_898 <- appl_897 `pseq` klCons (Core.Types.Atom (Core.Types.UnboundSym "-->")) appl_897+                !appl_899 <- appl_895 `pseq` (appl_898 `pseq` klCons appl_895 appl_898)+                appl_899 `pseq` kl_declare (ApplC (wrapNamed "read-char-code" kl_read_char_code)) appl_899) `catchError` (\(!kl_E) -> do return (Core.Types.Atom (Core.Types.Str "E")))+            (do let !appl_900 = Atom Nil+                !appl_901 <- appl_900 `pseq` klCons (Core.Types.Atom (Core.Types.UnboundSym "number")) appl_900+                !appl_902 <- appl_901 `pseq` klCons (Core.Types.Atom (Core.Types.UnboundSym "list")) appl_901+                let !appl_903 = Atom Nil+                !appl_904 <- appl_902 `pseq` (appl_903 `pseq` klCons appl_902 appl_903)+                !appl_905 <- appl_904 `pseq` klCons (Core.Types.Atom (Core.Types.UnboundSym "-->")) appl_904+                !appl_906 <- appl_905 `pseq` klCons (Core.Types.Atom (Core.Types.UnboundSym "string")) appl_905+                appl_906 `pseq` kl_declare (ApplC (wrapNamed "read-file-as-bytelist" kl_read_file_as_bytelist)) appl_906) `catchError` (\(!kl_E) -> do return (Core.Types.Atom (Core.Types.Str "E")))+            (do let !appl_907 = Atom Nil+                !appl_908 <- appl_907 `pseq` klCons (Core.Types.Atom (Core.Types.UnboundSym "number")) appl_907+                !appl_909 <- appl_908 `pseq` klCons (Core.Types.Atom (Core.Types.UnboundSym "list")) appl_908+                let !appl_910 = Atom Nil+                !appl_911 <- appl_909 `pseq` (appl_910 `pseq` klCons appl_909 appl_910)+                !appl_912 <- appl_911 `pseq` klCons (Core.Types.Atom (Core.Types.UnboundSym "-->")) appl_911+                !appl_913 <- appl_912 `pseq` klCons (Core.Types.Atom (Core.Types.UnboundSym "string")) appl_912+                appl_913 `pseq` kl_declare (ApplC (wrapNamed "read-file-as-charlist" kl_read_file_as_charlist)) appl_913) `catchError` (\(!kl_E) -> do return (Core.Types.Atom (Core.Types.Str "E")))+            (do let !appl_914 = Atom Nil+                !appl_915 <- appl_914 `pseq` klCons (Core.Types.Atom (Core.Types.UnboundSym "string")) appl_914+                !appl_916 <- appl_915 `pseq` klCons (Core.Types.Atom (Core.Types.UnboundSym "-->")) appl_915+                !appl_917 <- appl_916 `pseq` klCons (Core.Types.Atom (Core.Types.UnboundSym "string")) appl_916+                appl_917 `pseq` kl_declare (ApplC (wrapNamed "read-file-as-string" kl_read_file_as_string)) appl_917) `catchError` (\(!kl_E) -> do return (Core.Types.Atom (Core.Types.Str "E")))+            (do let !appl_918 = Atom Nil+                !appl_919 <- appl_918 `pseq` klCons (Core.Types.Atom (Core.Types.UnboundSym "unit")) appl_918+                !appl_920 <- appl_919 `pseq` klCons (Core.Types.Atom (Core.Types.UnboundSym "list")) appl_919+                let !appl_921 = Atom Nil+                !appl_922 <- appl_920 `pseq` (appl_921 `pseq` klCons appl_920 appl_921)+                !appl_923 <- appl_922 `pseq` klCons (Core.Types.Atom (Core.Types.UnboundSym "-->")) appl_922+                !appl_924 <- appl_923 `pseq` klCons (Core.Types.Atom (Core.Types.UnboundSym "string")) appl_923+                appl_924 `pseq` kl_declare (ApplC (wrapNamed "read-file" kl_read_file)) appl_924) `catchError` (\(!kl_E) -> do return (Core.Types.Atom (Core.Types.Str "E")))+            (do let !appl_925 = Atom Nil+                !appl_926 <- appl_925 `pseq` klCons (Core.Types.Atom (Core.Types.UnboundSym "unit")) appl_925+                !appl_927 <- appl_926 `pseq` klCons (Core.Types.Atom (Core.Types.UnboundSym "list")) appl_926+                let !appl_928 = Atom Nil+                !appl_929 <- appl_927 `pseq` (appl_928 `pseq` klCons appl_927 appl_928)+                !appl_930 <- appl_929 `pseq` klCons (Core.Types.Atom (Core.Types.UnboundSym "-->")) appl_929+                !appl_931 <- appl_930 `pseq` klCons (Core.Types.Atom (Core.Types.UnboundSym "string")) appl_930+                appl_931 `pseq` kl_declare (ApplC (wrapNamed "read-from-string" kl_read_from_string)) appl_931) `catchError` (\(!kl_E) -> do return (Core.Types.Atom (Core.Types.Str "E")))+            (do let !appl_932 = Atom Nil+                !appl_933 <- appl_932 `pseq` klCons (Core.Types.Atom (Core.Types.UnboundSym "string")) appl_932+                !appl_934 <- appl_933 `pseq` klCons (Core.Types.Atom (Core.Types.UnboundSym "-->")) appl_933+                appl_934 `pseq` kl_declare (ApplC (PL "release" kl_release)) appl_934) `catchError` (\(!kl_E) -> do return (Core.Types.Atom (Core.Types.Str "E")))+            (do let !appl_935 = Atom Nil+                !appl_936 <- appl_935 `pseq` klCons (Core.Types.Atom (Core.Types.UnboundSym "A")) appl_935+                !appl_937 <- appl_936 `pseq` klCons (Core.Types.Atom (Core.Types.UnboundSym "list")) appl_936+                let !appl_938 = Atom Nil+                !appl_939 <- appl_938 `pseq` klCons (Core.Types.Atom (Core.Types.UnboundSym "A")) appl_938+                !appl_940 <- appl_939 `pseq` klCons (Core.Types.Atom (Core.Types.UnboundSym "list")) appl_939+                let !appl_941 = Atom Nil+                !appl_942 <- appl_940 `pseq` (appl_941 `pseq` klCons appl_940 appl_941)+                !appl_943 <- appl_942 `pseq` klCons (Core.Types.Atom (Core.Types.UnboundSym "-->")) appl_942+                !appl_944 <- appl_937 `pseq` (appl_943 `pseq` klCons appl_937 appl_943)+                let !appl_945 = Atom Nil+                !appl_946 <- appl_944 `pseq` (appl_945 `pseq` klCons appl_944 appl_945)+                !appl_947 <- appl_946 `pseq` klCons (Core.Types.Atom (Core.Types.UnboundSym "-->")) appl_946+                !appl_948 <- appl_947 `pseq` klCons (Core.Types.Atom (Core.Types.UnboundSym "A")) appl_947+                appl_948 `pseq` kl_declare (ApplC (wrapNamed "remove" kl_remove)) appl_948) `catchError` (\(!kl_E) -> do return (Core.Types.Atom (Core.Types.Str "E")))+            (do let !appl_949 = Atom Nil+                !appl_950 <- appl_949 `pseq` klCons (Core.Types.Atom (Core.Types.UnboundSym "A")) appl_949+                !appl_951 <- appl_950 `pseq` klCons (Core.Types.Atom (Core.Types.UnboundSym "list")) appl_950+                let !appl_952 = Atom Nil+                !appl_953 <- appl_952 `pseq` klCons (Core.Types.Atom (Core.Types.UnboundSym "A")) appl_952+                !appl_954 <- appl_953 `pseq` klCons (Core.Types.Atom (Core.Types.UnboundSym "list")) appl_953+                let !appl_955 = Atom Nil+                !appl_956 <- appl_954 `pseq` (appl_955 `pseq` klCons appl_954 appl_955)+                !appl_957 <- appl_956 `pseq` klCons (Core.Types.Atom (Core.Types.UnboundSym "-->")) appl_956+                !appl_958 <- appl_951 `pseq` (appl_957 `pseq` klCons appl_951 appl_957)+                appl_958 `pseq` kl_declare (ApplC (wrapNamed "reverse" kl_reverse)) appl_958) `catchError` (\(!kl_E) -> do return (Core.Types.Atom (Core.Types.Str "E")))+            (do let !appl_959 = Atom Nil+                !appl_960 <- appl_959 `pseq` klCons (Core.Types.Atom (Core.Types.UnboundSym "A")) appl_959+                !appl_961 <- appl_960 `pseq` klCons (Core.Types.Atom (Core.Types.UnboundSym "-->")) appl_960+                !appl_962 <- appl_961 `pseq` klCons (Core.Types.Atom (Core.Types.UnboundSym "string")) appl_961+                appl_962 `pseq` kl_declare (ApplC (wrapNamed "simple-error" simpleError)) appl_962) `catchError` (\(!kl_E) -> do return (Core.Types.Atom (Core.Types.Str "E")))+            (do let !appl_963 = Atom Nil+                !appl_964 <- appl_963 `pseq` klCons (Core.Types.Atom (Core.Types.UnboundSym "B")) appl_963+                !appl_965 <- appl_964 `pseq` klCons (ApplC (wrapNamed "*" multiply)) appl_964+                !appl_966 <- appl_965 `pseq` klCons (Core.Types.Atom (Core.Types.UnboundSym "A")) appl_965+                let !appl_967 = Atom Nil+                !appl_968 <- appl_967 `pseq` klCons (Core.Types.Atom (Core.Types.UnboundSym "B")) appl_967+                !appl_969 <- appl_968 `pseq` klCons (Core.Types.Atom (Core.Types.UnboundSym "-->")) appl_968+                !appl_970 <- appl_966 `pseq` (appl_969 `pseq` klCons appl_966 appl_969)+                appl_970 `pseq` kl_declare (ApplC (wrapNamed "snd" kl_snd)) appl_970) `catchError` (\(!kl_E) -> do return (Core.Types.Atom (Core.Types.Str "E")))+            (do let !appl_971 = Atom Nil+                !appl_972 <- appl_971 `pseq` klCons (Core.Types.Atom (Core.Types.UnboundSym "symbol")) appl_971+                !appl_973 <- appl_972 `pseq` klCons (Core.Types.Atom (Core.Types.UnboundSym "-->")) appl_972+                !appl_974 <- appl_973 `pseq` klCons (Core.Types.Atom (Core.Types.UnboundSym "symbol")) appl_973+                appl_974 `pseq` kl_declare (ApplC (wrapNamed "specialise" kl_specialise)) appl_974) `catchError` (\(!kl_E) -> do return (Core.Types.Atom (Core.Types.Str "E")))+            (do let !appl_975 = Atom Nil+                !appl_976 <- appl_975 `pseq` klCons (Core.Types.Atom (Core.Types.UnboundSym "boolean")) appl_975+                !appl_977 <- appl_976 `pseq` klCons (Core.Types.Atom (Core.Types.UnboundSym "-->")) appl_976+                !appl_978 <- appl_977 `pseq` klCons (Core.Types.Atom (Core.Types.UnboundSym "symbol")) appl_977+                appl_978 `pseq` kl_declare (ApplC (wrapNamed "spy" kl_spy)) appl_978) `catchError` (\(!kl_E) -> do return (Core.Types.Atom (Core.Types.Str "E")))+            (do let !appl_979 = Atom Nil+                !appl_980 <- appl_979 `pseq` klCons (Core.Types.Atom (Core.Types.UnboundSym "boolean")) appl_979+                !appl_981 <- appl_980 `pseq` klCons (Core.Types.Atom (Core.Types.UnboundSym "-->")) appl_980+                !appl_982 <- appl_981 `pseq` klCons (Core.Types.Atom (Core.Types.UnboundSym "symbol")) appl_981+                appl_982 `pseq` kl_declare (ApplC (wrapNamed "step" kl_step)) appl_982) `catchError` (\(!kl_E) -> do return (Core.Types.Atom (Core.Types.Str "E")))+            (do let !appl_983 = Atom Nil+                !appl_984 <- appl_983 `pseq` klCons (Core.Types.Atom (Core.Types.UnboundSym "in")) appl_983+                !appl_985 <- appl_984 `pseq` klCons (Core.Types.Atom (Core.Types.UnboundSym "stream")) appl_984+                let !appl_986 = Atom Nil+                !appl_987 <- appl_985 `pseq` (appl_986 `pseq` klCons appl_985 appl_986)+                !appl_988 <- appl_987 `pseq` klCons (Core.Types.Atom (Core.Types.UnboundSym "-->")) appl_987+                appl_988 `pseq` kl_declare (ApplC (PL "stinput" kl_stinput)) appl_988) `catchError` (\(!kl_E) -> do return (Core.Types.Atom (Core.Types.Str "E")))+            (do let !appl_989 = Atom Nil+                !appl_990 <- appl_989 `pseq` klCons (Core.Types.Atom (Core.Types.UnboundSym "out")) appl_989+                !appl_991 <- appl_990 `pseq` klCons (Core.Types.Atom (Core.Types.UnboundSym "stream")) appl_990+                let !appl_992 = Atom Nil+                !appl_993 <- appl_991 `pseq` (appl_992 `pseq` klCons appl_991 appl_992)+                !appl_994 <- appl_993 `pseq` klCons (Core.Types.Atom (Core.Types.UnboundSym "-->")) appl_993+                appl_994 `pseq` kl_declare (ApplC (PL "sterror" kl_sterror)) appl_994) `catchError` (\(!kl_E) -> do return (Core.Types.Atom (Core.Types.Str "E")))+            (do let !appl_995 = Atom Nil+                !appl_996 <- appl_995 `pseq` klCons (Core.Types.Atom (Core.Types.UnboundSym "out")) appl_995+                !appl_997 <- appl_996 `pseq` klCons (Core.Types.Atom (Core.Types.UnboundSym "stream")) appl_996+                let !appl_998 = Atom Nil+                !appl_999 <- appl_997 `pseq` (appl_998 `pseq` klCons appl_997 appl_998)+                !appl_1000 <- appl_999 `pseq` klCons (Core.Types.Atom (Core.Types.UnboundSym "-->")) appl_999+                appl_1000 `pseq` kl_declare (ApplC (PL "stoutput" kl_stoutput)) appl_1000) `catchError` (\(!kl_E) -> do return (Core.Types.Atom (Core.Types.Str "E")))+            (do let !appl_1001 = Atom Nil+                !appl_1002 <- appl_1001 `pseq` klCons (Core.Types.Atom (Core.Types.UnboundSym "boolean")) appl_1001+                !appl_1003 <- appl_1002 `pseq` klCons (Core.Types.Atom (Core.Types.UnboundSym "-->")) appl_1002+                !appl_1004 <- appl_1003 `pseq` klCons (Core.Types.Atom (Core.Types.UnboundSym "A")) appl_1003+                appl_1004 `pseq` kl_declare (ApplC (wrapNamed "string?" stringP)) appl_1004) `catchError` (\(!kl_E) -> do return (Core.Types.Atom (Core.Types.Str "E")))+            (do let !appl_1005 = Atom Nil+                !appl_1006 <- appl_1005 `pseq` klCons (Core.Types.Atom (Core.Types.UnboundSym "string")) appl_1005+                !appl_1007 <- appl_1006 `pseq` klCons (Core.Types.Atom (Core.Types.UnboundSym "-->")) appl_1006+                !appl_1008 <- appl_1007 `pseq` klCons (Core.Types.Atom (Core.Types.UnboundSym "A")) appl_1007+                appl_1008 `pseq` kl_declare (ApplC (wrapNamed "str" str)) appl_1008) `catchError` (\(!kl_E) -> do return (Core.Types.Atom (Core.Types.Str "E")))+            (do let !appl_1009 = Atom Nil+                !appl_1010 <- appl_1009 `pseq` klCons (Core.Types.Atom (Core.Types.UnboundSym "number")) appl_1009+                !appl_1011 <- appl_1010 `pseq` klCons (Core.Types.Atom (Core.Types.UnboundSym "-->")) appl_1010+                !appl_1012 <- appl_1011 `pseq` klCons (Core.Types.Atom (Core.Types.UnboundSym "string")) appl_1011+                appl_1012 `pseq` kl_declare (ApplC (wrapNamed "string->n" stringToN)) appl_1012) `catchError` (\(!kl_E) -> do return (Core.Types.Atom (Core.Types.Str "E")))+            (do let !appl_1013 = Atom Nil+                !appl_1014 <- appl_1013 `pseq` klCons (Core.Types.Atom (Core.Types.UnboundSym "symbol")) appl_1013+                !appl_1015 <- appl_1014 `pseq` klCons (Core.Types.Atom (Core.Types.UnboundSym "-->")) appl_1014+                !appl_1016 <- appl_1015 `pseq` klCons (Core.Types.Atom (Core.Types.UnboundSym "string")) appl_1015+                appl_1016 `pseq` kl_declare (ApplC (wrapNamed "string->symbol" kl_string_RBsymbol)) appl_1016) `catchError` (\(!kl_E) -> do return (Core.Types.Atom (Core.Types.Str "E")))+            (do let !appl_1017 = Atom Nil+                !appl_1018 <- appl_1017 `pseq` klCons (Core.Types.Atom (Core.Types.UnboundSym "number")) appl_1017+                !appl_1019 <- appl_1018 `pseq` klCons (Core.Types.Atom (Core.Types.UnboundSym "list")) appl_1018+                let !appl_1020 = Atom Nil+                !appl_1021 <- appl_1020 `pseq` klCons (Core.Types.Atom (Core.Types.UnboundSym "number")) appl_1020+                !appl_1022 <- appl_1021 `pseq` klCons (Core.Types.Atom (Core.Types.UnboundSym "-->")) appl_1021+                !appl_1023 <- appl_1019 `pseq` (appl_1022 `pseq` klCons appl_1019 appl_1022)+                appl_1023 `pseq` kl_declare (ApplC (wrapNamed "sum" kl_sum)) appl_1023) `catchError` (\(!kl_E) -> do return (Core.Types.Atom (Core.Types.Str "E")))+            (do let !appl_1024 = Atom Nil+                !appl_1025 <- appl_1024 `pseq` klCons (Core.Types.Atom (Core.Types.UnboundSym "boolean")) appl_1024+                !appl_1026 <- appl_1025 `pseq` klCons (Core.Types.Atom (Core.Types.UnboundSym "-->")) appl_1025+                !appl_1027 <- appl_1026 `pseq` klCons (Core.Types.Atom (Core.Types.UnboundSym "A")) appl_1026+                appl_1027 `pseq` kl_declare (ApplC (wrapNamed "symbol?" kl_symbolP)) appl_1027) `catchError` (\(!kl_E) -> do return (Core.Types.Atom (Core.Types.Str "E")))+            (do let !appl_1028 = Atom Nil+                !appl_1029 <- appl_1028 `pseq` klCons (Core.Types.Atom (Core.Types.UnboundSym "symbol")) appl_1028+                !appl_1030 <- appl_1029 `pseq` klCons (Core.Types.Atom (Core.Types.UnboundSym "-->")) appl_1029+                !appl_1031 <- appl_1030 `pseq` klCons (Core.Types.Atom (Core.Types.UnboundSym "symbol")) appl_1030+                appl_1031 `pseq` kl_declare (ApplC (wrapNamed "systemf" kl_systemf)) appl_1031) `catchError` (\(!kl_E) -> do return (Core.Types.Atom (Core.Types.Str "E")))+            (do let !appl_1032 = Atom Nil+                !appl_1033 <- appl_1032 `pseq` klCons (Core.Types.Atom (Core.Types.UnboundSym "A")) appl_1032+                !appl_1034 <- appl_1033 `pseq` klCons (Core.Types.Atom (Core.Types.UnboundSym "list")) appl_1033+                let !appl_1035 = Atom Nil+                !appl_1036 <- appl_1035 `pseq` klCons (Core.Types.Atom (Core.Types.UnboundSym "A")) appl_1035+                !appl_1037 <- appl_1036 `pseq` klCons (Core.Types.Atom (Core.Types.UnboundSym "list")) appl_1036+                let !appl_1038 = Atom Nil+                !appl_1039 <- appl_1037 `pseq` (appl_1038 `pseq` klCons appl_1037 appl_1038)+                !appl_1040 <- appl_1039 `pseq` klCons (Core.Types.Atom (Core.Types.UnboundSym "-->")) appl_1039+                !appl_1041 <- appl_1034 `pseq` (appl_1040 `pseq` klCons appl_1034 appl_1040)+                appl_1041 `pseq` kl_declare (ApplC (wrapNamed "tail" kl_tail)) appl_1041) `catchError` (\(!kl_E) -> do return (Core.Types.Atom (Core.Types.Str "E")))+            (do let !appl_1042 = Atom Nil+                !appl_1043 <- appl_1042 `pseq` klCons (Core.Types.Atom (Core.Types.UnboundSym "string")) appl_1042+                !appl_1044 <- appl_1043 `pseq` klCons (Core.Types.Atom (Core.Types.UnboundSym "-->")) appl_1043+                !appl_1045 <- appl_1044 `pseq` klCons (Core.Types.Atom (Core.Types.UnboundSym "string")) appl_1044+                appl_1045 `pseq` kl_declare (ApplC (wrapNamed "tlstr" tlstr)) appl_1045) `catchError` (\(!kl_E) -> do return (Core.Types.Atom (Core.Types.Str "E")))+            (do let !appl_1046 = Atom Nil+                !appl_1047 <- appl_1046 `pseq` klCons (Core.Types.Atom (Core.Types.UnboundSym "A")) appl_1046+                !appl_1048 <- appl_1047 `pseq` klCons (ApplC (wrapNamed "vector" kl_vector)) appl_1047+                let !appl_1049 = Atom Nil+                !appl_1050 <- appl_1049 `pseq` klCons (Core.Types.Atom (Core.Types.UnboundSym "A")) appl_1049+                !appl_1051 <- appl_1050 `pseq` klCons (ApplC (wrapNamed "vector" kl_vector)) appl_1050+                let !appl_1052 = Atom Nil+                !appl_1053 <- appl_1051 `pseq` (appl_1052 `pseq` klCons appl_1051 appl_1052)+                !appl_1054 <- appl_1053 `pseq` klCons (Core.Types.Atom (Core.Types.UnboundSym "-->")) appl_1053+                !appl_1055 <- appl_1048 `pseq` (appl_1054 `pseq` klCons appl_1048 appl_1054)+                appl_1055 `pseq` kl_declare (ApplC (wrapNamed "tlv" kl_tlv)) appl_1055) `catchError` (\(!kl_E) -> do return (Core.Types.Atom (Core.Types.Str "E")))+            (do let !appl_1056 = Atom Nil+                !appl_1057 <- appl_1056 `pseq` klCons (Core.Types.Atom (Core.Types.UnboundSym "boolean")) appl_1056+                !appl_1058 <- appl_1057 `pseq` klCons (Core.Types.Atom (Core.Types.UnboundSym "-->")) appl_1057+                !appl_1059 <- appl_1058 `pseq` klCons (Core.Types.Atom (Core.Types.UnboundSym "symbol")) appl_1058+                appl_1059 `pseq` kl_declare (ApplC (wrapNamed "tc" kl_tc)) appl_1059) `catchError` (\(!kl_E) -> do return (Core.Types.Atom (Core.Types.Str "E")))+            (do let !appl_1060 = Atom Nil+                !appl_1061 <- appl_1060 `pseq` klCons (Core.Types.Atom (Core.Types.UnboundSym "boolean")) appl_1060+                !appl_1062 <- appl_1061 `pseq` klCons (Core.Types.Atom (Core.Types.UnboundSym "-->")) appl_1061+                appl_1062 `pseq` kl_declare (ApplC (PL "tc?" kl_tcP)) appl_1062) `catchError` (\(!kl_E) -> do return (Core.Types.Atom (Core.Types.Str "E")))+            (do let !appl_1063 = Atom Nil+                !appl_1064 <- appl_1063 `pseq` klCons (Core.Types.Atom (Core.Types.UnboundSym "A")) appl_1063+                !appl_1065 <- appl_1064 `pseq` klCons (Core.Types.Atom (Core.Types.UnboundSym "lazy")) appl_1064+                let !appl_1066 = Atom Nil+                !appl_1067 <- appl_1066 `pseq` klCons (Core.Types.Atom (Core.Types.UnboundSym "A")) appl_1066+                !appl_1068 <- appl_1067 `pseq` klCons (Core.Types.Atom (Core.Types.UnboundSym "-->")) appl_1067+                !appl_1069 <- appl_1065 `pseq` (appl_1068 `pseq` klCons appl_1065 appl_1068)+                appl_1069 `pseq` kl_declare (ApplC (wrapNamed "thaw" kl_thaw)) appl_1069) `catchError` (\(!kl_E) -> do return (Core.Types.Atom (Core.Types.Str "E")))+            (do let !appl_1070 = Atom Nil+                !appl_1071 <- appl_1070 `pseq` klCons (Core.Types.Atom (Core.Types.UnboundSym "symbol")) appl_1070+                !appl_1072 <- appl_1071 `pseq` klCons (Core.Types.Atom (Core.Types.UnboundSym "-->")) appl_1071+                !appl_1073 <- appl_1072 `pseq` klCons (Core.Types.Atom (Core.Types.UnboundSym "symbol")) appl_1072+                appl_1073 `pseq` kl_declare (ApplC (wrapNamed "track" kl_track)) appl_1073) `catchError` (\(!kl_E) -> do return (Core.Types.Atom (Core.Types.Str "E")))+            (do let !appl_1074 = Atom Nil+                !appl_1075 <- appl_1074 `pseq` klCons (Core.Types.Atom (Core.Types.UnboundSym "A")) appl_1074+                !appl_1076 <- appl_1075 `pseq` klCons (Core.Types.Atom (Core.Types.UnboundSym "-->")) appl_1075+                !appl_1077 <- appl_1076 `pseq` klCons (Core.Types.Atom (Core.Types.UnboundSym "exception")) appl_1076+                let !appl_1078 = Atom Nil+                !appl_1079 <- appl_1078 `pseq` klCons (Core.Types.Atom (Core.Types.UnboundSym "A")) appl_1078+                !appl_1080 <- appl_1079 `pseq` klCons (Core.Types.Atom (Core.Types.UnboundSym "-->")) appl_1079+                !appl_1081 <- appl_1077 `pseq` (appl_1080 `pseq` klCons appl_1077 appl_1080)+                let !appl_1082 = Atom Nil+                !appl_1083 <- appl_1081 `pseq` (appl_1082 `pseq` klCons appl_1081 appl_1082)+                !appl_1084 <- appl_1083 `pseq` klCons (Core.Types.Atom (Core.Types.UnboundSym "-->")) appl_1083+                !appl_1085 <- appl_1084 `pseq` klCons (Core.Types.Atom (Core.Types.UnboundSym "A")) appl_1084+                appl_1085 `pseq` kl_declare (Core.Types.Atom (Core.Types.UnboundSym "trap-error")) appl_1085) `catchError` (\(!kl_E) -> do return (Core.Types.Atom (Core.Types.Str "E")))+            (do let !appl_1086 = Atom Nil+                !appl_1087 <- appl_1086 `pseq` klCons (Core.Types.Atom (Core.Types.UnboundSym "boolean")) appl_1086+                !appl_1088 <- appl_1087 `pseq` klCons (Core.Types.Atom (Core.Types.UnboundSym "-->")) appl_1087+                !appl_1089 <- appl_1088 `pseq` klCons (Core.Types.Atom (Core.Types.UnboundSym "A")) appl_1088+                appl_1089 `pseq` kl_declare (ApplC (wrapNamed "tuple?" kl_tupleP)) appl_1089) `catchError` (\(!kl_E) -> do return (Core.Types.Atom (Core.Types.Str "E")))+            (do let !appl_1090 = Atom Nil+                !appl_1091 <- appl_1090 `pseq` klCons (Core.Types.Atom (Core.Types.UnboundSym "symbol")) appl_1090+                !appl_1092 <- appl_1091 `pseq` klCons (Core.Types.Atom (Core.Types.UnboundSym "-->")) appl_1091+                !appl_1093 <- appl_1092 `pseq` klCons (Core.Types.Atom (Core.Types.UnboundSym "symbol")) appl_1092+                appl_1093 `pseq` kl_declare (ApplC (wrapNamed "undefmacro" kl_undefmacro)) appl_1093) `catchError` (\(!kl_E) -> do return (Core.Types.Atom (Core.Types.Str "E")))+            (do let !appl_1094 = Atom Nil+                !appl_1095 <- appl_1094 `pseq` klCons (Core.Types.Atom (Core.Types.UnboundSym "A")) appl_1094+                !appl_1096 <- appl_1095 `pseq` klCons (Core.Types.Atom (Core.Types.UnboundSym "list")) appl_1095+                let !appl_1097 = Atom Nil+                !appl_1098 <- appl_1097 `pseq` klCons (Core.Types.Atom (Core.Types.UnboundSym "A")) appl_1097+                !appl_1099 <- appl_1098 `pseq` klCons (Core.Types.Atom (Core.Types.UnboundSym "list")) appl_1098+                let !appl_1100 = Atom Nil+                !appl_1101 <- appl_1100 `pseq` klCons (Core.Types.Atom (Core.Types.UnboundSym "A")) appl_1100+                !appl_1102 <- appl_1101 `pseq` klCons (Core.Types.Atom (Core.Types.UnboundSym "list")) appl_1101+                let !appl_1103 = Atom Nil+                !appl_1104 <- appl_1102 `pseq` (appl_1103 `pseq` klCons appl_1102 appl_1103)+                !appl_1105 <- appl_1104 `pseq` klCons (Core.Types.Atom (Core.Types.UnboundSym "-->")) appl_1104+                !appl_1106 <- appl_1099 `pseq` (appl_1105 `pseq` klCons appl_1099 appl_1105)+                let !appl_1107 = Atom Nil+                !appl_1108 <- appl_1106 `pseq` (appl_1107 `pseq` klCons appl_1106 appl_1107)+                !appl_1109 <- appl_1108 `pseq` klCons (Core.Types.Atom (Core.Types.UnboundSym "-->")) appl_1108+                !appl_1110 <- appl_1096 `pseq` (appl_1109 `pseq` klCons appl_1096 appl_1109)+                appl_1110 `pseq` kl_declare (ApplC (wrapNamed "union" kl_union)) appl_1110) `catchError` (\(!kl_E) -> do return (Core.Types.Atom (Core.Types.Str "E")))+            (do let !appl_1111 = Atom Nil+                !appl_1112 <- appl_1111 `pseq` klCons (Core.Types.Atom (Core.Types.UnboundSym "B")) appl_1111+                !appl_1113 <- appl_1112 `pseq` klCons (Core.Types.Atom (Core.Types.UnboundSym "-->")) appl_1112+                !appl_1114 <- appl_1113 `pseq` klCons (Core.Types.Atom (Core.Types.UnboundSym "A")) appl_1113+                let !appl_1115 = Atom Nil+                !appl_1116 <- appl_1115 `pseq` klCons (Core.Types.Atom (Core.Types.UnboundSym "B")) appl_1115+                !appl_1117 <- appl_1116 `pseq` klCons (Core.Types.Atom (Core.Types.UnboundSym "-->")) appl_1116+                !appl_1118 <- appl_1117 `pseq` klCons (Core.Types.Atom (Core.Types.UnboundSym "A")) appl_1117+                let !appl_1119 = Atom Nil+                !appl_1120 <- appl_1118 `pseq` (appl_1119 `pseq` klCons appl_1118 appl_1119)+                !appl_1121 <- appl_1120 `pseq` klCons (Core.Types.Atom (Core.Types.UnboundSym "-->")) appl_1120+                !appl_1122 <- appl_1114 `pseq` (appl_1121 `pseq` klCons appl_1114 appl_1121)+                appl_1122 `pseq` kl_declare (ApplC (wrapNamed "unprofile" kl_unprofile)) appl_1122) `catchError` (\(!kl_E) -> do return (Core.Types.Atom (Core.Types.Str "E")))+            (do let !appl_1123 = Atom Nil+                !appl_1124 <- appl_1123 `pseq` klCons (Core.Types.Atom (Core.Types.UnboundSym "symbol")) appl_1123+                !appl_1125 <- appl_1124 `pseq` klCons (Core.Types.Atom (Core.Types.UnboundSym "-->")) appl_1124+                !appl_1126 <- appl_1125 `pseq` klCons (Core.Types.Atom (Core.Types.UnboundSym "symbol")) appl_1125+                appl_1126 `pseq` kl_declare (ApplC (wrapNamed "untrack" kl_untrack)) appl_1126) `catchError` (\(!kl_E) -> do return (Core.Types.Atom (Core.Types.Str "E")))+            (do let !appl_1127 = Atom Nil+                !appl_1128 <- appl_1127 `pseq` klCons (Core.Types.Atom (Core.Types.UnboundSym "symbol")) appl_1127+                !appl_1129 <- appl_1128 `pseq` klCons (Core.Types.Atom (Core.Types.UnboundSym "-->")) appl_1128+                !appl_1130 <- appl_1129 `pseq` klCons (Core.Types.Atom (Core.Types.UnboundSym "symbol")) appl_1129+                appl_1130 `pseq` kl_declare (ApplC (wrapNamed "unspecialise" kl_unspecialise)) appl_1130) `catchError` (\(!kl_E) -> do return (Core.Types.Atom (Core.Types.Str "E")))+            (do let !appl_1131 = Atom Nil+                !appl_1132 <- appl_1131 `pseq` klCons (Core.Types.Atom (Core.Types.UnboundSym "boolean")) appl_1131+                !appl_1133 <- appl_1132 `pseq` klCons (Core.Types.Atom (Core.Types.UnboundSym "-->")) appl_1132+                !appl_1134 <- appl_1133 `pseq` klCons (Core.Types.Atom (Core.Types.UnboundSym "A")) appl_1133+                appl_1134 `pseq` kl_declare (ApplC (wrapNamed "variable?" kl_variableP)) appl_1134) `catchError` (\(!kl_E) -> do return (Core.Types.Atom (Core.Types.Str "E")))+            (do let !appl_1135 = Atom Nil+                !appl_1136 <- appl_1135 `pseq` klCons (Core.Types.Atom (Core.Types.UnboundSym "boolean")) appl_1135+                !appl_1137 <- appl_1136 `pseq` klCons (Core.Types.Atom (Core.Types.UnboundSym "-->")) appl_1136+                !appl_1138 <- appl_1137 `pseq` klCons (Core.Types.Atom (Core.Types.UnboundSym "A")) appl_1137+                appl_1138 `pseq` kl_declare (ApplC (wrapNamed "vector?" kl_vectorP)) appl_1138) `catchError` (\(!kl_E) -> do return (Core.Types.Atom (Core.Types.Str "E")))+            (do let !appl_1139 = Atom Nil+                !appl_1140 <- appl_1139 `pseq` klCons (Core.Types.Atom (Core.Types.UnboundSym "string")) appl_1139+                !appl_1141 <- appl_1140 `pseq` klCons (Core.Types.Atom (Core.Types.UnboundSym "-->")) appl_1140+                appl_1141 `pseq` kl_declare (ApplC (PL "version" kl_version)) appl_1141) `catchError` (\(!kl_E) -> do return (Core.Types.Atom (Core.Types.Str "E")))+            (do let !appl_1142 = Atom Nil+                !appl_1143 <- appl_1142 `pseq` klCons (Core.Types.Atom (Core.Types.UnboundSym "A")) appl_1142+                !appl_1144 <- appl_1143 `pseq` klCons (Core.Types.Atom (Core.Types.UnboundSym "-->")) appl_1143+                !appl_1145 <- appl_1144 `pseq` klCons (Core.Types.Atom (Core.Types.UnboundSym "A")) appl_1144+                let !appl_1146 = Atom Nil+                !appl_1147 <- appl_1145 `pseq` (appl_1146 `pseq` klCons appl_1145 appl_1146)+                !appl_1148 <- appl_1147 `pseq` klCons (Core.Types.Atom (Core.Types.UnboundSym "-->")) appl_1147+                !appl_1149 <- appl_1148 `pseq` klCons (Core.Types.Atom (Core.Types.UnboundSym "string")) appl_1148+                appl_1149 `pseq` kl_declare (ApplC (wrapNamed "write-to-file" kl_write_to_file)) appl_1149) `catchError` (\(!kl_E) -> do return (Core.Types.Atom (Core.Types.Str "E")))+            (do let !appl_1150 = Atom Nil+                !appl_1151 <- appl_1150 `pseq` klCons (Core.Types.Atom (Core.Types.UnboundSym "out")) appl_1150+                !appl_1152 <- appl_1151 `pseq` klCons (Core.Types.Atom (Core.Types.UnboundSym "stream")) appl_1151+                let !appl_1153 = Atom Nil+                !appl_1154 <- appl_1153 `pseq` klCons (Core.Types.Atom (Core.Types.UnboundSym "number")) appl_1153+                !appl_1155 <- appl_1154 `pseq` klCons (Core.Types.Atom (Core.Types.UnboundSym "-->")) appl_1154+                !appl_1156 <- appl_1152 `pseq` (appl_1155 `pseq` klCons appl_1152 appl_1155)+                let !appl_1157 = Atom Nil+                !appl_1158 <- appl_1156 `pseq` (appl_1157 `pseq` klCons appl_1156 appl_1157)+                !appl_1159 <- appl_1158 `pseq` klCons (Core.Types.Atom (Core.Types.UnboundSym "-->")) appl_1158+                !appl_1160 <- appl_1159 `pseq` klCons (Core.Types.Atom (Core.Types.UnboundSym "number")) appl_1159+                appl_1160 `pseq` kl_declare (ApplC (wrapNamed "write-byte" writeByte)) appl_1160) `catchError` (\(!kl_E) -> do return (Core.Types.Atom (Core.Types.Str "E")))+            (do let !appl_1161 = Atom Nil+                !appl_1162 <- appl_1161 `pseq` klCons (Core.Types.Atom (Core.Types.UnboundSym "boolean")) appl_1161+                !appl_1163 <- appl_1162 `pseq` klCons (Core.Types.Atom (Core.Types.UnboundSym "-->")) appl_1162+                !appl_1164 <- appl_1163 `pseq` klCons (Core.Types.Atom (Core.Types.UnboundSym "string")) appl_1163+                appl_1164 `pseq` kl_declare (ApplC (wrapNamed "y-or-n?" kl_y_or_nP)) appl_1164) `catchError` (\(!kl_E) -> do return (Core.Types.Atom (Core.Types.Str "E")))+            (do let !appl_1165 = Atom Nil+                !appl_1166 <- appl_1165 `pseq` klCons (Core.Types.Atom (Core.Types.UnboundSym "boolean")) appl_1165+                !appl_1167 <- appl_1166 `pseq` klCons (Core.Types.Atom (Core.Types.UnboundSym "-->")) appl_1166+                !appl_1168 <- appl_1167 `pseq` klCons (Core.Types.Atom (Core.Types.UnboundSym "number")) appl_1167+                let !appl_1169 = Atom Nil+                !appl_1170 <- appl_1168 `pseq` (appl_1169 `pseq` klCons appl_1168 appl_1169)+                !appl_1171 <- appl_1170 `pseq` klCons (Core.Types.Atom (Core.Types.UnboundSym "-->")) appl_1170+                !appl_1172 <- appl_1171 `pseq` klCons (Core.Types.Atom (Core.Types.UnboundSym "number")) appl_1171+                appl_1172 `pseq` kl_declare (ApplC (wrapNamed ">" greaterThan)) appl_1172) `catchError` (\(!kl_E) -> do return (Core.Types.Atom (Core.Types.Str "E")))+            (do let !appl_1173 = Atom Nil+                !appl_1174 <- appl_1173 `pseq` klCons (Core.Types.Atom (Core.Types.UnboundSym "boolean")) appl_1173+                !appl_1175 <- appl_1174 `pseq` klCons (Core.Types.Atom (Core.Types.UnboundSym "-->")) appl_1174+                !appl_1176 <- appl_1175 `pseq` klCons (Core.Types.Atom (Core.Types.UnboundSym "number")) appl_1175+                let !appl_1177 = Atom Nil+                !appl_1178 <- appl_1176 `pseq` (appl_1177 `pseq` klCons appl_1176 appl_1177)+                !appl_1179 <- appl_1178 `pseq` klCons (Core.Types.Atom (Core.Types.UnboundSym "-->")) appl_1178+                !appl_1180 <- appl_1179 `pseq` klCons (Core.Types.Atom (Core.Types.UnboundSym "number")) appl_1179+                appl_1180 `pseq` kl_declare (ApplC (wrapNamed "<" lessThan)) appl_1180) `catchError` (\(!kl_E) -> do return (Core.Types.Atom (Core.Types.Str "E")))+            (do let !appl_1181 = Atom Nil+                !appl_1182 <- appl_1181 `pseq` klCons (Core.Types.Atom (Core.Types.UnboundSym "boolean")) appl_1181+                !appl_1183 <- appl_1182 `pseq` klCons (Core.Types.Atom (Core.Types.UnboundSym "-->")) appl_1182+                !appl_1184 <- appl_1183 `pseq` klCons (Core.Types.Atom (Core.Types.UnboundSym "number")) appl_1183+                let !appl_1185 = Atom Nil+                !appl_1186 <- appl_1184 `pseq` (appl_1185 `pseq` klCons appl_1184 appl_1185)+                !appl_1187 <- appl_1186 `pseq` klCons (Core.Types.Atom (Core.Types.UnboundSym "-->")) appl_1186+                !appl_1188 <- appl_1187 `pseq` klCons (Core.Types.Atom (Core.Types.UnboundSym "number")) appl_1187+                appl_1188 `pseq` kl_declare (ApplC (wrapNamed ">=" greaterThanOrEqualTo)) appl_1188) `catchError` (\(!kl_E) -> do return (Core.Types.Atom (Core.Types.Str "E")))+            (do let !appl_1189 = Atom Nil+                !appl_1190 <- appl_1189 `pseq` klCons (Core.Types.Atom (Core.Types.UnboundSym "boolean")) appl_1189+                !appl_1191 <- appl_1190 `pseq` klCons (Core.Types.Atom (Core.Types.UnboundSym "-->")) appl_1190+                !appl_1192 <- appl_1191 `pseq` klCons (Core.Types.Atom (Core.Types.UnboundSym "number")) appl_1191+                let !appl_1193 = Atom Nil+                !appl_1194 <- appl_1192 `pseq` (appl_1193 `pseq` klCons appl_1192 appl_1193)+                !appl_1195 <- appl_1194 `pseq` klCons (Core.Types.Atom (Core.Types.UnboundSym "-->")) appl_1194+                !appl_1196 <- appl_1195 `pseq` klCons (Core.Types.Atom (Core.Types.UnboundSym "number")) appl_1195+                appl_1196 `pseq` kl_declare (ApplC (wrapNamed "<=" lessThanOrEqualTo)) appl_1196) `catchError` (\(!kl_E) -> do return (Core.Types.Atom (Core.Types.Str "E")))+            (do let !appl_1197 = Atom Nil+                !appl_1198 <- appl_1197 `pseq` klCons (Core.Types.Atom (Core.Types.UnboundSym "boolean")) appl_1197+                !appl_1199 <- appl_1198 `pseq` klCons (Core.Types.Atom (Core.Types.UnboundSym "-->")) appl_1198+                !appl_1200 <- appl_1199 `pseq` klCons (Core.Types.Atom (Core.Types.UnboundSym "A")) appl_1199+                let !appl_1201 = Atom Nil+                !appl_1202 <- appl_1200 `pseq` (appl_1201 `pseq` klCons appl_1200 appl_1201)+                !appl_1203 <- appl_1202 `pseq` klCons (Core.Types.Atom (Core.Types.UnboundSym "-->")) appl_1202+                !appl_1204 <- appl_1203 `pseq` klCons (Core.Types.Atom (Core.Types.UnboundSym "A")) appl_1203+                appl_1204 `pseq` kl_declare (ApplC (wrapNamed "=" eq)) appl_1204) `catchError` (\(!kl_E) -> do return (Core.Types.Atom (Core.Types.Str "E")))+            (do let !appl_1205 = Atom Nil+                !appl_1206 <- appl_1205 `pseq` klCons (Core.Types.Atom (Core.Types.UnboundSym "number")) appl_1205+                !appl_1207 <- appl_1206 `pseq` klCons (Core.Types.Atom (Core.Types.UnboundSym "-->")) appl_1206+                !appl_1208 <- appl_1207 `pseq` klCons (Core.Types.Atom (Core.Types.UnboundSym "number")) appl_1207+                let !appl_1209 = Atom Nil+                !appl_1210 <- appl_1208 `pseq` (appl_1209 `pseq` klCons appl_1208 appl_1209)+                !appl_1211 <- appl_1210 `pseq` klCons (Core.Types.Atom (Core.Types.UnboundSym "-->")) appl_1210+                !appl_1212 <- appl_1211 `pseq` klCons (Core.Types.Atom (Core.Types.UnboundSym "number")) appl_1211+                appl_1212 `pseq` kl_declare (ApplC (wrapNamed "+" add)) appl_1212) `catchError` (\(!kl_E) -> do return (Core.Types.Atom (Core.Types.Str "E")))+            (do let !appl_1213 = Atom Nil+                !appl_1214 <- appl_1213 `pseq` klCons (Core.Types.Atom (Core.Types.UnboundSym "number")) appl_1213+                !appl_1215 <- appl_1214 `pseq` klCons (Core.Types.Atom (Core.Types.UnboundSym "-->")) appl_1214+                !appl_1216 <- appl_1215 `pseq` klCons (Core.Types.Atom (Core.Types.UnboundSym "number")) appl_1215+                let !appl_1217 = Atom Nil+                !appl_1218 <- appl_1216 `pseq` (appl_1217 `pseq` klCons appl_1216 appl_1217)+                !appl_1219 <- appl_1218 `pseq` klCons (Core.Types.Atom (Core.Types.UnboundSym "-->")) appl_1218+                !appl_1220 <- appl_1219 `pseq` klCons (Core.Types.Atom (Core.Types.UnboundSym "number")) appl_1219+                appl_1220 `pseq` kl_declare (ApplC (wrapNamed "/" divide)) appl_1220) `catchError` (\(!kl_E) -> do return (Core.Types.Atom (Core.Types.Str "E")))+            (do let !appl_1221 = Atom Nil+                !appl_1222 <- appl_1221 `pseq` klCons (Core.Types.Atom (Core.Types.UnboundSym "number")) appl_1221+                !appl_1223 <- appl_1222 `pseq` klCons (Core.Types.Atom (Core.Types.UnboundSym "-->")) appl_1222+                !appl_1224 <- appl_1223 `pseq` klCons (Core.Types.Atom (Core.Types.UnboundSym "number")) appl_1223+                let !appl_1225 = Atom Nil+                !appl_1226 <- appl_1224 `pseq` (appl_1225 `pseq` klCons appl_1224 appl_1225)+                !appl_1227 <- appl_1226 `pseq` klCons (Core.Types.Atom (Core.Types.UnboundSym "-->")) appl_1226+                !appl_1228 <- appl_1227 `pseq` klCons (Core.Types.Atom (Core.Types.UnboundSym "number")) appl_1227+                appl_1228 `pseq` kl_declare (ApplC (wrapNamed "-" Primitives.subtract)) appl_1228) `catchError` (\(!kl_E) -> do return (Core.Types.Atom (Core.Types.Str "E")))+            (do let !appl_1229 = Atom Nil+                !appl_1230 <- appl_1229 `pseq` klCons (Core.Types.Atom (Core.Types.UnboundSym "number")) appl_1229+                !appl_1231 <- appl_1230 `pseq` klCons (Core.Types.Atom (Core.Types.UnboundSym "-->")) appl_1230+                !appl_1232 <- appl_1231 `pseq` klCons (Core.Types.Atom (Core.Types.UnboundSym "number")) appl_1231+                let !appl_1233 = Atom Nil+                !appl_1234 <- appl_1232 `pseq` (appl_1233 `pseq` klCons appl_1232 appl_1233)+                !appl_1235 <- appl_1234 `pseq` klCons (Core.Types.Atom (Core.Types.UnboundSym "-->")) appl_1234+                !appl_1236 <- appl_1235 `pseq` klCons (Core.Types.Atom (Core.Types.UnboundSym "number")) appl_1235+                appl_1236 `pseq` kl_declare (ApplC (wrapNamed "*" multiply)) appl_1236) `catchError` (\(!kl_E) -> do return (Core.Types.Atom (Core.Types.Str "E")))+            (do let !appl_1237 = Atom Nil+                !appl_1238 <- appl_1237 `pseq` klCons (Core.Types.Atom (Core.Types.UnboundSym "boolean")) appl_1237+                !appl_1239 <- appl_1238 `pseq` klCons (Core.Types.Atom (Core.Types.UnboundSym "-->")) appl_1238+                !appl_1240 <- appl_1239 `pseq` klCons (Core.Types.Atom (Core.Types.UnboundSym "B")) appl_1239+                let !appl_1241 = Atom Nil+                !appl_1242 <- appl_1240 `pseq` (appl_1241 `pseq` klCons appl_1240 appl_1241)+                !appl_1243 <- appl_1242 `pseq` klCons (Core.Types.Atom (Core.Types.UnboundSym "-->")) appl_1242+                !appl_1244 <- appl_1243 `pseq` klCons (Core.Types.Atom (Core.Types.UnboundSym "A")) appl_1243+                appl_1244 `pseq` kl_declare (ApplC (wrapNamed "==" kl_EqEq)) appl_1244) `catchError` (\(!kl_E) -> do return (Core.Types.Atom (Core.Types.Str "E")))
Shentong/Backend/Utils.hs view
@@ -9,9 +9,9 @@ import Control.Parallel
 import qualified Data.Text as T
 import Data.Monoid
-import Primitives
-import Types
-import Utils
+import Core.Primitives
+import Core.Types
+import Core.Utils
 
 applyWrapper :: KLValue -> [KLValue] -> KLContext Env KLValue
 applyWrapper (ApplC ac) vs = ac `pseq` vs `pseq` foldr pseq (apply ac vs) vs
Shentong/Backend/Writer.hs view
@@ -1,814 +1,950 @@-{-# LANGUAGE BangPatterns #-}
-{-# LANGUAGE OverloadedStrings #-}
-{-# LANGUAGE Strict #-}
-{-# LANGUAGE StrictData #-}
-{-# LANGUAGE ViewPatterns #-}
-
-module Backend.Writer where
-
-import Control.Monad.Except
-import Control.Parallel
-import Environment
-import Primitives as Primitives
-import Backend.Utils
-import Types as Types
-import Utils
-import Wrap
-import Backend.Toplevel
-import Backend.Core
-import Backend.Sys
-import Backend.Sequent
-import Backend.Yacc
-import Backend.Reader
-import Backend.Prolog
-import Backend.Track
-import Backend.Load
-
-{-
-Copyright (c) 2015, Mark Tarver
-All rights reserved.
-
-Redistribution and use in source and binary forms, with or without
-modification, are permitted provided that the following conditions are met:
-
-1. Redistributions of source code must retain the above copyright
-   notice, this list of conditions and the following disclaimer.
-2. Redistributions in binary form must reproduce the above copyright
-   notice, this list of conditions and the following disclaimer in the
-   documentation and/or other materials provided with the distribution.
-3. The name of Mark Tarver may not be used to endorse or promote products
-   derived from this software without specific prior written permission.
-
-THIS SOFTWARE IS PROVIDED BY Mark Tarver ''AS IS'' AND ANY
-EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
-WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
-DISCLAIMED. IN NO EVENT SHALL Mark Tarver BE LIABLE FOR ANY
-DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
-(INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
-LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND
-ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
-(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
-SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
--}
-
-kl_pr :: Types.KLValue ->
-         Types.KLValue -> Types.KLContext Types.Env Types.KLValue
-kl_pr (!kl_V3878) (!kl_V3879) = do (do kl_V3878 `pseq` (kl_V3879 `pseq` kl_shen_prh kl_V3878 kl_V3879 (Types.Atom (Types.N (Types.KI 0))))) `catchError` (\(!kl_E) -> do return kl_V3878)
-
-kl_shen_prh :: Types.KLValue ->
-               Types.KLValue ->
-               Types.KLValue -> Types.KLContext Types.Env Types.KLValue
-kl_shen_prh (!kl_V3883) (!kl_V3884) (!kl_V3885) = do !appl_0 <- kl_V3883 `pseq` (kl_V3884 `pseq` (kl_V3885 `pseq` kl_shen_write_char_and_inc kl_V3883 kl_V3884 kl_V3885))
-                                                     kl_V3883 `pseq` (kl_V3884 `pseq` (appl_0 `pseq` kl_shen_prh kl_V3883 kl_V3884 appl_0))
-
-kl_shen_write_char_and_inc :: Types.KLValue ->
-                              Types.KLValue ->
-                              Types.KLValue -> Types.KLContext Types.Env Types.KLValue
-kl_shen_write_char_and_inc (!kl_V3889) (!kl_V3890) (!kl_V3891) = do !appl_0 <- kl_V3889 `pseq` (kl_V3891 `pseq` pos kl_V3889 kl_V3891)
-                                                                    !appl_1 <- appl_0 `pseq` stringToN appl_0
-                                                                    !appl_2 <- appl_1 `pseq` (kl_V3890 `pseq` writeByte appl_1 kl_V3890)
-                                                                    !appl_3 <- kl_V3891 `pseq` add kl_V3891 (Types.Atom (Types.N (Types.KI 1)))
-                                                                    appl_2 `pseq` (appl_3 `pseq` kl_do appl_2 appl_3)
-
-kl_print :: Types.KLValue ->
-            Types.KLContext Types.Env Types.KLValue
-kl_print (!kl_V3893) = do let !appl_0 = ApplC (Func "lambda" (Context (\(!kl_String) -> do let !appl_1 = ApplC (Func "lambda" (Context (\(!kl_Print) -> do return kl_V3893)))
-                                                                                           !appl_2 <- kl_stoutput
-                                                                                           !appl_3 <- kl_String `pseq` (appl_2 `pseq` kl_shen_prhush kl_String appl_2)
-                                                                                           appl_3 `pseq` applyWrapper appl_1 [appl_3])))
-                          !appl_4 <- kl_V3893 `pseq` kl_shen_insert kl_V3893 (Types.Atom (Types.Str "~S"))
-                          appl_4 `pseq` applyWrapper appl_0 [appl_4]
-
-kl_shen_prhush :: Types.KLValue ->
-                  Types.KLValue -> Types.KLContext Types.Env Types.KLValue
-kl_shen_prhush (!kl_V3896) (!kl_V3897) = do !kl_if_0 <- value (Types.Atom (Types.UnboundSym "*hush*"))
-                                            case kl_if_0 of
-                                                Atom (B (True)) -> do return kl_V3896
-                                                Atom (B (False)) -> do do kl_V3896 `pseq` (kl_V3897 `pseq` kl_pr kl_V3896 kl_V3897)
-                                                _ -> throwError "if: expected boolean"
-
-kl_shen_mkstr :: Types.KLValue ->
-                 Types.KLValue -> Types.KLContext Types.Env Types.KLValue
-kl_shen_mkstr (!kl_V3900) (!kl_V3901) = do !kl_if_0 <- kl_V3900 `pseq` stringP kl_V3900
-                                           case kl_if_0 of
-                                               Atom (B (True)) -> do !appl_1 <- kl_V3900 `pseq` kl_shen_proc_nl kl_V3900
-                                                                     appl_1 `pseq` (kl_V3901 `pseq` kl_shen_mkstr_l appl_1 kl_V3901)
-                                               Atom (B (False)) -> do do !appl_2 <- kl_V3900 `pseq` klCons kl_V3900 (Types.Atom Types.Nil)
-                                                                         !appl_3 <- appl_2 `pseq` klCons (ApplC (wrapNamed "shen.proc-nl" kl_shen_proc_nl)) appl_2
-                                                                         appl_3 `pseq` (kl_V3901 `pseq` kl_shen_mkstr_r appl_3 kl_V3901)
-                                               _ -> throwError "if: expected boolean"
-
-kl_shen_mkstr_l :: Types.KLValue ->
-                   Types.KLValue -> Types.KLContext Types.Env Types.KLValue
-kl_shen_mkstr_l (!kl_V3904) (!kl_V3905) = do let pat_cond_0 = do return kl_V3904
-                                                 pat_cond_1 kl_V3905 kl_V3905h kl_V3905t = do !appl_2 <- kl_V3905h `pseq` (kl_V3904 `pseq` kl_shen_insert_l kl_V3905h kl_V3904)
-                                                                                              appl_2 `pseq` (kl_V3905t `pseq` kl_shen_mkstr_l appl_2 kl_V3905t)
-                                                 pat_cond_3 = do do kl_shen_f_error (ApplC (wrapNamed "shen.mkstr-l" kl_shen_mkstr_l))
-                                              in case kl_V3905 of
-                                                     kl_V3905@(Atom (Nil)) -> pat_cond_0
-                                                     !(kl_V3905@(Cons (!kl_V3905h)
-                                                                      (!kl_V3905t))) -> pat_cond_1 kl_V3905 kl_V3905h kl_V3905t
-                                                     _ -> pat_cond_3
-
-kl_shen_insert_l :: Types.KLValue ->
-                    Types.KLValue -> Types.KLContext Types.Env Types.KLValue
-kl_shen_insert_l (!kl_V3910) (!kl_V3911) = do let pat_cond_0 = do return (Types.Atom (Types.Str ""))
-                                                  pat_cond_1 = do !kl_if_2 <- kl_V3911 `pseq` kl_shen_PlusstringP kl_V3911
-                                                                  !kl_if_3 <- case kl_if_2 of
-                                                                                  Atom (B (True)) -> do !appl_4 <- kl_V3911 `pseq` pos kl_V3911 (Types.Atom (Types.N (Types.KI 0)))
-                                                                                                        !kl_if_5 <- appl_4 `pseq` eq (Types.Atom (Types.Str "~")) appl_4
-                                                                                                        !kl_if_6 <- case kl_if_5 of
-                                                                                                                        Atom (B (True)) -> do !appl_7 <- kl_V3911 `pseq` tlstr kl_V3911
-                                                                                                                                              !kl_if_8 <- appl_7 `pseq` kl_shen_PlusstringP appl_7
-                                                                                                                                              !kl_if_9 <- case kl_if_8 of
-                                                                                                                                                              Atom (B (True)) -> do !appl_10 <- kl_V3911 `pseq` tlstr kl_V3911
-                                                                                                                                                                                    !appl_11 <- appl_10 `pseq` pos appl_10 (Types.Atom (Types.N (Types.KI 0)))
-                                                                                                                                                                                    !kl_if_12 <- appl_11 `pseq` eq (Types.Atom (Types.Str "A")) appl_11
-                                                                                                                                                                                    case kl_if_12 of
-                                                                                                                                                                                        Atom (B (True)) -> do return (Atom (B True))
-                                                                                                                                                                                        Atom (B (False)) -> do do return (Atom (B False))
-                                                                                                                                                                                        _ -> throwError "if: expected boolean"
-                                                                                                                                                              Atom (B (False)) -> do do return (Atom (B False))
-                                                                                                                                                              _ -> throwError "if: expected boolean"
-                                                                                                                                              case kl_if_9 of
-                                                                                                                                                  Atom (B (True)) -> do return (Atom (B True))
-                                                                                                                                                  Atom (B (False)) -> do do return (Atom (B False))
-                                                                                                                                                  _ -> throwError "if: expected boolean"
-                                                                                                                        Atom (B (False)) -> do do return (Atom (B False))
-                                                                                                                        _ -> throwError "if: expected boolean"
-                                                                                                        case kl_if_6 of
-                                                                                                            Atom (B (True)) -> do return (Atom (B True))
-                                                                                                            Atom (B (False)) -> do do return (Atom (B False))
-                                                                                                            _ -> throwError "if: expected boolean"
-                                                                                  Atom (B (False)) -> do do return (Atom (B False))
-                                                                                  _ -> throwError "if: expected boolean"
-                                                                  case kl_if_3 of
-                                                                      Atom (B (True)) -> do !appl_13 <- kl_V3911 `pseq` tlstr kl_V3911
-                                                                                            !appl_14 <- appl_13 `pseq` tlstr appl_13
-                                                                                            !appl_15 <- klCons (Types.Atom (Types.UnboundSym "shen.a")) (Types.Atom Types.Nil)
-                                                                                            !appl_16 <- appl_14 `pseq` (appl_15 `pseq` klCons appl_14 appl_15)
-                                                                                            !appl_17 <- kl_V3910 `pseq` (appl_16 `pseq` klCons kl_V3910 appl_16)
-                                                                                            appl_17 `pseq` klCons (ApplC (wrapNamed "shen.app" kl_shen_app)) appl_17
-                                                                      Atom (B (False)) -> do !kl_if_18 <- kl_V3911 `pseq` kl_shen_PlusstringP kl_V3911
-                                                                                             !kl_if_19 <- case kl_if_18 of
-                                                                                                              Atom (B (True)) -> do !appl_20 <- kl_V3911 `pseq` pos kl_V3911 (Types.Atom (Types.N (Types.KI 0)))
-                                                                                                                                    !kl_if_21 <- appl_20 `pseq` eq (Types.Atom (Types.Str "~")) appl_20
-                                                                                                                                    !kl_if_22 <- case kl_if_21 of
-                                                                                                                                                     Atom (B (True)) -> do !appl_23 <- kl_V3911 `pseq` tlstr kl_V3911
-                                                                                                                                                                           !kl_if_24 <- appl_23 `pseq` kl_shen_PlusstringP appl_23
-                                                                                                                                                                           !kl_if_25 <- case kl_if_24 of
-                                                                                                                                                                                            Atom (B (True)) -> do !appl_26 <- kl_V3911 `pseq` tlstr kl_V3911
-                                                                                                                                                                                                                  !appl_27 <- appl_26 `pseq` pos appl_26 (Types.Atom (Types.N (Types.KI 0)))
-                                                                                                                                                                                                                  !kl_if_28 <- appl_27 `pseq` eq (Types.Atom (Types.Str "R")) appl_27
-                                                                                                                                                                                                                  case kl_if_28 of
-                                                                                                                                                                                                                      Atom (B (True)) -> do return (Atom (B True))
-                                                                                                                                                                                                                      Atom (B (False)) -> do do return (Atom (B False))
-                                                                                                                                                                                                                      _ -> throwError "if: expected boolean"
-                                                                                                                                                                                            Atom (B (False)) -> do do return (Atom (B False))
-                                                                                                                                                                                            _ -> throwError "if: expected boolean"
-                                                                                                                                                                           case kl_if_25 of
-                                                                                                                                                                               Atom (B (True)) -> do return (Atom (B True))
-                                                                                                                                                                               Atom (B (False)) -> do do return (Atom (B False))
-                                                                                                                                                                               _ -> throwError "if: expected boolean"
-                                                                                                                                                     Atom (B (False)) -> do do return (Atom (B False))
-                                                                                                                                                     _ -> throwError "if: expected boolean"
-                                                                                                                                    case kl_if_22 of
-                                                                                                                                        Atom (B (True)) -> do return (Atom (B True))
-                                                                                                                                        Atom (B (False)) -> do do return (Atom (B False))
-                                                                                                                                        _ -> throwError "if: expected boolean"
-                                                                                                              Atom (B (False)) -> do do return (Atom (B False))
-                                                                                                              _ -> throwError "if: expected boolean"
-                                                                                             case kl_if_19 of
-                                                                                                 Atom (B (True)) -> do !appl_29 <- kl_V3911 `pseq` tlstr kl_V3911
-                                                                                                                       !appl_30 <- appl_29 `pseq` tlstr appl_29
-                                                                                                                       !appl_31 <- klCons (Types.Atom (Types.UnboundSym "shen.r")) (Types.Atom Types.Nil)
-                                                                                                                       !appl_32 <- appl_30 `pseq` (appl_31 `pseq` klCons appl_30 appl_31)
-                                                                                                                       !appl_33 <- kl_V3910 `pseq` (appl_32 `pseq` klCons kl_V3910 appl_32)
-                                                                                                                       appl_33 `pseq` klCons (ApplC (wrapNamed "shen.app" kl_shen_app)) appl_33
-                                                                                                 Atom (B (False)) -> do !kl_if_34 <- kl_V3911 `pseq` kl_shen_PlusstringP kl_V3911
-                                                                                                                        !kl_if_35 <- case kl_if_34 of
-                                                                                                                                         Atom (B (True)) -> do !appl_36 <- kl_V3911 `pseq` pos kl_V3911 (Types.Atom (Types.N (Types.KI 0)))
-                                                                                                                                                               !kl_if_37 <- appl_36 `pseq` eq (Types.Atom (Types.Str "~")) appl_36
-                                                                                                                                                               !kl_if_38 <- case kl_if_37 of
-                                                                                                                                                                                Atom (B (True)) -> do !appl_39 <- kl_V3911 `pseq` tlstr kl_V3911
-                                                                                                                                                                                                      !kl_if_40 <- appl_39 `pseq` kl_shen_PlusstringP appl_39
-                                                                                                                                                                                                      !kl_if_41 <- case kl_if_40 of
-                                                                                                                                                                                                                       Atom (B (True)) -> do !appl_42 <- kl_V3911 `pseq` tlstr kl_V3911
-                                                                                                                                                                                                                                             !appl_43 <- appl_42 `pseq` pos appl_42 (Types.Atom (Types.N (Types.KI 0)))
-                                                                                                                                                                                                                                             !kl_if_44 <- appl_43 `pseq` eq (Types.Atom (Types.Str "S")) appl_43
-                                                                                                                                                                                                                                             case kl_if_44 of
-                                                                                                                                                                                                                                                 Atom (B (True)) -> do return (Atom (B True))
-                                                                                                                                                                                                                                                 Atom (B (False)) -> do do return (Atom (B False))
-                                                                                                                                                                                                                                                 _ -> throwError "if: expected boolean"
-                                                                                                                                                                                                                       Atom (B (False)) -> do do return (Atom (B False))
-                                                                                                                                                                                                                       _ -> throwError "if: expected boolean"
-                                                                                                                                                                                                      case kl_if_41 of
-                                                                                                                                                                                                          Atom (B (True)) -> do return (Atom (B True))
-                                                                                                                                                                                                          Atom (B (False)) -> do do return (Atom (B False))
-                                                                                                                                                                                                          _ -> throwError "if: expected boolean"
-                                                                                                                                                                                Atom (B (False)) -> do do return (Atom (B False))
-                                                                                                                                                                                _ -> throwError "if: expected boolean"
-                                                                                                                                                               case kl_if_38 of
-                                                                                                                                                                   Atom (B (True)) -> do return (Atom (B True))
-                                                                                                                                                                   Atom (B (False)) -> do do return (Atom (B False))
-                                                                                                                                                                   _ -> throwError "if: expected boolean"
-                                                                                                                                         Atom (B (False)) -> do do return (Atom (B False))
-                                                                                                                                         _ -> throwError "if: expected boolean"
-                                                                                                                        case kl_if_35 of
-                                                                                                                            Atom (B (True)) -> do !appl_45 <- kl_V3911 `pseq` tlstr kl_V3911
-                                                                                                                                                  !appl_46 <- appl_45 `pseq` tlstr appl_45
-                                                                                                                                                  !appl_47 <- klCons (Types.Atom (Types.UnboundSym "shen.s")) (Types.Atom Types.Nil)
-                                                                                                                                                  !appl_48 <- appl_46 `pseq` (appl_47 `pseq` klCons appl_46 appl_47)
-                                                                                                                                                  !appl_49 <- kl_V3910 `pseq` (appl_48 `pseq` klCons kl_V3910 appl_48)
-                                                                                                                                                  appl_49 `pseq` klCons (ApplC (wrapNamed "shen.app" kl_shen_app)) appl_49
-                                                                                                                            Atom (B (False)) -> do !kl_if_50 <- kl_V3911 `pseq` kl_shen_PlusstringP kl_V3911
-                                                                                                                                                   case kl_if_50 of
-                                                                                                                                                       Atom (B (True)) -> do !appl_51 <- kl_V3911 `pseq` pos kl_V3911 (Types.Atom (Types.N (Types.KI 0)))
-                                                                                                                                                                             !appl_52 <- kl_V3911 `pseq` tlstr kl_V3911
-                                                                                                                                                                             !appl_53 <- kl_V3910 `pseq` (appl_52 `pseq` kl_shen_insert_l kl_V3910 appl_52)
-                                                                                                                                                                             !appl_54 <- appl_53 `pseq` klCons appl_53 (Types.Atom Types.Nil)
-                                                                                                                                                                             !appl_55 <- appl_51 `pseq` (appl_54 `pseq` klCons appl_51 appl_54)
-                                                                                                                                                                             !appl_56 <- appl_55 `pseq` klCons (ApplC (wrapNamed "cn" cn)) appl_55
-                                                                                                                                                                             appl_56 `pseq` kl_shen_factor_cn appl_56
-                                                                                                                                                       Atom (B (False)) -> do let pat_cond_57 kl_V3911 kl_V3911t kl_V3911th kl_V3911tt kl_V3911tth = do !appl_58 <- kl_V3910 `pseq` (kl_V3911tth `pseq` kl_shen_insert_l kl_V3910 kl_V3911tth)
-                                                                                                                                                                                                                                                        !appl_59 <- appl_58 `pseq` klCons appl_58 (Types.Atom Types.Nil)
-                                                                                                                                                                                                                                                        !appl_60 <- kl_V3911th `pseq` (appl_59 `pseq` klCons kl_V3911th appl_59)
-                                                                                                                                                                                                                                                        appl_60 `pseq` klCons (ApplC (wrapNamed "cn" cn)) appl_60
-                                                                                                                                                                                  pat_cond_61 kl_V3911 kl_V3911t kl_V3911th kl_V3911tt kl_V3911tth kl_V3911ttt kl_V3911ttth = do !appl_62 <- kl_V3910 `pseq` (kl_V3911tth `pseq` kl_shen_insert_l kl_V3910 kl_V3911tth)
-                                                                                                                                                                                                                                                                                 !appl_63 <- appl_62 `pseq` (kl_V3911ttt `pseq` klCons appl_62 kl_V3911ttt)
-                                                                                                                                                                                                                                                                                 !appl_64 <- kl_V3911th `pseq` (appl_63 `pseq` klCons kl_V3911th appl_63)
-                                                                                                                                                                                                                                                                                 appl_64 `pseq` klCons (ApplC (wrapNamed "shen.app" kl_shen_app)) appl_64
-                                                                                                                                                                                  pat_cond_65 = do do kl_shen_f_error (ApplC (wrapNamed "shen.insert-l" kl_shen_insert_l))
-                                                                                                                                                                               in case kl_V3911 of
-                                                                                                                                                                                      !(kl_V3911@(Cons (Atom (UnboundSym "cn"))
-                                                                                                                                                                                                       (!(kl_V3911t@(Cons (!kl_V3911th)
-                                                                                                                                                                                                                          (!(kl_V3911tt@(Cons (!kl_V3911tth)
-                                                                                                                                                                                                                                              (Atom (Nil)))))))))) -> pat_cond_57 kl_V3911 kl_V3911t kl_V3911th kl_V3911tt kl_V3911tth
-                                                                                                                                                                                      !(kl_V3911@(Cons (ApplC (PL "cn"
-                                                                                                                                                                                                                  _))
-                                                                                                                                                                                                       (!(kl_V3911t@(Cons (!kl_V3911th)
-                                                                                                                                                                                                                          (!(kl_V3911tt@(Cons (!kl_V3911tth)
-                                                                                                                                                                                                                                              (Atom (Nil)))))))))) -> pat_cond_57 kl_V3911 kl_V3911t kl_V3911th kl_V3911tt kl_V3911tth
-                                                                                                                                                                                      !(kl_V3911@(Cons (ApplC (Func "cn"
-                                                                                                                                                                                                                    _))
-                                                                                                                                                                                                       (!(kl_V3911t@(Cons (!kl_V3911th)
-                                                                                                                                                                                                                          (!(kl_V3911tt@(Cons (!kl_V3911tth)
-                                                                                                                                                                                                                                              (Atom (Nil)))))))))) -> pat_cond_57 kl_V3911 kl_V3911t kl_V3911th kl_V3911tt kl_V3911tth
-                                                                                                                                                                                      !(kl_V3911@(Cons (Atom (UnboundSym "shen.app"))
-                                                                                                                                                                                                       (!(kl_V3911t@(Cons (!kl_V3911th)
-                                                                                                                                                                                                                          (!(kl_V3911tt@(Cons (!kl_V3911tth)
-                                                                                                                                                                                                                                              (!(kl_V3911ttt@(Cons (!kl_V3911ttth)
-                                                                                                                                                                                                                                                                   (Atom (Nil))))))))))))) -> pat_cond_61 kl_V3911 kl_V3911t kl_V3911th kl_V3911tt kl_V3911tth kl_V3911ttt kl_V3911ttth
-                                                                                                                                                                                      !(kl_V3911@(Cons (ApplC (PL "shen.app"
-                                                                                                                                                                                                                  _))
-                                                                                                                                                                                                       (!(kl_V3911t@(Cons (!kl_V3911th)
-                                                                                                                                                                                                                          (!(kl_V3911tt@(Cons (!kl_V3911tth)
-                                                                                                                                                                                                                                              (!(kl_V3911ttt@(Cons (!kl_V3911ttth)
-                                                                                                                                                                                                                                                                   (Atom (Nil))))))))))))) -> pat_cond_61 kl_V3911 kl_V3911t kl_V3911th kl_V3911tt kl_V3911tth kl_V3911ttt kl_V3911ttth
-                                                                                                                                                                                      !(kl_V3911@(Cons (ApplC (Func "shen.app"
-                                                                                                                                                                                                                    _))
-                                                                                                                                                                                                       (!(kl_V3911t@(Cons (!kl_V3911th)
-                                                                                                                                                                                                                          (!(kl_V3911tt@(Cons (!kl_V3911tth)
-                                                                                                                                                                                                                                              (!(kl_V3911ttt@(Cons (!kl_V3911ttth)
-                                                                                                                                                                                                                                                                   (Atom (Nil))))))))))))) -> pat_cond_61 kl_V3911 kl_V3911t kl_V3911th kl_V3911tt kl_V3911tth kl_V3911ttt kl_V3911ttth
-                                                                                                                                                                                      _ -> pat_cond_65
-                                                                                                                                                       _ -> throwError "if: expected boolean"
-                                                                                                                            _ -> throwError "if: expected boolean"
-                                                                                                 _ -> throwError "if: expected boolean"
-                                                                      _ -> throwError "if: expected boolean"
-                                               in case kl_V3911 of
-                                                      kl_V3911@(Atom (Str "")) -> pat_cond_0
-                                                      _ -> pat_cond_1
-
-kl_shen_factor_cn :: Types.KLValue ->
-                     Types.KLContext Types.Env Types.KLValue
-kl_shen_factor_cn (!kl_V3913) = do !kl_if_0 <- let pat_cond_1 kl_V3913 kl_V3913h kl_V3913t = do !kl_if_2 <- let pat_cond_3 = do !kl_if_4 <- let pat_cond_5 kl_V3913t kl_V3913th kl_V3913tt = do !kl_if_6 <- let pat_cond_7 kl_V3913tt kl_V3913tth kl_V3913ttt = do !kl_if_8 <- let pat_cond_9 kl_V3913tth kl_V3913tthh kl_V3913ttht = do !kl_if_10 <- let pat_cond_11 = do !kl_if_12 <- let pat_cond_13 kl_V3913ttht kl_V3913tthth kl_V3913tthtt = do !kl_if_14 <- let pat_cond_15 kl_V3913tthtt kl_V3913tthtth kl_V3913tthttt = do !kl_if_16 <- let pat_cond_17 = do !kl_if_18 <- let pat_cond_19 = do !kl_if_20 <- kl_V3913th `pseq` stringP kl_V3913th
-                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                        !kl_if_21 <- case kl_if_20 of
-                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                         Atom (B (True)) -> do !kl_if_22 <- kl_V3913tthth `pseq` stringP kl_V3913tthth
-                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                               case kl_if_22 of
-                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                   Atom (B (True)) -> do return (Atom (B True))
-                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                   Atom (B (False)) -> do do return (Atom (B False))
-                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                   _ -> throwError "if: expected boolean"
-                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                         Atom (B (False)) -> do do return (Atom (B False))
-                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                         _ -> throwError "if: expected boolean"
-                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                        case kl_if_21 of
-                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                            Atom (B (True)) -> do return (Atom (B True))
-                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                            Atom (B (False)) -> do do return (Atom (B False))
-                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                            _ -> throwError "if: expected boolean"
-                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                       pat_cond_23 = do do return (Atom (B False))
-                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                    in case kl_V3913ttt of
-                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                           kl_V3913ttt@(Atom (Nil)) -> pat_cond_19
-                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                           _ -> pat_cond_23
-                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                      case kl_if_18 of
-                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                          Atom (B (True)) -> do return (Atom (B True))
-                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                          Atom (B (False)) -> do do return (Atom (B False))
-                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                          _ -> throwError "if: expected boolean"
-                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                     pat_cond_24 = do do return (Atom (B False))
-                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                  in case kl_V3913tthttt of
-                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                         kl_V3913tthttt@(Atom (Nil)) -> pat_cond_17
-                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                         _ -> pat_cond_24
-                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                    case kl_if_16 of
-                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                        Atom (B (True)) -> do return (Atom (B True))
-                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                        Atom (B (False)) -> do do return (Atom (B False))
-                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                        _ -> throwError "if: expected boolean"
-                                                                                                                                                                                                                                                                                                                                                                                                                                                                       pat_cond_25 = do do return (Atom (B False))
-                                                                                                                                                                                                                                                                                                                                                                                                                                                                    in case kl_V3913tthtt of
-                                                                                                                                                                                                                                                                                                                                                                                                                                                                           !(kl_V3913tthtt@(Cons (!kl_V3913tthtth)
-                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                 (!kl_V3913tthttt))) -> pat_cond_15 kl_V3913tthtt kl_V3913tthtth kl_V3913tthttt
-                                                                                                                                                                                                                                                                                                                                                                                                                                                                           _ -> pat_cond_25
-                                                                                                                                                                                                                                                                                                                                                                                                                                                      case kl_if_14 of
-                                                                                                                                                                                                                                                                                                                                                                                                                                                          Atom (B (True)) -> do return (Atom (B True))
-                                                                                                                                                                                                                                                                                                                                                                                                                                                          Atom (B (False)) -> do do return (Atom (B False))
-                                                                                                                                                                                                                                                                                                                                                                                                                                                          _ -> throwError "if: expected boolean"
-                                                                                                                                                                                                                                                                                                                                                                                            pat_cond_26 = do do return (Atom (B False))
-                                                                                                                                                                                                                                                                                                                                                                                         in case kl_V3913ttht of
-                                                                                                                                                                                                                                                                                                                                                                                                !(kl_V3913ttht@(Cons (!kl_V3913tthth)
-                                                                                                                                                                                                                                                                                                                                                                                                                     (!kl_V3913tthtt))) -> pat_cond_13 kl_V3913ttht kl_V3913tthth kl_V3913tthtt
-                                                                                                                                                                                                                                                                                                                                                                                                _ -> pat_cond_26
-                                                                                                                                                                                                                                                                                                                                                                           case kl_if_12 of
-                                                                                                                                                                                                                                                                                                                                                                               Atom (B (True)) -> do return (Atom (B True))
-                                                                                                                                                                                                                                                                                                                                                                               Atom (B (False)) -> do do return (Atom (B False))
-                                                                                                                                                                                                                                                                                                                                                                               _ -> throwError "if: expected boolean"
-                                                                                                                                                                                                                                                                                                                                                          pat_cond_27 = do do return (Atom (B False))
-                                                                                                                                                                                                                                                                                                                                                       in case kl_V3913tthh of
-                                                                                                                                                                                                                                                                                                                                                              kl_V3913tthh@(Atom (UnboundSym "cn")) -> pat_cond_11
-                                                                                                                                                                                                                                                                                                                                                              kl_V3913tthh@(ApplC (PL "cn"
-                                                                                                                                                                                                                                                                                                                                                                                      _)) -> pat_cond_11
-                                                                                                                                                                                                                                                                                                                                                              kl_V3913tthh@(ApplC (Func "cn"
-                                                                                                                                                                                                                                                                                                                                                                                        _)) -> pat_cond_11
-                                                                                                                                                                                                                                                                                                                                                              _ -> pat_cond_27
-                                                                                                                                                                                                                                                                                                                                         case kl_if_10 of
-                                                                                                                                                                                                                                                                                                                                             Atom (B (True)) -> do return (Atom (B True))
-                                                                                                                                                                                                                                                                                                                                             Atom (B (False)) -> do do return (Atom (B False))
-                                                                                                                                                                                                                                                                                                                                             _ -> throwError "if: expected boolean"
-                                                                                                                                                                                                                                                                                   pat_cond_28 = do do return (Atom (B False))
-                                                                                                                                                                                                                                                                                in case kl_V3913tth of
-                                                                                                                                                                                                                                                                                       !(kl_V3913tth@(Cons (!kl_V3913tthh)
-                                                                                                                                                                                                                                                                                                           (!kl_V3913ttht))) -> pat_cond_9 kl_V3913tth kl_V3913tthh kl_V3913ttht
-                                                                                                                                                                                                                                                                                       _ -> pat_cond_28
-                                                                                                                                                                                                                                                                   case kl_if_8 of
-                                                                                                                                                                                                                                                                       Atom (B (True)) -> do return (Atom (B True))
-                                                                                                                                                                                                                                                                       Atom (B (False)) -> do do return (Atom (B False))
-                                                                                                                                                                                                                                                                       _ -> throwError "if: expected boolean"
-                                                                                                                                                                                                                pat_cond_29 = do do return (Atom (B False))
-                                                                                                                                                                                                             in case kl_V3913tt of
-                                                                                                                                                                                                                    !(kl_V3913tt@(Cons (!kl_V3913tth)
-                                                                                                                                                                                                                                       (!kl_V3913ttt))) -> pat_cond_7 kl_V3913tt kl_V3913tth kl_V3913ttt
-                                                                                                                                                                                                                    _ -> pat_cond_29
-                                                                                                                                                                                                case kl_if_6 of
-                                                                                                                                                                                                    Atom (B (True)) -> do return (Atom (B True))
-                                                                                                                                                                                                    Atom (B (False)) -> do do return (Atom (B False))
-                                                                                                                                                                                                    _ -> throwError "if: expected boolean"
-                                                                                                                                                pat_cond_30 = do do return (Atom (B False))
-                                                                                                                                             in case kl_V3913t of
-                                                                                                                                                    !(kl_V3913t@(Cons (!kl_V3913th)
-                                                                                                                                                                      (!kl_V3913tt))) -> pat_cond_5 kl_V3913t kl_V3913th kl_V3913tt
-                                                                                                                                                    _ -> pat_cond_30
-                                                                                                                                case kl_if_4 of
-                                                                                                                                    Atom (B (True)) -> do return (Atom (B True))
-                                                                                                                                    Atom (B (False)) -> do do return (Atom (B False))
-                                                                                                                                    _ -> throwError "if: expected boolean"
-                                                                                                                pat_cond_31 = do do return (Atom (B False))
-                                                                                                             in case kl_V3913h of
-                                                                                                                    kl_V3913h@(Atom (UnboundSym "cn")) -> pat_cond_3
-                                                                                                                    kl_V3913h@(ApplC (PL "cn"
-                                                                                                                                         _)) -> pat_cond_3
-                                                                                                                    kl_V3913h@(ApplC (Func "cn"
-                                                                                                                                           _)) -> pat_cond_3
-                                                                                                                    _ -> pat_cond_31
-                                                                                                case kl_if_2 of
-                                                                                                    Atom (B (True)) -> do return (Atom (B True))
-                                                                                                    Atom (B (False)) -> do do return (Atom (B False))
-                                                                                                    _ -> throwError "if: expected boolean"
-                                                   pat_cond_32 = do do return (Atom (B False))
-                                                in case kl_V3913 of
-                                                       !(kl_V3913@(Cons (!kl_V3913h)
-                                                                        (!kl_V3913t))) -> pat_cond_1 kl_V3913 kl_V3913h kl_V3913t
-                                                       _ -> pat_cond_32
-                                   case kl_if_0 of
-                                       Atom (B (True)) -> do !appl_33 <- kl_V3913 `pseq` tl kl_V3913
-                                                             !appl_34 <- appl_33 `pseq` hd appl_33
-                                                             !appl_35 <- kl_V3913 `pseq` tl kl_V3913
-                                                             !appl_36 <- appl_35 `pseq` tl appl_35
-                                                             !appl_37 <- appl_36 `pseq` hd appl_36
-                                                             !appl_38 <- appl_37 `pseq` tl appl_37
-                                                             !appl_39 <- appl_38 `pseq` hd appl_38
-                                                             !appl_40 <- appl_34 `pseq` (appl_39 `pseq` cn appl_34 appl_39)
-                                                             !appl_41 <- kl_V3913 `pseq` tl kl_V3913
-                                                             !appl_42 <- appl_41 `pseq` tl appl_41
-                                                             !appl_43 <- appl_42 `pseq` hd appl_42
-                                                             !appl_44 <- appl_43 `pseq` tl appl_43
-                                                             !appl_45 <- appl_44 `pseq` tl appl_44
-                                                             !appl_46 <- appl_40 `pseq` (appl_45 `pseq` klCons appl_40 appl_45)
-                                                             appl_46 `pseq` klCons (ApplC (wrapNamed "cn" cn)) appl_46
-                                       Atom (B (False)) -> do do return kl_V3913
-                                       _ -> throwError "if: expected boolean"
-
-kl_shen_proc_nl :: Types.KLValue ->
-                   Types.KLContext Types.Env Types.KLValue
-kl_shen_proc_nl (!kl_V3915) = do let pat_cond_0 = do return (Types.Atom (Types.Str ""))
-                                     pat_cond_1 = do !kl_if_2 <- kl_V3915 `pseq` kl_shen_PlusstringP kl_V3915
-                                                     !kl_if_3 <- case kl_if_2 of
-                                                                     Atom (B (True)) -> do !appl_4 <- kl_V3915 `pseq` pos kl_V3915 (Types.Atom (Types.N (Types.KI 0)))
-                                                                                           !kl_if_5 <- appl_4 `pseq` eq (Types.Atom (Types.Str "~")) appl_4
-                                                                                           !kl_if_6 <- case kl_if_5 of
-                                                                                                           Atom (B (True)) -> do !appl_7 <- kl_V3915 `pseq` tlstr kl_V3915
-                                                                                                                                 !kl_if_8 <- appl_7 `pseq` kl_shen_PlusstringP appl_7
-                                                                                                                                 !kl_if_9 <- case kl_if_8 of
-                                                                                                                                                 Atom (B (True)) -> do !appl_10 <- kl_V3915 `pseq` tlstr kl_V3915
-                                                                                                                                                                       !appl_11 <- appl_10 `pseq` pos appl_10 (Types.Atom (Types.N (Types.KI 0)))
-                                                                                                                                                                       !kl_if_12 <- appl_11 `pseq` eq (Types.Atom (Types.Str "%")) appl_11
-                                                                                                                                                                       case kl_if_12 of
-                                                                                                                                                                           Atom (B (True)) -> do return (Atom (B True))
-                                                                                                                                                                           Atom (B (False)) -> do do return (Atom (B False))
-                                                                                                                                                                           _ -> throwError "if: expected boolean"
-                                                                                                                                                 Atom (B (False)) -> do do return (Atom (B False))
-                                                                                                                                                 _ -> throwError "if: expected boolean"
-                                                                                                                                 case kl_if_9 of
-                                                                                                                                     Atom (B (True)) -> do return (Atom (B True))
-                                                                                                                                     Atom (B (False)) -> do do return (Atom (B False))
-                                                                                                                                     _ -> throwError "if: expected boolean"
-                                                                                                           Atom (B (False)) -> do do return (Atom (B False))
-                                                                                                           _ -> throwError "if: expected boolean"
-                                                                                           case kl_if_6 of
-                                                                                               Atom (B (True)) -> do return (Atom (B True))
-                                                                                               Atom (B (False)) -> do do return (Atom (B False))
-                                                                                               _ -> throwError "if: expected boolean"
-                                                                     Atom (B (False)) -> do do return (Atom (B False))
-                                                                     _ -> throwError "if: expected boolean"
-                                                     case kl_if_3 of
-                                                         Atom (B (True)) -> do !appl_13 <- nToString (Types.Atom (Types.N (Types.KI 10)))
-                                                                               !appl_14 <- kl_V3915 `pseq` tlstr kl_V3915
-                                                                               !appl_15 <- appl_14 `pseq` tlstr appl_14
-                                                                               !appl_16 <- appl_15 `pseq` kl_shen_proc_nl appl_15
-                                                                               appl_13 `pseq` (appl_16 `pseq` cn appl_13 appl_16)
-                                                         Atom (B (False)) -> do !kl_if_17 <- kl_V3915 `pseq` kl_shen_PlusstringP kl_V3915
-                                                                                case kl_if_17 of
-                                                                                    Atom (B (True)) -> do !appl_18 <- kl_V3915 `pseq` pos kl_V3915 (Types.Atom (Types.N (Types.KI 0)))
-                                                                                                          !appl_19 <- kl_V3915 `pseq` tlstr kl_V3915
-                                                                                                          !appl_20 <- appl_19 `pseq` kl_shen_proc_nl appl_19
-                                                                                                          appl_18 `pseq` (appl_20 `pseq` cn appl_18 appl_20)
-                                                                                    Atom (B (False)) -> do do kl_shen_f_error (ApplC (wrapNamed "shen.proc-nl" kl_shen_proc_nl))
-                                                                                    _ -> throwError "if: expected boolean"
-                                                         _ -> throwError "if: expected boolean"
-                                  in case kl_V3915 of
-                                         kl_V3915@(Atom (Str "")) -> pat_cond_0
-                                         _ -> pat_cond_1
-
-kl_shen_mkstr_r :: Types.KLValue ->
-                   Types.KLValue -> Types.KLContext Types.Env Types.KLValue
-kl_shen_mkstr_r (!kl_V3918) (!kl_V3919) = do let pat_cond_0 = do return kl_V3918
-                                                 pat_cond_1 kl_V3919 kl_V3919h kl_V3919t = do !appl_2 <- kl_V3918 `pseq` klCons kl_V3918 (Types.Atom Types.Nil)
-                                                                                              !appl_3 <- kl_V3919h `pseq` (appl_2 `pseq` klCons kl_V3919h appl_2)
-                                                                                              !appl_4 <- appl_3 `pseq` klCons (ApplC (wrapNamed "shen.insert" kl_shen_insert)) appl_3
-                                                                                              appl_4 `pseq` (kl_V3919t `pseq` kl_shen_mkstr_r appl_4 kl_V3919t)
-                                                 pat_cond_5 = do do kl_shen_f_error (ApplC (wrapNamed "shen.mkstr-r" kl_shen_mkstr_r))
-                                              in case kl_V3919 of
-                                                     kl_V3919@(Atom (Nil)) -> pat_cond_0
-                                                     !(kl_V3919@(Cons (!kl_V3919h)
-                                                                      (!kl_V3919t))) -> pat_cond_1 kl_V3919 kl_V3919h kl_V3919t
-                                                     _ -> pat_cond_5
-
-kl_shen_insert :: Types.KLValue ->
-                  Types.KLValue -> Types.KLContext Types.Env Types.KLValue
-kl_shen_insert (!kl_V3922) (!kl_V3923) = do kl_V3922 `pseq` (kl_V3923 `pseq` kl_shen_insert_h kl_V3922 kl_V3923 (Types.Atom (Types.Str "")))
-
-kl_shen_insert_h :: Types.KLValue ->
-                    Types.KLValue ->
-                    Types.KLValue -> Types.KLContext Types.Env Types.KLValue
-kl_shen_insert_h (!kl_V3929) (!kl_V3930) (!kl_V3931) = do let pat_cond_0 = do return kl_V3931
-                                                              pat_cond_1 = do !kl_if_2 <- kl_V3930 `pseq` kl_shen_PlusstringP kl_V3930
-                                                                              !kl_if_3 <- case kl_if_2 of
-                                                                                              Atom (B (True)) -> do !appl_4 <- kl_V3930 `pseq` pos kl_V3930 (Types.Atom (Types.N (Types.KI 0)))
-                                                                                                                    !kl_if_5 <- appl_4 `pseq` eq (Types.Atom (Types.Str "~")) appl_4
-                                                                                                                    !kl_if_6 <- case kl_if_5 of
-                                                                                                                                    Atom (B (True)) -> do !appl_7 <- kl_V3930 `pseq` tlstr kl_V3930
-                                                                                                                                                          !kl_if_8 <- appl_7 `pseq` kl_shen_PlusstringP appl_7
-                                                                                                                                                          !kl_if_9 <- case kl_if_8 of
-                                                                                                                                                                          Atom (B (True)) -> do !appl_10 <- kl_V3930 `pseq` tlstr kl_V3930
-                                                                                                                                                                                                !appl_11 <- appl_10 `pseq` pos appl_10 (Types.Atom (Types.N (Types.KI 0)))
-                                                                                                                                                                                                !kl_if_12 <- appl_11 `pseq` eq (Types.Atom (Types.Str "A")) appl_11
-                                                                                                                                                                                                case kl_if_12 of
-                                                                                                                                                                                                    Atom (B (True)) -> do return (Atom (B True))
-                                                                                                                                                                                                    Atom (B (False)) -> do do return (Atom (B False))
-                                                                                                                                                                                                    _ -> throwError "if: expected boolean"
-                                                                                                                                                                          Atom (B (False)) -> do do return (Atom (B False))
-                                                                                                                                                                          _ -> throwError "if: expected boolean"
-                                                                                                                                                          case kl_if_9 of
-                                                                                                                                                              Atom (B (True)) -> do return (Atom (B True))
-                                                                                                                                                              Atom (B (False)) -> do do return (Atom (B False))
-                                                                                                                                                              _ -> throwError "if: expected boolean"
-                                                                                                                                    Atom (B (False)) -> do do return (Atom (B False))
-                                                                                                                                    _ -> throwError "if: expected boolean"
-                                                                                                                    case kl_if_6 of
-                                                                                                                        Atom (B (True)) -> do return (Atom (B True))
-                                                                                                                        Atom (B (False)) -> do do return (Atom (B False))
-                                                                                                                        _ -> throwError "if: expected boolean"
-                                                                                              Atom (B (False)) -> do do return (Atom (B False))
-                                                                                              _ -> throwError "if: expected boolean"
-                                                                              case kl_if_3 of
-                                                                                  Atom (B (True)) -> do !appl_13 <- kl_V3930 `pseq` tlstr kl_V3930
-                                                                                                        !appl_14 <- appl_13 `pseq` tlstr appl_13
-                                                                                                        !appl_15 <- kl_V3929 `pseq` (appl_14 `pseq` kl_shen_app kl_V3929 appl_14 (Types.Atom (Types.UnboundSym "shen.a")))
-                                                                                                        kl_V3931 `pseq` (appl_15 `pseq` cn kl_V3931 appl_15)
-                                                                                  Atom (B (False)) -> do !kl_if_16 <- kl_V3930 `pseq` kl_shen_PlusstringP kl_V3930
-                                                                                                         !kl_if_17 <- case kl_if_16 of
-                                                                                                                          Atom (B (True)) -> do !appl_18 <- kl_V3930 `pseq` pos kl_V3930 (Types.Atom (Types.N (Types.KI 0)))
-                                                                                                                                                !kl_if_19 <- appl_18 `pseq` eq (Types.Atom (Types.Str "~")) appl_18
-                                                                                                                                                !kl_if_20 <- case kl_if_19 of
-                                                                                                                                                                 Atom (B (True)) -> do !appl_21 <- kl_V3930 `pseq` tlstr kl_V3930
-                                                                                                                                                                                       !kl_if_22 <- appl_21 `pseq` kl_shen_PlusstringP appl_21
-                                                                                                                                                                                       !kl_if_23 <- case kl_if_22 of
-                                                                                                                                                                                                        Atom (B (True)) -> do !appl_24 <- kl_V3930 `pseq` tlstr kl_V3930
-                                                                                                                                                                                                                              !appl_25 <- appl_24 `pseq` pos appl_24 (Types.Atom (Types.N (Types.KI 0)))
-                                                                                                                                                                                                                              !kl_if_26 <- appl_25 `pseq` eq (Types.Atom (Types.Str "R")) appl_25
-                                                                                                                                                                                                                              case kl_if_26 of
-                                                                                                                                                                                                                                  Atom (B (True)) -> do return (Atom (B True))
-                                                                                                                                                                                                                                  Atom (B (False)) -> do do return (Atom (B False))
-                                                                                                                                                                                                                                  _ -> throwError "if: expected boolean"
-                                                                                                                                                                                                        Atom (B (False)) -> do do return (Atom (B False))
-                                                                                                                                                                                                        _ -> throwError "if: expected boolean"
-                                                                                                                                                                                       case kl_if_23 of
-                                                                                                                                                                                           Atom (B (True)) -> do return (Atom (B True))
-                                                                                                                                                                                           Atom (B (False)) -> do do return (Atom (B False))
-                                                                                                                                                                                           _ -> throwError "if: expected boolean"
-                                                                                                                                                                 Atom (B (False)) -> do do return (Atom (B False))
-                                                                                                                                                                 _ -> throwError "if: expected boolean"
-                                                                                                                                                case kl_if_20 of
-                                                                                                                                                    Atom (B (True)) -> do return (Atom (B True))
-                                                                                                                                                    Atom (B (False)) -> do do return (Atom (B False))
-                                                                                                                                                    _ -> throwError "if: expected boolean"
-                                                                                                                          Atom (B (False)) -> do do return (Atom (B False))
-                                                                                                                          _ -> throwError "if: expected boolean"
-                                                                                                         case kl_if_17 of
-                                                                                                             Atom (B (True)) -> do !appl_27 <- kl_V3930 `pseq` tlstr kl_V3930
-                                                                                                                                   !appl_28 <- appl_27 `pseq` tlstr appl_27
-                                                                                                                                   !appl_29 <- kl_V3929 `pseq` (appl_28 `pseq` kl_shen_app kl_V3929 appl_28 (Types.Atom (Types.UnboundSym "shen.r")))
-                                                                                                                                   kl_V3931 `pseq` (appl_29 `pseq` cn kl_V3931 appl_29)
-                                                                                                             Atom (B (False)) -> do !kl_if_30 <- kl_V3930 `pseq` kl_shen_PlusstringP kl_V3930
-                                                                                                                                    !kl_if_31 <- case kl_if_30 of
-                                                                                                                                                     Atom (B (True)) -> do !appl_32 <- kl_V3930 `pseq` pos kl_V3930 (Types.Atom (Types.N (Types.KI 0)))
-                                                                                                                                                                           !kl_if_33 <- appl_32 `pseq` eq (Types.Atom (Types.Str "~")) appl_32
-                                                                                                                                                                           !kl_if_34 <- case kl_if_33 of
-                                                                                                                                                                                            Atom (B (True)) -> do !appl_35 <- kl_V3930 `pseq` tlstr kl_V3930
-                                                                                                                                                                                                                  !kl_if_36 <- appl_35 `pseq` kl_shen_PlusstringP appl_35
-                                                                                                                                                                                                                  !kl_if_37 <- case kl_if_36 of
-                                                                                                                                                                                                                                   Atom (B (True)) -> do !appl_38 <- kl_V3930 `pseq` tlstr kl_V3930
-                                                                                                                                                                                                                                                         !appl_39 <- appl_38 `pseq` pos appl_38 (Types.Atom (Types.N (Types.KI 0)))
-                                                                                                                                                                                                                                                         !kl_if_40 <- appl_39 `pseq` eq (Types.Atom (Types.Str "S")) appl_39
-                                                                                                                                                                                                                                                         case kl_if_40 of
-                                                                                                                                                                                                                                                             Atom (B (True)) -> do return (Atom (B True))
-                                                                                                                                                                                                                                                             Atom (B (False)) -> do do return (Atom (B False))
-                                                                                                                                                                                                                                                             _ -> throwError "if: expected boolean"
-                                                                                                                                                                                                                                   Atom (B (False)) -> do do return (Atom (B False))
-                                                                                                                                                                                                                                   _ -> throwError "if: expected boolean"
-                                                                                                                                                                                                                  case kl_if_37 of
-                                                                                                                                                                                                                      Atom (B (True)) -> do return (Atom (B True))
-                                                                                                                                                                                                                      Atom (B (False)) -> do do return (Atom (B False))
-                                                                                                                                                                                                                      _ -> throwError "if: expected boolean"
-                                                                                                                                                                                            Atom (B (False)) -> do do return (Atom (B False))
-                                                                                                                                                                                            _ -> throwError "if: expected boolean"
-                                                                                                                                                                           case kl_if_34 of
-                                                                                                                                                                               Atom (B (True)) -> do return (Atom (B True))
-                                                                                                                                                                               Atom (B (False)) -> do do return (Atom (B False))
-                                                                                                                                                                               _ -> throwError "if: expected boolean"
-                                                                                                                                                     Atom (B (False)) -> do do return (Atom (B False))
-                                                                                                                                                     _ -> throwError "if: expected boolean"
-                                                                                                                                    case kl_if_31 of
-                                                                                                                                        Atom (B (True)) -> do !appl_41 <- kl_V3930 `pseq` tlstr kl_V3930
-                                                                                                                                                              !appl_42 <- appl_41 `pseq` tlstr appl_41
-                                                                                                                                                              !appl_43 <- kl_V3929 `pseq` (appl_42 `pseq` kl_shen_app kl_V3929 appl_42 (Types.Atom (Types.UnboundSym "shen.s")))
-                                                                                                                                                              kl_V3931 `pseq` (appl_43 `pseq` cn kl_V3931 appl_43)
-                                                                                                                                        Atom (B (False)) -> do !kl_if_44 <- kl_V3930 `pseq` kl_shen_PlusstringP kl_V3930
-                                                                                                                                                               case kl_if_44 of
-                                                                                                                                                                   Atom (B (True)) -> do !appl_45 <- kl_V3930 `pseq` tlstr kl_V3930
-                                                                                                                                                                                         !appl_46 <- kl_V3930 `pseq` pos kl_V3930 (Types.Atom (Types.N (Types.KI 0)))
-                                                                                                                                                                                         !appl_47 <- kl_V3931 `pseq` (appl_46 `pseq` cn kl_V3931 appl_46)
-                                                                                                                                                                                         kl_V3929 `pseq` (appl_45 `pseq` (appl_47 `pseq` kl_shen_insert_h kl_V3929 appl_45 appl_47))
-                                                                                                                                                                   Atom (B (False)) -> do do kl_shen_f_error (ApplC (wrapNamed "shen.insert-h" kl_shen_insert_h))
-                                                                                                                                                                   _ -> throwError "if: expected boolean"
-                                                                                                                                        _ -> throwError "if: expected boolean"
-                                                                                                             _ -> throwError "if: expected boolean"
-                                                                                  _ -> throwError "if: expected boolean"
-                                                           in case kl_V3930 of
-                                                                  kl_V3930@(Atom (Str "")) -> pat_cond_0
-                                                                  _ -> pat_cond_1
-
-kl_shen_app :: Types.KLValue ->
-               Types.KLValue ->
-               Types.KLValue -> Types.KLContext Types.Env Types.KLValue
-kl_shen_app (!kl_V3935) (!kl_V3936) (!kl_V3937) = do !appl_0 <- kl_V3935 `pseq` (kl_V3937 `pseq` kl_shen_arg_RBstr kl_V3935 kl_V3937)
-                                                     appl_0 `pseq` (kl_V3936 `pseq` cn appl_0 kl_V3936)
-
-kl_shen_arg_RBstr :: Types.KLValue ->
-                     Types.KLValue -> Types.KLContext Types.Env Types.KLValue
-kl_shen_arg_RBstr (!kl_V3945) (!kl_V3946) = do !appl_0 <- kl_fail
-                                               !kl_if_1 <- kl_V3945 `pseq` (appl_0 `pseq` eq kl_V3945 appl_0)
-                                               case kl_if_1 of
-                                                   Atom (B (True)) -> do return (Types.Atom (Types.Str "..."))
-                                                   Atom (B (False)) -> do !kl_if_2 <- kl_V3945 `pseq` kl_shen_listP kl_V3945
-                                                                          case kl_if_2 of
-                                                                              Atom (B (True)) -> do kl_V3945 `pseq` (kl_V3946 `pseq` kl_shen_list_RBstr kl_V3945 kl_V3946)
-                                                                              Atom (B (False)) -> do !kl_if_3 <- kl_V3945 `pseq` stringP kl_V3945
-                                                                                                     case kl_if_3 of
-                                                                                                         Atom (B (True)) -> do kl_V3945 `pseq` (kl_V3946 `pseq` kl_shen_str_RBstr kl_V3945 kl_V3946)
-                                                                                                         Atom (B (False)) -> do !kl_if_4 <- kl_V3945 `pseq` absvectorP kl_V3945
-                                                                                                                                case kl_if_4 of
-                                                                                                                                    Atom (B (True)) -> do kl_V3945 `pseq` (kl_V3946 `pseq` kl_shen_vector_RBstr kl_V3945 kl_V3946)
-                                                                                                                                    Atom (B (False)) -> do do kl_V3945 `pseq` kl_shen_atom_RBstr kl_V3945
-                                                                                                                                    _ -> throwError "if: expected boolean"
-                                                                                                         _ -> throwError "if: expected boolean"
-                                                                              _ -> throwError "if: expected boolean"
-                                                   _ -> throwError "if: expected boolean"
-
-kl_shen_list_RBstr :: Types.KLValue ->
-                      Types.KLValue -> Types.KLContext Types.Env Types.KLValue
-kl_shen_list_RBstr (!kl_V3949) (!kl_V3950) = do let pat_cond_0 = do !appl_1 <- kl_shen_maxseq
-                                                                    !appl_2 <- kl_V3949 `pseq` (appl_1 `pseq` kl_shen_iter_list kl_V3949 (Types.Atom (Types.UnboundSym "shen.r")) appl_1)
-                                                                    !appl_3 <- appl_2 `pseq` kl_Ats appl_2 (Types.Atom (Types.Str ")"))
-                                                                    appl_3 `pseq` kl_Ats (Types.Atom (Types.Str "(")) appl_3
-                                                    pat_cond_4 = do do !appl_5 <- kl_shen_maxseq
-                                                                       !appl_6 <- kl_V3949 `pseq` (kl_V3950 `pseq` (appl_5 `pseq` kl_shen_iter_list kl_V3949 kl_V3950 appl_5))
-                                                                       !appl_7 <- appl_6 `pseq` kl_Ats appl_6 (Types.Atom (Types.Str "]"))
-                                                                       appl_7 `pseq` kl_Ats (Types.Atom (Types.Str "[")) appl_7
-                                                 in case kl_V3950 of
-                                                        kl_V3950@(Atom (UnboundSym "shen.r")) -> pat_cond_0
-                                                        kl_V3950@(ApplC (PL "shen.r"
-                                                                            _)) -> pat_cond_0
-                                                        kl_V3950@(ApplC (Func "shen.r"
-                                                                              _)) -> pat_cond_0
-                                                        _ -> pat_cond_4
-
-kl_shen_maxseq :: Types.KLContext Types.Env Types.KLValue
-kl_shen_maxseq = do value (Types.Atom (Types.UnboundSym "*maximum-print-sequence-size*"))
-
-kl_shen_iter_list :: Types.KLValue ->
-                     Types.KLValue ->
-                     Types.KLValue -> Types.KLContext Types.Env Types.KLValue
-kl_shen_iter_list (!kl_V3964) (!kl_V3965) (!kl_V3966) = do let pat_cond_0 = do return (Types.Atom (Types.Str ""))
-                                                               pat_cond_1 = do let pat_cond_2 = do return (Types.Atom (Types.Str "... etc"))
-                                                                                   pat_cond_3 = do let pat_cond_4 kl_V3964 kl_V3964h = do kl_V3964h `pseq` (kl_V3965 `pseq` kl_shen_arg_RBstr kl_V3964h kl_V3965)
-                                                                                                       pat_cond_5 kl_V3964 kl_V3964h kl_V3964t = do !appl_6 <- kl_V3964h `pseq` (kl_V3965 `pseq` kl_shen_arg_RBstr kl_V3964h kl_V3965)
-                                                                                                                                                    !appl_7 <- kl_V3966 `pseq` Primitives.subtract kl_V3966 (Types.Atom (Types.N (Types.KI 1)))
-                                                                                                                                                    !appl_8 <- kl_V3964t `pseq` (kl_V3965 `pseq` (appl_7 `pseq` kl_shen_iter_list kl_V3964t kl_V3965 appl_7))
-                                                                                                                                                    !appl_9 <- appl_8 `pseq` kl_Ats (Types.Atom (Types.Str " ")) appl_8
-                                                                                                                                                    appl_6 `pseq` (appl_9 `pseq` kl_Ats appl_6 appl_9)
-                                                                                                       pat_cond_10 = do do !appl_11 <- kl_V3964 `pseq` (kl_V3965 `pseq` kl_shen_arg_RBstr kl_V3964 kl_V3965)
-                                                                                                                           !appl_12 <- appl_11 `pseq` kl_Ats (Types.Atom (Types.Str " ")) appl_11
-                                                                                                                           appl_12 `pseq` kl_Ats (Types.Atom (Types.Str "|")) appl_12
-                                                                                                    in case kl_V3964 of
-                                                                                                           !(kl_V3964@(Cons (!kl_V3964h)
-                                                                                                                            (Atom (Nil)))) -> pat_cond_4 kl_V3964 kl_V3964h
-                                                                                                           !(kl_V3964@(Cons (!kl_V3964h)
-                                                                                                                            (!kl_V3964t))) -> pat_cond_5 kl_V3964 kl_V3964h kl_V3964t
-                                                                                                           _ -> pat_cond_10
-                                                                                in case kl_V3966 of
-                                                                                       kl_V3966@(Atom (N (KI 0))) -> pat_cond_2
-                                                                                       _ -> pat_cond_3
-                                                            in case kl_V3964 of
-                                                                   kl_V3964@(Atom (Nil)) -> pat_cond_0
-                                                                   _ -> pat_cond_1
-
-kl_shen_str_RBstr :: Types.KLValue ->
-                     Types.KLValue -> Types.KLContext Types.Env Types.KLValue
-kl_shen_str_RBstr (!kl_V3973) (!kl_V3974) = do let pat_cond_0 = do return kl_V3973
-                                                   pat_cond_1 = do do !appl_2 <- nToString (Types.Atom (Types.N (Types.KI 34)))
-                                                                      !appl_3 <- nToString (Types.Atom (Types.N (Types.KI 34)))
-                                                                      !appl_4 <- kl_V3973 `pseq` (appl_3 `pseq` kl_Ats kl_V3973 appl_3)
-                                                                      appl_2 `pseq` (appl_4 `pseq` kl_Ats appl_2 appl_4)
-                                                in case kl_V3974 of
-                                                       kl_V3974@(Atom (UnboundSym "shen.a")) -> pat_cond_0
-                                                       kl_V3974@(ApplC (PL "shen.a"
-                                                                           _)) -> pat_cond_0
-                                                       kl_V3974@(ApplC (Func "shen.a"
-                                                                             _)) -> pat_cond_0
-                                                       _ -> pat_cond_1
-
-kl_shen_vector_RBstr :: Types.KLValue ->
-                        Types.KLValue -> Types.KLContext Types.Env Types.KLValue
-kl_shen_vector_RBstr (!kl_V3977) (!kl_V3978) = do !kl_if_0 <- kl_V3977 `pseq` kl_shen_print_vectorP kl_V3977
-                                                  case kl_if_0 of
-                                                      Atom (B (True)) -> do !appl_1 <- kl_V3977 `pseq` addressFrom kl_V3977 (Types.Atom (Types.N (Types.KI 0)))
-                                                                            !appl_2 <- appl_1 `pseq` kl_function appl_1
-                                                                            kl_V3977 `pseq` applyWrapper appl_2 [kl_V3977]
-                                                      Atom (B (False)) -> do do !kl_if_3 <- kl_V3977 `pseq` kl_vectorP kl_V3977
-                                                                                case kl_if_3 of
-                                                                                    Atom (B (True)) -> do !appl_4 <- kl_shen_maxseq
-                                                                                                          !appl_5 <- kl_V3977 `pseq` (kl_V3978 `pseq` (appl_4 `pseq` kl_shen_iter_vector kl_V3977 (Types.Atom (Types.N (Types.KI 1))) kl_V3978 appl_4))
-                                                                                                          !appl_6 <- appl_5 `pseq` kl_Ats appl_5 (Types.Atom (Types.Str ">"))
-                                                                                                          appl_6 `pseq` kl_Ats (Types.Atom (Types.Str "<")) appl_6
-                                                                                    Atom (B (False)) -> do do !appl_7 <- kl_shen_maxseq
-                                                                                                              !appl_8 <- kl_V3977 `pseq` (kl_V3978 `pseq` (appl_7 `pseq` kl_shen_iter_vector kl_V3977 (Types.Atom (Types.N (Types.KI 0))) kl_V3978 appl_7))
-                                                                                                              !appl_9 <- appl_8 `pseq` kl_Ats appl_8 (Types.Atom (Types.Str ">>"))
-                                                                                                              !appl_10 <- appl_9 `pseq` kl_Ats (Types.Atom (Types.Str "<")) appl_9
-                                                                                                              appl_10 `pseq` kl_Ats (Types.Atom (Types.Str "<")) appl_10
-                                                                                    _ -> throwError "if: expected boolean"
-                                                      _ -> throwError "if: expected boolean"
-
-kl_shen_print_vectorP :: Types.KLValue ->
-                         Types.KLContext Types.Env Types.KLValue
-kl_shen_print_vectorP (!kl_V3980) = do let !appl_0 = ApplC (Func "lambda" (Context (\(!kl_Zero) -> do let pat_cond_1 = do return (Atom (B True))
-                                                                                                          pat_cond_2 = do do let pat_cond_3 = do return (Atom (B True))
-                                                                                                                                 pat_cond_4 = do do !appl_5 <- kl_Zero `pseq` numberP kl_Zero
-                                                                                                                                                    !kl_if_6 <- appl_5 `pseq` kl_not appl_5
-                                                                                                                                                    case kl_if_6 of
-                                                                                                                                                        Atom (B (True)) -> do kl_Zero `pseq` kl_shen_fboundP kl_Zero
-                                                                                                                                                        Atom (B (False)) -> do do return (Atom (B False))
-                                                                                                                                                        _ -> throwError "if: expected boolean"
-                                                                                                                              in case kl_Zero of
-                                                                                                                                     kl_Zero@(Atom (UnboundSym "shen.pvar")) -> pat_cond_3
-                                                                                                                                     kl_Zero@(ApplC (PL "shen.pvar"
-                                                                                                                                                        _)) -> pat_cond_3
-                                                                                                                                     kl_Zero@(ApplC (Func "shen.pvar"
-                                                                                                                                                          _)) -> pat_cond_3
-                                                                                                                                     _ -> pat_cond_4
-                                                                                                       in case kl_Zero of
-                                                                                                              kl_Zero@(Atom (UnboundSym "shen.tuple")) -> pat_cond_1
-                                                                                                              kl_Zero@(ApplC (PL "shen.tuple"
-                                                                                                                                 _)) -> pat_cond_1
-                                                                                                              kl_Zero@(ApplC (Func "shen.tuple"
-                                                                                                                                   _)) -> pat_cond_1
-                                                                                                              _ -> pat_cond_2)))
-                                       !appl_7 <- kl_V3980 `pseq` addressFrom kl_V3980 (Types.Atom (Types.N (Types.KI 0)))
-                                       appl_7 `pseq` applyWrapper appl_0 [appl_7]
-
-kl_shen_fboundP :: Types.KLValue ->
-                   Types.KLContext Types.Env Types.KLValue
-kl_shen_fboundP (!kl_V3982) = do (do !appl_0 <- kl_V3982 `pseq` kl_ps kl_V3982
-                                     appl_0 `pseq` kl_do appl_0 (Atom (B True))) `catchError` (\(!kl_E) -> do return (Atom (B False)))
-
-kl_shen_tuple :: Types.KLValue ->
-                 Types.KLContext Types.Env Types.KLValue
-kl_shen_tuple (!kl_V3984) = do !appl_0 <- kl_V3984 `pseq` addressFrom kl_V3984 (Types.Atom (Types.N (Types.KI 1)))
-                               !appl_1 <- kl_V3984 `pseq` addressFrom kl_V3984 (Types.Atom (Types.N (Types.KI 2)))
-                               !appl_2 <- appl_1 `pseq` kl_shen_app appl_1 (Types.Atom (Types.Str ")")) (Types.Atom (Types.UnboundSym "shen.s"))
-                               !appl_3 <- appl_2 `pseq` cn (Types.Atom (Types.Str " ")) appl_2
-                               !appl_4 <- appl_0 `pseq` (appl_3 `pseq` kl_shen_app appl_0 appl_3 (Types.Atom (Types.UnboundSym "shen.s")))
-                               appl_4 `pseq` cn (Types.Atom (Types.Str "(@p ")) appl_4
-
-kl_shen_iter_vector :: Types.KLValue ->
-                       Types.KLValue ->
-                       Types.KLValue ->
-                       Types.KLValue -> Types.KLContext Types.Env Types.KLValue
-kl_shen_iter_vector (!kl_V3995) (!kl_V3996) (!kl_V3997) (!kl_V3998) = do let pat_cond_0 = do return (Types.Atom (Types.Str "... etc"))
-                                                                             pat_cond_1 = do do let !appl_2 = ApplC (Func "lambda" (Context (\(!kl_Item) -> do let !appl_3 = ApplC (Func "lambda" (Context (\(!kl_Next) -> do let pat_cond_4 = do return (Types.Atom (Types.Str ""))
-                                                                                                                                                                                                                                  pat_cond_5 = do do let pat_cond_6 = do kl_Item `pseq` (kl_V3997 `pseq` kl_shen_arg_RBstr kl_Item kl_V3997)
-                                                                                                                                                                                                                                                         pat_cond_7 = do do !appl_8 <- kl_Item `pseq` (kl_V3997 `pseq` kl_shen_arg_RBstr kl_Item kl_V3997)
-                                                                                                                                                                                                                                                                            !appl_9 <- kl_V3996 `pseq` add kl_V3996 (Types.Atom (Types.N (Types.KI 1)))
-                                                                                                                                                                                                                                                                            !appl_10 <- kl_V3998 `pseq` Primitives.subtract kl_V3998 (Types.Atom (Types.N (Types.KI 1)))
-                                                                                                                                                                                                                                                                            !appl_11 <- kl_V3995 `pseq` (appl_9 `pseq` (kl_V3997 `pseq` (appl_10 `pseq` kl_shen_iter_vector kl_V3995 appl_9 kl_V3997 appl_10)))
-                                                                                                                                                                                                                                                                            !appl_12 <- appl_11 `pseq` kl_Ats (Types.Atom (Types.Str " ")) appl_11
-                                                                                                                                                                                                                                                                            appl_8 `pseq` (appl_12 `pseq` kl_Ats appl_8 appl_12)
-                                                                                                                                                                                                                                                      in case kl_Next of
-                                                                                                                                                                                                                                                             kl_Next@(Atom (UnboundSym "shen.out-of-bounds")) -> pat_cond_6
-                                                                                                                                                                                                                                                             kl_Next@(ApplC (PL "shen.out-of-bounds"
-                                                                                                                                                                                                                                                                                _)) -> pat_cond_6
-                                                                                                                                                                                                                                                             kl_Next@(ApplC (Func "shen.out-of-bounds"
-                                                                                                                                                                                                                                                                                  _)) -> pat_cond_6
-                                                                                                                                                                                                                                                             _ -> pat_cond_7
-                                                                                                                                                                                                                               in case kl_Item of
-                                                                                                                                                                                                                                      kl_Item@(Atom (UnboundSym "shen.out-of-bounds")) -> pat_cond_4
-                                                                                                                                                                                                                                      kl_Item@(ApplC (PL "shen.out-of-bounds"
-                                                                                                                                                                                                                                                         _)) -> pat_cond_4
-                                                                                                                                                                                                                                      kl_Item@(ApplC (Func "shen.out-of-bounds"
-                                                                                                                                                                                                                                                           _)) -> pat_cond_4
-                                                                                                                                                                                                                                      _ -> pat_cond_5)))
-                                                                                                                                                               !appl_13 <- (do !appl_14 <- kl_V3996 `pseq` add kl_V3996 (Types.Atom (Types.N (Types.KI 1)))
-                                                                                                                                                                               kl_V3995 `pseq` (appl_14 `pseq` addressFrom kl_V3995 appl_14)) `catchError` (\(!kl_E) -> do return (Types.Atom (Types.UnboundSym "shen.out-of-bounds")))
-                                                                                                                                                               appl_13 `pseq` applyWrapper appl_3 [appl_13])))
-                                                                                                !appl_15 <- (do kl_V3995 `pseq` (kl_V3996 `pseq` addressFrom kl_V3995 kl_V3996)) `catchError` (\(!kl_E) -> do return (Types.Atom (Types.UnboundSym "shen.out-of-bounds")))
-                                                                                                appl_15 `pseq` applyWrapper appl_2 [appl_15]
-                                                                          in case kl_V3998 of
-                                                                                 kl_V3998@(Atom (N (KI 0))) -> pat_cond_0
-                                                                                 _ -> pat_cond_1
-
-kl_shen_atom_RBstr :: Types.KLValue ->
-                      Types.KLContext Types.Env Types.KLValue
-kl_shen_atom_RBstr (!kl_V4000) = do (do kl_V4000 `pseq` str kl_V4000) `catchError` (\(!kl_E) -> do kl_shen_funexstring)
-
-kl_shen_funexstring :: Types.KLContext Types.Env Types.KLValue
-kl_shen_funexstring = do !appl_0 <- intern (Types.Atom (Types.Str "x"))
-                         !appl_1 <- appl_0 `pseq` kl_gensym appl_0
-                         !appl_2 <- appl_1 `pseq` kl_shen_arg_RBstr appl_1 (Types.Atom (Types.UnboundSym "shen.a"))
-                         !appl_3 <- appl_2 `pseq` kl_Ats appl_2 (Types.Atom (Types.Str "\\DC1"))
-                         !appl_4 <- appl_3 `pseq` kl_Ats (Types.Atom (Types.Str "e")) appl_3
-                         !appl_5 <- appl_4 `pseq` kl_Ats (Types.Atom (Types.Str "n")) appl_4
-                         !appl_6 <- appl_5 `pseq` kl_Ats (Types.Atom (Types.Str "u")) appl_5
-                         !appl_7 <- appl_6 `pseq` kl_Ats (Types.Atom (Types.Str "f")) appl_6
-                         appl_7 `pseq` kl_Ats (Types.Atom (Types.Str "\\DLE")) appl_7
-
-kl_shen_listP :: Types.KLValue ->
-                 Types.KLContext Types.Env Types.KLValue
-kl_shen_listP (!kl_V4002) = do !kl_if_0 <- kl_V4002 `pseq` kl_emptyP kl_V4002
-                               case kl_if_0 of
-                                   Atom (B (True)) -> do return (Atom (B True))
-                                   Atom (B (False)) -> do do let pat_cond_1 kl_V4002 kl_V4002h kl_V4002t = do return (Atom (B True))
-                                                                 pat_cond_2 = do do return (Atom (B False))
-                                                              in case kl_V4002 of
-                                                                     !(kl_V4002@(Cons (!kl_V4002h)
-                                                                                      (!kl_V4002t))) -> pat_cond_1 kl_V4002 kl_V4002h kl_V4002t
-                                                                     _ -> pat_cond_2
-                                   _ -> throwError "if: expected boolean"
-
-expr9 :: Types.KLContext Types.Env Types.KLValue
-expr9 = do (do return (Types.Atom (Types.Str "Copyright (c) 2015, Mark Tarver\n\nAll rights reserved.\n\nRedistribution and use in source and binary forms, with or without\nmodification, are permitted provided that the following conditions are met:\n1. Redistributions of source code must retain the above copyright\n   notice, this list of conditions and the following disclaimer.\n2. Redistributions in binary form must reproduce the above copyright\n   notice, this list of conditions and the following disclaimer in the\n   documentation and/or other materials provided with the distribution.\n3. The name of Mark Tarver may not be used to endorse or promote products\n   derived from this software without specific prior written permission.\n\nTHIS SOFTWARE IS PROVIDED BY Mark Tarver ''AS IS'' AND ANY\nEXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED\nWARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE\nDISCLAIMED. IN NO EVENT SHALL Mark Tarver BE LIABLE FOR ANY\nDIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES\n(INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;\nLOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND\nON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT\n(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS\nSOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE."))) `catchError` (\(!kl_E) -> do return (Types.Atom (Types.Str "E")))
+{-# LANGUAGE BangPatterns #-}+{-# LANGUAGE OverloadedStrings #-}+{-# LANGUAGE Strict #-}+{-# LANGUAGE StrictData #-}+{-# LANGUAGE ViewPatterns #-}++module Backend.Writer where++import Control.Monad.Except+import Control.Parallel+import Environment+import Core.Primitives as Primitives+import Backend.Utils+import Core.Types+import Core.Utils+import Wrap+import Backend.Toplevel+import Backend.Core+import Backend.Sys+import Backend.Sequent+import Backend.Yacc+import Backend.Reader+import Backend.Prolog+import Backend.Track+import Backend.Load++{-+Copyright (c) 2015, Mark Tarver+All rights reserved.++Redistribution and use in source and binary forms, with or without+modification, are permitted provided that the following conditions are met:++1. Redistributions of source code must retain the above copyright+   notice, this list of conditions and the following disclaimer.+2. Redistributions in binary form must reproduce the above copyright+   notice, this list of conditions and the following disclaimer in the+   documentation and/or other materials provided with the distribution.+3. The name of Mark Tarver may not be used to endorse or promote products+   derived from this software without specific prior written permission.++THIS SOFTWARE IS PROVIDED BY Mark Tarver ''AS IS'' AND ANY+EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED+WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE+DISCLAIMED. IN NO EVENT SHALL Mark Tarver BE LIABLE FOR ANY+DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES+(INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;+LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND+ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT+(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS+SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.+-}++kl_pr :: Core.Types.KLValue ->+         Core.Types.KLValue ->+         Core.Types.KLContext Core.Types.Env Core.Types.KLValue+kl_pr (!kl_V4012) (!kl_V4013) = do (do kl_V4012 `pseq` (kl_V4013 `pseq` kl_shen_prh kl_V4012 kl_V4013 (Core.Types.Atom (Core.Types.N (Core.Types.KI 0))))) `catchError` (\(!kl_E) -> do return kl_V4012)++kl_shen_prh :: Core.Types.KLValue ->+               Core.Types.KLValue ->+               Core.Types.KLValue ->+               Core.Types.KLContext Core.Types.Env Core.Types.KLValue+kl_shen_prh (!kl_V4017) (!kl_V4018) (!kl_V4019) = do !appl_0 <- kl_V4017 `pseq` (kl_V4018 `pseq` (kl_V4019 `pseq` kl_shen_write_char_and_inc kl_V4017 kl_V4018 kl_V4019))+                                                     kl_V4017 `pseq` (kl_V4018 `pseq` (appl_0 `pseq` kl_shen_prh kl_V4017 kl_V4018 appl_0))++kl_shen_write_char_and_inc :: Core.Types.KLValue ->+                              Core.Types.KLValue ->+                              Core.Types.KLValue ->+                              Core.Types.KLContext Core.Types.Env Core.Types.KLValue+kl_shen_write_char_and_inc (!kl_V4023) (!kl_V4024) (!kl_V4025) = do !appl_0 <- kl_V4023 `pseq` (kl_V4025 `pseq` pos kl_V4023 kl_V4025)+                                                                    !appl_1 <- appl_0 `pseq` stringToN appl_0+                                                                    !appl_2 <- appl_1 `pseq` (kl_V4024 `pseq` writeByte appl_1 kl_V4024)+                                                                    !appl_3 <- kl_V4025 `pseq` add kl_V4025 (Core.Types.Atom (Core.Types.N (Core.Types.KI 1)))+                                                                    appl_2 `pseq` (appl_3 `pseq` kl_do appl_2 appl_3)++kl_print :: Core.Types.KLValue ->+            Core.Types.KLContext Core.Types.Env Core.Types.KLValue+kl_print (!kl_V4027) = do let !appl_0 = ApplC (Func "lambda" (Context (\(!kl_String) -> do let !appl_1 = ApplC (Func "lambda" (Context (\(!kl_Print) -> do return kl_V4027)))+                                                                                           !appl_2 <- kl_stoutput+                                                                                           !appl_3 <- kl_String `pseq` (appl_2 `pseq` kl_shen_prhush kl_String appl_2)+                                                                                           appl_3 `pseq` applyWrapper appl_1 [appl_3])))+                          !appl_4 <- kl_V4027 `pseq` kl_shen_insert kl_V4027 (Core.Types.Atom (Core.Types.Str "~S"))+                          appl_4 `pseq` applyWrapper appl_0 [appl_4]++kl_shen_prhush :: Core.Types.KLValue ->+                  Core.Types.KLValue ->+                  Core.Types.KLContext Core.Types.Env Core.Types.KLValue+kl_shen_prhush (!kl_V4030) (!kl_V4031) = do !kl_if_0 <- value (Core.Types.Atom (Core.Types.UnboundSym "*hush*"))+                                            case kl_if_0 of+                                                Atom (B (True)) -> do return kl_V4030+                                                Atom (B (False)) -> do do kl_V4030 `pseq` (kl_V4031 `pseq` kl_pr kl_V4030 kl_V4031)+                                                _ -> throwError "if: expected boolean"++kl_shen_mkstr :: Core.Types.KLValue ->+                 Core.Types.KLValue ->+                 Core.Types.KLContext Core.Types.Env Core.Types.KLValue+kl_shen_mkstr (!kl_V4034) (!kl_V4035) = do !kl_if_0 <- kl_V4034 `pseq` stringP kl_V4034+                                           case kl_if_0 of+                                               Atom (B (True)) -> do !appl_1 <- kl_V4034 `pseq` kl_shen_proc_nl kl_V4034+                                                                     appl_1 `pseq` (kl_V4035 `pseq` kl_shen_mkstr_l appl_1 kl_V4035)+                                               Atom (B (False)) -> do do let !appl_2 = Atom Nil+                                                                         !appl_3 <- kl_V4034 `pseq` (appl_2 `pseq` klCons kl_V4034 appl_2)+                                                                         !appl_4 <- appl_3 `pseq` klCons (ApplC (wrapNamed "shen.proc-nl" kl_shen_proc_nl)) appl_3+                                                                         appl_4 `pseq` (kl_V4035 `pseq` kl_shen_mkstr_r appl_4 kl_V4035)+                                               _ -> throwError "if: expected boolean"++kl_shen_mkstr_l :: Core.Types.KLValue ->+                   Core.Types.KLValue ->+                   Core.Types.KLContext Core.Types.Env Core.Types.KLValue+kl_shen_mkstr_l (!kl_V4038) (!kl_V4039) = do let !appl_0 = Atom Nil+                                             !kl_if_1 <- appl_0 `pseq` (kl_V4039 `pseq` eq appl_0 kl_V4039)+                                             case kl_if_1 of+                                                 Atom (B (True)) -> do return kl_V4038+                                                 Atom (B (False)) -> do let pat_cond_2 kl_V4039 kl_V4039h kl_V4039t = do !appl_3 <- kl_V4039h `pseq` (kl_V4038 `pseq` kl_shen_insert_l kl_V4039h kl_V4038)+                                                                                                                         appl_3 `pseq` (kl_V4039t `pseq` kl_shen_mkstr_l appl_3 kl_V4039t)+                                                                            pat_cond_4 = do do kl_shen_f_error (ApplC (wrapNamed "shen.mkstr-l" kl_shen_mkstr_l))+                                                                         in case kl_V4039 of+                                                                                !(kl_V4039@(Cons (!kl_V4039h)+                                                                                                 (!kl_V4039t))) -> pat_cond_2 kl_V4039 kl_V4039h kl_V4039t+                                                                                _ -> pat_cond_4+                                                 _ -> throwError "if: expected boolean"++kl_shen_insert_l :: Core.Types.KLValue ->+                    Core.Types.KLValue ->+                    Core.Types.KLContext Core.Types.Env Core.Types.KLValue+kl_shen_insert_l (!kl_V4044) (!kl_V4045) = do let pat_cond_0 = do return (Core.Types.Atom (Core.Types.Str ""))+                                                  pat_cond_1 = do !kl_if_2 <- kl_V4045 `pseq` kl_shen_PlusstringP kl_V4045+                                                                  !kl_if_3 <- case kl_if_2 of+                                                                                  Atom (B (True)) -> do !appl_4 <- kl_V4045 `pseq` pos kl_V4045 (Core.Types.Atom (Core.Types.N (Core.Types.KI 0)))+                                                                                                        !kl_if_5 <- appl_4 `pseq` eq (Core.Types.Atom (Core.Types.Str "~")) appl_4+                                                                                                        !kl_if_6 <- case kl_if_5 of+                                                                                                                        Atom (B (True)) -> do !appl_7 <- kl_V4045 `pseq` tlstr kl_V4045+                                                                                                                                              !kl_if_8 <- appl_7 `pseq` kl_shen_PlusstringP appl_7+                                                                                                                                              !kl_if_9 <- case kl_if_8 of+                                                                                                                                                              Atom (B (True)) -> do !appl_10 <- kl_V4045 `pseq` tlstr kl_V4045+                                                                                                                                                                                    !appl_11 <- appl_10 `pseq` pos appl_10 (Core.Types.Atom (Core.Types.N (Core.Types.KI 0)))+                                                                                                                                                                                    !kl_if_12 <- appl_11 `pseq` eq (Core.Types.Atom (Core.Types.Str "A")) appl_11+                                                                                                                                                                                    case kl_if_12 of+                                                                                                                                                                                        Atom (B (True)) -> do return (Atom (B True))+                                                                                                                                                                                        Atom (B (False)) -> do do return (Atom (B False))+                                                                                                                                                                                        _ -> throwError "if: expected boolean"+                                                                                                                                                              Atom (B (False)) -> do do return (Atom (B False))+                                                                                                                                                              _ -> throwError "if: expected boolean"+                                                                                                                                              case kl_if_9 of+                                                                                                                                                  Atom (B (True)) -> do return (Atom (B True))+                                                                                                                                                  Atom (B (False)) -> do do return (Atom (B False))+                                                                                                                                                  _ -> throwError "if: expected boolean"+                                                                                                                        Atom (B (False)) -> do do return (Atom (B False))+                                                                                                                        _ -> throwError "if: expected boolean"+                                                                                                        case kl_if_6 of+                                                                                                            Atom (B (True)) -> do return (Atom (B True))+                                                                                                            Atom (B (False)) -> do do return (Atom (B False))+                                                                                                            _ -> throwError "if: expected boolean"+                                                                                  Atom (B (False)) -> do do return (Atom (B False))+                                                                                  _ -> throwError "if: expected boolean"+                                                                  case kl_if_3 of+                                                                      Atom (B (True)) -> do !appl_13 <- kl_V4045 `pseq` tlstr kl_V4045+                                                                                            !appl_14 <- appl_13 `pseq` tlstr appl_13+                                                                                            let !appl_15 = Atom Nil+                                                                                            !appl_16 <- appl_15 `pseq` klCons (Core.Types.Atom (Core.Types.UnboundSym "shen.a")) appl_15+                                                                                            !appl_17 <- appl_14 `pseq` (appl_16 `pseq` klCons appl_14 appl_16)+                                                                                            !appl_18 <- kl_V4044 `pseq` (appl_17 `pseq` klCons kl_V4044 appl_17)+                                                                                            appl_18 `pseq` klCons (ApplC (wrapNamed "shen.app" kl_shen_app)) appl_18+                                                                      Atom (B (False)) -> do !kl_if_19 <- kl_V4045 `pseq` kl_shen_PlusstringP kl_V4045+                                                                                             !kl_if_20 <- case kl_if_19 of+                                                                                                              Atom (B (True)) -> do !appl_21 <- kl_V4045 `pseq` pos kl_V4045 (Core.Types.Atom (Core.Types.N (Core.Types.KI 0)))+                                                                                                                                    !kl_if_22 <- appl_21 `pseq` eq (Core.Types.Atom (Core.Types.Str "~")) appl_21+                                                                                                                                    !kl_if_23 <- case kl_if_22 of+                                                                                                                                                     Atom (B (True)) -> do !appl_24 <- kl_V4045 `pseq` tlstr kl_V4045+                                                                                                                                                                           !kl_if_25 <- appl_24 `pseq` kl_shen_PlusstringP appl_24+                                                                                                                                                                           !kl_if_26 <- case kl_if_25 of+                                                                                                                                                                                            Atom (B (True)) -> do !appl_27 <- kl_V4045 `pseq` tlstr kl_V4045+                                                                                                                                                                                                                  !appl_28 <- appl_27 `pseq` pos appl_27 (Core.Types.Atom (Core.Types.N (Core.Types.KI 0)))+                                                                                                                                                                                                                  !kl_if_29 <- appl_28 `pseq` eq (Core.Types.Atom (Core.Types.Str "R")) appl_28+                                                                                                                                                                                                                  case kl_if_29 of+                                                                                                                                                                                                                      Atom (B (True)) -> do return (Atom (B True))+                                                                                                                                                                                                                      Atom (B (False)) -> do do return (Atom (B False))+                                                                                                                                                                                                                      _ -> throwError "if: expected boolean"+                                                                                                                                                                                            Atom (B (False)) -> do do return (Atom (B False))+                                                                                                                                                                                            _ -> throwError "if: expected boolean"+                                                                                                                                                                           case kl_if_26 of+                                                                                                                                                                               Atom (B (True)) -> do return (Atom (B True))+                                                                                                                                                                               Atom (B (False)) -> do do return (Atom (B False))+                                                                                                                                                                               _ -> throwError "if: expected boolean"+                                                                                                                                                     Atom (B (False)) -> do do return (Atom (B False))+                                                                                                                                                     _ -> throwError "if: expected boolean"+                                                                                                                                    case kl_if_23 of+                                                                                                                                        Atom (B (True)) -> do return (Atom (B True))+                                                                                                                                        Atom (B (False)) -> do do return (Atom (B False))+                                                                                                                                        _ -> throwError "if: expected boolean"+                                                                                                              Atom (B (False)) -> do do return (Atom (B False))+                                                                                                              _ -> throwError "if: expected boolean"+                                                                                             case kl_if_20 of+                                                                                                 Atom (B (True)) -> do !appl_30 <- kl_V4045 `pseq` tlstr kl_V4045+                                                                                                                       !appl_31 <- appl_30 `pseq` tlstr appl_30+                                                                                                                       let !appl_32 = Atom Nil+                                                                                                                       !appl_33 <- appl_32 `pseq` klCons (Core.Types.Atom (Core.Types.UnboundSym "shen.r")) appl_32+                                                                                                                       !appl_34 <- appl_31 `pseq` (appl_33 `pseq` klCons appl_31 appl_33)+                                                                                                                       !appl_35 <- kl_V4044 `pseq` (appl_34 `pseq` klCons kl_V4044 appl_34)+                                                                                                                       appl_35 `pseq` klCons (ApplC (wrapNamed "shen.app" kl_shen_app)) appl_35+                                                                                                 Atom (B (False)) -> do !kl_if_36 <- kl_V4045 `pseq` kl_shen_PlusstringP kl_V4045+                                                                                                                        !kl_if_37 <- case kl_if_36 of+                                                                                                                                         Atom (B (True)) -> do !appl_38 <- kl_V4045 `pseq` pos kl_V4045 (Core.Types.Atom (Core.Types.N (Core.Types.KI 0)))+                                                                                                                                                               !kl_if_39 <- appl_38 `pseq` eq (Core.Types.Atom (Core.Types.Str "~")) appl_38+                                                                                                                                                               !kl_if_40 <- case kl_if_39 of+                                                                                                                                                                                Atom (B (True)) -> do !appl_41 <- kl_V4045 `pseq` tlstr kl_V4045+                                                                                                                                                                                                      !kl_if_42 <- appl_41 `pseq` kl_shen_PlusstringP appl_41+                                                                                                                                                                                                      !kl_if_43 <- case kl_if_42 of+                                                                                                                                                                                                                       Atom (B (True)) -> do !appl_44 <- kl_V4045 `pseq` tlstr kl_V4045+                                                                                                                                                                                                                                             !appl_45 <- appl_44 `pseq` pos appl_44 (Core.Types.Atom (Core.Types.N (Core.Types.KI 0)))+                                                                                                                                                                                                                                             !kl_if_46 <- appl_45 `pseq` eq (Core.Types.Atom (Core.Types.Str "S")) appl_45+                                                                                                                                                                                                                                             case kl_if_46 of+                                                                                                                                                                                                                                                 Atom (B (True)) -> do return (Atom (B True))+                                                                                                                                                                                                                                                 Atom (B (False)) -> do do return (Atom (B False))+                                                                                                                                                                                                                                                 _ -> throwError "if: expected boolean"+                                                                                                                                                                                                                       Atom (B (False)) -> do do return (Atom (B False))+                                                                                                                                                                                                                       _ -> throwError "if: expected boolean"+                                                                                                                                                                                                      case kl_if_43 of+                                                                                                                                                                                                          Atom (B (True)) -> do return (Atom (B True))+                                                                                                                                                                                                          Atom (B (False)) -> do do return (Atom (B False))+                                                                                                                                                                                                          _ -> throwError "if: expected boolean"+                                                                                                                                                                                Atom (B (False)) -> do do return (Atom (B False))+                                                                                                                                                                                _ -> throwError "if: expected boolean"+                                                                                                                                                               case kl_if_40 of+                                                                                                                                                                   Atom (B (True)) -> do return (Atom (B True))+                                                                                                                                                                   Atom (B (False)) -> do do return (Atom (B False))+                                                                                                                                                                   _ -> throwError "if: expected boolean"+                                                                                                                                         Atom (B (False)) -> do do return (Atom (B False))+                                                                                                                                         _ -> throwError "if: expected boolean"+                                                                                                                        case kl_if_37 of+                                                                                                                            Atom (B (True)) -> do !appl_47 <- kl_V4045 `pseq` tlstr kl_V4045+                                                                                                                                                  !appl_48 <- appl_47 `pseq` tlstr appl_47+                                                                                                                                                  let !appl_49 = Atom Nil+                                                                                                                                                  !appl_50 <- appl_49 `pseq` klCons (Core.Types.Atom (Core.Types.UnboundSym "shen.s")) appl_49+                                                                                                                                                  !appl_51 <- appl_48 `pseq` (appl_50 `pseq` klCons appl_48 appl_50)+                                                                                                                                                  !appl_52 <- kl_V4044 `pseq` (appl_51 `pseq` klCons kl_V4044 appl_51)+                                                                                                                                                  appl_52 `pseq` klCons (ApplC (wrapNamed "shen.app" kl_shen_app)) appl_52+                                                                                                                            Atom (B (False)) -> do !kl_if_53 <- kl_V4045 `pseq` kl_shen_PlusstringP kl_V4045+                                                                                                                                                   case kl_if_53 of+                                                                                                                                                       Atom (B (True)) -> do !appl_54 <- kl_V4045 `pseq` pos kl_V4045 (Core.Types.Atom (Core.Types.N (Core.Types.KI 0)))+                                                                                                                                                                             !appl_55 <- kl_V4045 `pseq` tlstr kl_V4045+                                                                                                                                                                             !appl_56 <- kl_V4044 `pseq` (appl_55 `pseq` kl_shen_insert_l kl_V4044 appl_55)+                                                                                                                                                                             let !appl_57 = Atom Nil+                                                                                                                                                                             !appl_58 <- appl_56 `pseq` (appl_57 `pseq` klCons appl_56 appl_57)+                                                                                                                                                                             !appl_59 <- appl_54 `pseq` (appl_58 `pseq` klCons appl_54 appl_58)+                                                                                                                                                                             !appl_60 <- appl_59 `pseq` klCons (ApplC (wrapNamed "cn" cn)) appl_59+                                                                                                                                                                             appl_60 `pseq` kl_shen_factor_cn appl_60+                                                                                                                                                       Atom (B (False)) -> do !kl_if_61 <- let pat_cond_62 kl_V4045 kl_V4045h kl_V4045t = do !kl_if_63 <- let pat_cond_64 = do !kl_if_65 <- let pat_cond_66 kl_V4045t kl_V4045th kl_V4045tt = do !kl_if_67 <- let pat_cond_68 kl_V4045tt kl_V4045tth kl_V4045ttt = do let !appl_69 = Atom Nil+                                                                                                                                                                                                                                                                                                                                                                                                                      !kl_if_70 <- appl_69 `pseq` (kl_V4045ttt `pseq` eq appl_69 kl_V4045ttt)+                                                                                                                                                                                                                                                                                                                                                                                                                      case kl_if_70 of+                                                                                                                                                                                                                                                                                                                                                                                                                          Atom (B (True)) -> do return (Atom (B True))+                                                                                                                                                                                                                                                                                                                                                                                                                          Atom (B (False)) -> do do return (Atom (B False))+                                                                                                                                                                                                                                                                                                                                                                                                                          _ -> throwError "if: expected boolean"+                                                                                                                                                                                                                                                                                                                                                                  pat_cond_71 = do do return (Atom (B False))+                                                                                                                                                                                                                                                                                                                                                               in case kl_V4045tt of+                                                                                                                                                                                                                                                                                                                                                                      !(kl_V4045tt@(Cons (!kl_V4045tth)+                                                                                                                                                                                                                                                                                                                                                                                         (!kl_V4045ttt))) -> pat_cond_68 kl_V4045tt kl_V4045tth kl_V4045ttt+                                                                                                                                                                                                                                                                                                                                                                      _ -> pat_cond_71+                                                                                                                                                                                                                                                                                                                                                 case kl_if_67 of+                                                                                                                                                                                                                                                                                                                                                     Atom (B (True)) -> do return (Atom (B True))+                                                                                                                                                                                                                                                                                                                                                     Atom (B (False)) -> do do return (Atom (B False))+                                                                                                                                                                                                                                                                                                                                                     _ -> throwError "if: expected boolean"+                                                                                                                                                                                                                                                                                                pat_cond_72 = do do return (Atom (B False))+                                                                                                                                                                                                                                                                                             in case kl_V4045t of+                                                                                                                                                                                                                                                                                                    !(kl_V4045t@(Cons (!kl_V4045th)+                                                                                                                                                                                                                                                                                                                      (!kl_V4045tt))) -> pat_cond_66 kl_V4045t kl_V4045th kl_V4045tt+                                                                                                                                                                                                                                                                                                    _ -> pat_cond_72+                                                                                                                                                                                                                                                                               case kl_if_65 of+                                                                                                                                                                                                                                                                                   Atom (B (True)) -> do return (Atom (B True))+                                                                                                                                                                                                                                                                                   Atom (B (False)) -> do do return (Atom (B False))+                                                                                                                                                                                                                                                                                   _ -> throwError "if: expected boolean"+                                                                                                                                                                                                                                                              pat_cond_73 = do do return (Atom (B False))+                                                                                                                                                                                                                                                           in case kl_V4045h of+                                                                                                                                                                                                                                                                  kl_V4045h@(Atom (UnboundSym "cn")) -> pat_cond_64+                                                                                                                                                                                                                                                                  kl_V4045h@(ApplC (PL "cn"+                                                                                                                                                                                                                                                                                       _)) -> pat_cond_64+                                                                                                                                                                                                                                                                  kl_V4045h@(ApplC (Func "cn"+                                                                                                                                                                                                                                                                                         _)) -> pat_cond_64+                                                                                                                                                                                                                                                                  _ -> pat_cond_73+                                                                                                                                                                                                                                             case kl_if_63 of+                                                                                                                                                                                                                                                 Atom (B (True)) -> do return (Atom (B True))+                                                                                                                                                                                                                                                 Atom (B (False)) -> do do return (Atom (B False))+                                                                                                                                                                                                                                                 _ -> throwError "if: expected boolean"+                                                                                                                                                                                               pat_cond_74 = do do return (Atom (B False))+                                                                                                                                                                                            in case kl_V4045 of+                                                                                                                                                                                                   !(kl_V4045@(Cons (!kl_V4045h)+                                                                                                                                                                                                                    (!kl_V4045t))) -> pat_cond_62 kl_V4045 kl_V4045h kl_V4045t+                                                                                                                                                                                                   _ -> pat_cond_74+                                                                                                                                                                              case kl_if_61 of+                                                                                                                                                                                  Atom (B (True)) -> do !appl_75 <- kl_V4045 `pseq` tl kl_V4045+                                                                                                                                                                                                        !appl_76 <- appl_75 `pseq` hd appl_75+                                                                                                                                                                                                        !appl_77 <- kl_V4045 `pseq` tl kl_V4045+                                                                                                                                                                                                        !appl_78 <- appl_77 `pseq` tl appl_77+                                                                                                                                                                                                        !appl_79 <- appl_78 `pseq` hd appl_78+                                                                                                                                                                                                        !appl_80 <- kl_V4044 `pseq` (appl_79 `pseq` kl_shen_insert_l kl_V4044 appl_79)+                                                                                                                                                                                                        let !appl_81 = Atom Nil+                                                                                                                                                                                                        !appl_82 <- appl_80 `pseq` (appl_81 `pseq` klCons appl_80 appl_81)+                                                                                                                                                                                                        !appl_83 <- appl_76 `pseq` (appl_82 `pseq` klCons appl_76 appl_82)+                                                                                                                                                                                                        appl_83 `pseq` klCons (ApplC (wrapNamed "cn" cn)) appl_83+                                                                                                                                                                                  Atom (B (False)) -> do !kl_if_84 <- let pat_cond_85 kl_V4045 kl_V4045h kl_V4045t = do !kl_if_86 <- let pat_cond_87 = do !kl_if_88 <- let pat_cond_89 kl_V4045t kl_V4045th kl_V4045tt = do !kl_if_90 <- let pat_cond_91 kl_V4045tt kl_V4045tth kl_V4045ttt = do !kl_if_92 <- let pat_cond_93 kl_V4045ttt kl_V4045ttth kl_V4045tttt = do let !appl_94 = Atom Nil+                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                         !kl_if_95 <- appl_94 `pseq` (kl_V4045tttt `pseq` eq appl_94 kl_V4045tttt)+                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                         case kl_if_95 of+                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                             Atom (B (True)) -> do return (Atom (B True))+                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                             Atom (B (False)) -> do do return (Atom (B False))+                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                             _ -> throwError "if: expected boolean"+                                                                                                                                                                                                                                                                                                                                                                                                                                                                  pat_cond_96 = do do return (Atom (B False))+                                                                                                                                                                                                                                                                                                                                                                                                                                                               in case kl_V4045ttt of+                                                                                                                                                                                                                                                                                                                                                                                                                                                                      !(kl_V4045ttt@(Cons (!kl_V4045ttth)+                                                                                                                                                                                                                                                                                                                                                                                                                                                                                          (!kl_V4045tttt))) -> pat_cond_93 kl_V4045ttt kl_V4045ttth kl_V4045tttt+                                                                                                                                                                                                                                                                                                                                                                                                                                                                      _ -> pat_cond_96+                                                                                                                                                                                                                                                                                                                                                                                                                                                 case kl_if_92 of+                                                                                                                                                                                                                                                                                                                                                                                                                                                     Atom (B (True)) -> do return (Atom (B True))+                                                                                                                                                                                                                                                                                                                                                                                                                                                     Atom (B (False)) -> do do return (Atom (B False))+                                                                                                                                                                                                                                                                                                                                                                                                                                                     _ -> throwError "if: expected boolean"+                                                                                                                                                                                                                                                                                                                                                                                             pat_cond_97 = do do return (Atom (B False))+                                                                                                                                                                                                                                                                                                                                                                                          in case kl_V4045tt of+                                                                                                                                                                                                                                                                                                                                                                                                 !(kl_V4045tt@(Cons (!kl_V4045tth)+                                                                                                                                                                                                                                                                                                                                                                                                                    (!kl_V4045ttt))) -> pat_cond_91 kl_V4045tt kl_V4045tth kl_V4045ttt+                                                                                                                                                                                                                                                                                                                                                                                                 _ -> pat_cond_97+                                                                                                                                                                                                                                                                                                                                                                            case kl_if_90 of+                                                                                                                                                                                                                                                                                                                                                                                Atom (B (True)) -> do return (Atom (B True))+                                                                                                                                                                                                                                                                                                                                                                                Atom (B (False)) -> do do return (Atom (B False))+                                                                                                                                                                                                                                                                                                                                                                                _ -> throwError "if: expected boolean"+                                                                                                                                                                                                                                                                                                                           pat_cond_98 = do do return (Atom (B False))+                                                                                                                                                                                                                                                                                                                        in case kl_V4045t of+                                                                                                                                                                                                                                                                                                                               !(kl_V4045t@(Cons (!kl_V4045th)+                                                                                                                                                                                                                                                                                                                                                 (!kl_V4045tt))) -> pat_cond_89 kl_V4045t kl_V4045th kl_V4045tt+                                                                                                                                                                                                                                                                                                                               _ -> pat_cond_98+                                                                                                                                                                                                                                                                                                          case kl_if_88 of+                                                                                                                                                                                                                                                                                                              Atom (B (True)) -> do return (Atom (B True))+                                                                                                                                                                                                                                                                                                              Atom (B (False)) -> do do return (Atom (B False))+                                                                                                                                                                                                                                                                                                              _ -> throwError "if: expected boolean"+                                                                                                                                                                                                                                                                                         pat_cond_99 = do do return (Atom (B False))+                                                                                                                                                                                                                                                                                      in case kl_V4045h of+                                                                                                                                                                                                                                                                                             kl_V4045h@(Atom (UnboundSym "shen.app")) -> pat_cond_87+                                                                                                                                                                                                                                                                                             kl_V4045h@(ApplC (PL "shen.app"+                                                                                                                                                                                                                                                                                                                  _)) -> pat_cond_87+                                                                                                                                                                                                                                                                                             kl_V4045h@(ApplC (Func "shen.app"+                                                                                                                                                                                                                                                                                                                    _)) -> pat_cond_87+                                                                                                                                                                                                                                                                                             _ -> pat_cond_99+                                                                                                                                                                                                                                                                        case kl_if_86 of+                                                                                                                                                                                                                                                                            Atom (B (True)) -> do return (Atom (B True))+                                                                                                                                                                                                                                                                            Atom (B (False)) -> do do return (Atom (B False))+                                                                                                                                                                                                                                                                            _ -> throwError "if: expected boolean"+                                                                                                                                                                                                                          pat_cond_100 = do do return (Atom (B False))+                                                                                                                                                                                                                       in case kl_V4045 of+                                                                                                                                                                                                                              !(kl_V4045@(Cons (!kl_V4045h)+                                                                                                                                                                                                                                               (!kl_V4045t))) -> pat_cond_85 kl_V4045 kl_V4045h kl_V4045t+                                                                                                                                                                                                                              _ -> pat_cond_100+                                                                                                                                                                                                         case kl_if_84 of+                                                                                                                                                                                                             Atom (B (True)) -> do !appl_101 <- kl_V4045 `pseq` tl kl_V4045+                                                                                                                                                                                                                                   !appl_102 <- appl_101 `pseq` hd appl_101+                                                                                                                                                                                                                                   !appl_103 <- kl_V4045 `pseq` tl kl_V4045+                                                                                                                                                                                                                                   !appl_104 <- appl_103 `pseq` tl appl_103+                                                                                                                                                                                                                                   !appl_105 <- appl_104 `pseq` hd appl_104+                                                                                                                                                                                                                                   !appl_106 <- kl_V4044 `pseq` (appl_105 `pseq` kl_shen_insert_l kl_V4044 appl_105)+                                                                                                                                                                                                                                   !appl_107 <- kl_V4045 `pseq` tl kl_V4045+                                                                                                                                                                                                                                   !appl_108 <- appl_107 `pseq` tl appl_107+                                                                                                                                                                                                                                   !appl_109 <- appl_108 `pseq` tl appl_108+                                                                                                                                                                                                                                   !appl_110 <- appl_106 `pseq` (appl_109 `pseq` klCons appl_106 appl_109)+                                                                                                                                                                                                                                   !appl_111 <- appl_102 `pseq` (appl_110 `pseq` klCons appl_102 appl_110)+                                                                                                                                                                                                                                   appl_111 `pseq` klCons (ApplC (wrapNamed "shen.app" kl_shen_app)) appl_111+                                                                                                                                                                                                             Atom (B (False)) -> do do kl_shen_f_error (ApplC (wrapNamed "shen.insert-l" kl_shen_insert_l))+                                                                                                                                                                                                             _ -> throwError "if: expected boolean"+                                                                                                                                                                                  _ -> throwError "if: expected boolean"+                                                                                                                                                       _ -> throwError "if: expected boolean"+                                                                                                                            _ -> throwError "if: expected boolean"+                                                                                                 _ -> throwError "if: expected boolean"+                                                                      _ -> throwError "if: expected boolean"+                                               in case kl_V4045 of+                                                      kl_V4045@(Atom (Str "")) -> pat_cond_0+                                                      _ -> pat_cond_1++kl_shen_factor_cn :: Core.Types.KLValue ->+                     Core.Types.KLContext Core.Types.Env Core.Types.KLValue+kl_shen_factor_cn (!kl_V4047) = do !kl_if_0 <- let pat_cond_1 kl_V4047 kl_V4047h kl_V4047t = do !kl_if_2 <- let pat_cond_3 = do !kl_if_4 <- let pat_cond_5 kl_V4047t kl_V4047th kl_V4047tt = do !kl_if_6 <- let pat_cond_7 kl_V4047tt kl_V4047tth kl_V4047ttt = do !kl_if_8 <- let pat_cond_9 kl_V4047tth kl_V4047tthh kl_V4047ttht = do !kl_if_10 <- let pat_cond_11 = do !kl_if_12 <- let pat_cond_13 kl_V4047ttht kl_V4047tthth kl_V4047tthtt = do !kl_if_14 <- let pat_cond_15 kl_V4047tthtt kl_V4047tthtth kl_V4047tthttt = do let !appl_16 = Atom Nil+                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                    !kl_if_17 <- appl_16 `pseq` (kl_V4047tthttt `pseq` eq appl_16 kl_V4047tthttt)+                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                    !kl_if_18 <- case kl_if_17 of+                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                     Atom (B (True)) -> do let !appl_19 = Atom Nil+                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                           !kl_if_20 <- appl_19 `pseq` (kl_V4047ttt `pseq` eq appl_19 kl_V4047ttt)+                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                           !kl_if_21 <- case kl_if_20 of+                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                            Atom (B (True)) -> do !kl_if_22 <- kl_V4047th `pseq` stringP kl_V4047th+                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                  !kl_if_23 <- case kl_if_22 of+                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                   Atom (B (True)) -> do !kl_if_24 <- kl_V4047tthth `pseq` stringP kl_V4047tthth+                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                         case kl_if_24 of+                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                             Atom (B (True)) -> do return (Atom (B True))+                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                             Atom (B (False)) -> do do return (Atom (B False))+                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                             _ -> throwError "if: expected boolean"+                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                   Atom (B (False)) -> do do return (Atom (B False))+                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                   _ -> throwError "if: expected boolean"+                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                  case kl_if_23 of+                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                      Atom (B (True)) -> do return (Atom (B True))+                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                      Atom (B (False)) -> do do return (Atom (B False))+                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                      _ -> throwError "if: expected boolean"+                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                            Atom (B (False)) -> do do return (Atom (B False))+                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                            _ -> throwError "if: expected boolean"+                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                           case kl_if_21 of+                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                               Atom (B (True)) -> do return (Atom (B True))+                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                               Atom (B (False)) -> do do return (Atom (B False))+                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                               _ -> throwError "if: expected boolean"+                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                     Atom (B (False)) -> do do return (Atom (B False))+                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                     _ -> throwError "if: expected boolean"+                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                    case kl_if_18 of+                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                        Atom (B (True)) -> do return (Atom (B True))+                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                        Atom (B (False)) -> do do return (Atom (B False))+                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                        _ -> throwError "if: expected boolean"+                                                                                                                                                                                                                                                                                                                                                                                                                                                                       pat_cond_25 = do do return (Atom (B False))+                                                                                                                                                                                                                                                                                                                                                                                                                                                                    in case kl_V4047tthtt of+                                                                                                                                                                                                                                                                                                                                                                                                                                                                           !(kl_V4047tthtt@(Cons (!kl_V4047tthtth)+                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                 (!kl_V4047tthttt))) -> pat_cond_15 kl_V4047tthtt kl_V4047tthtth kl_V4047tthttt+                                                                                                                                                                                                                                                                                                                                                                                                                                                                           _ -> pat_cond_25+                                                                                                                                                                                                                                                                                                                                                                                                                                                      case kl_if_14 of+                                                                                                                                                                                                                                                                                                                                                                                                                                                          Atom (B (True)) -> do return (Atom (B True))+                                                                                                                                                                                                                                                                                                                                                                                                                                                          Atom (B (False)) -> do do return (Atom (B False))+                                                                                                                                                                                                                                                                                                                                                                                                                                                          _ -> throwError "if: expected boolean"+                                                                                                                                                                                                                                                                                                                                                                                            pat_cond_26 = do do return (Atom (B False))+                                                                                                                                                                                                                                                                                                                                                                                         in case kl_V4047ttht of+                                                                                                                                                                                                                                                                                                                                                                                                !(kl_V4047ttht@(Cons (!kl_V4047tthth)+                                                                                                                                                                                                                                                                                                                                                                                                                     (!kl_V4047tthtt))) -> pat_cond_13 kl_V4047ttht kl_V4047tthth kl_V4047tthtt+                                                                                                                                                                                                                                                                                                                                                                                                _ -> pat_cond_26+                                                                                                                                                                                                                                                                                                                                                                           case kl_if_12 of+                                                                                                                                                                                                                                                                                                                                                                               Atom (B (True)) -> do return (Atom (B True))+                                                                                                                                                                                                                                                                                                                                                                               Atom (B (False)) -> do do return (Atom (B False))+                                                                                                                                                                                                                                                                                                                                                                               _ -> throwError "if: expected boolean"+                                                                                                                                                                                                                                                                                                                                                          pat_cond_27 = do do return (Atom (B False))+                                                                                                                                                                                                                                                                                                                                                       in case kl_V4047tthh of+                                                                                                                                                                                                                                                                                                                                                              kl_V4047tthh@(Atom (UnboundSym "cn")) -> pat_cond_11+                                                                                                                                                                                                                                                                                                                                                              kl_V4047tthh@(ApplC (PL "cn"+                                                                                                                                                                                                                                                                                                                                                                                      _)) -> pat_cond_11+                                                                                                                                                                                                                                                                                                                                                              kl_V4047tthh@(ApplC (Func "cn"+                                                                                                                                                                                                                                                                                                                                                                                        _)) -> pat_cond_11+                                                                                                                                                                                                                                                                                                                                                              _ -> pat_cond_27+                                                                                                                                                                                                                                                                                                                                         case kl_if_10 of+                                                                                                                                                                                                                                                                                                                                             Atom (B (True)) -> do return (Atom (B True))+                                                                                                                                                                                                                                                                                                                                             Atom (B (False)) -> do do return (Atom (B False))+                                                                                                                                                                                                                                                                                                                                             _ -> throwError "if: expected boolean"+                                                                                                                                                                                                                                                                                   pat_cond_28 = do do return (Atom (B False))+                                                                                                                                                                                                                                                                                in case kl_V4047tth of+                                                                                                                                                                                                                                                                                       !(kl_V4047tth@(Cons (!kl_V4047tthh)+                                                                                                                                                                                                                                                                                                           (!kl_V4047ttht))) -> pat_cond_9 kl_V4047tth kl_V4047tthh kl_V4047ttht+                                                                                                                                                                                                                                                                                       _ -> pat_cond_28+                                                                                                                                                                                                                                                                   case kl_if_8 of+                                                                                                                                                                                                                                                                       Atom (B (True)) -> do return (Atom (B True))+                                                                                                                                                                                                                                                                       Atom (B (False)) -> do do return (Atom (B False))+                                                                                                                                                                                                                                                                       _ -> throwError "if: expected boolean"+                                                                                                                                                                                                                pat_cond_29 = do do return (Atom (B False))+                                                                                                                                                                                                             in case kl_V4047tt of+                                                                                                                                                                                                                    !(kl_V4047tt@(Cons (!kl_V4047tth)+                                                                                                                                                                                                                                       (!kl_V4047ttt))) -> pat_cond_7 kl_V4047tt kl_V4047tth kl_V4047ttt+                                                                                                                                                                                                                    _ -> pat_cond_29+                                                                                                                                                                                                case kl_if_6 of+                                                                                                                                                                                                    Atom (B (True)) -> do return (Atom (B True))+                                                                                                                                                                                                    Atom (B (False)) -> do do return (Atom (B False))+                                                                                                                                                                                                    _ -> throwError "if: expected boolean"+                                                                                                                                                pat_cond_30 = do do return (Atom (B False))+                                                                                                                                             in case kl_V4047t of+                                                                                                                                                    !(kl_V4047t@(Cons (!kl_V4047th)+                                                                                                                                                                      (!kl_V4047tt))) -> pat_cond_5 kl_V4047t kl_V4047th kl_V4047tt+                                                                                                                                                    _ -> pat_cond_30+                                                                                                                                case kl_if_4 of+                                                                                                                                    Atom (B (True)) -> do return (Atom (B True))+                                                                                                                                    Atom (B (False)) -> do do return (Atom (B False))+                                                                                                                                    _ -> throwError "if: expected boolean"+                                                                                                                pat_cond_31 = do do return (Atom (B False))+                                                                                                             in case kl_V4047h of+                                                                                                                    kl_V4047h@(Atom (UnboundSym "cn")) -> pat_cond_3+                                                                                                                    kl_V4047h@(ApplC (PL "cn"+                                                                                                                                         _)) -> pat_cond_3+                                                                                                                    kl_V4047h@(ApplC (Func "cn"+                                                                                                                                           _)) -> pat_cond_3+                                                                                                                    _ -> pat_cond_31+                                                                                                case kl_if_2 of+                                                                                                    Atom (B (True)) -> do return (Atom (B True))+                                                                                                    Atom (B (False)) -> do do return (Atom (B False))+                                                                                                    _ -> throwError "if: expected boolean"+                                                   pat_cond_32 = do do return (Atom (B False))+                                                in case kl_V4047 of+                                                       !(kl_V4047@(Cons (!kl_V4047h)+                                                                        (!kl_V4047t))) -> pat_cond_1 kl_V4047 kl_V4047h kl_V4047t+                                                       _ -> pat_cond_32+                                   case kl_if_0 of+                                       Atom (B (True)) -> do !appl_33 <- kl_V4047 `pseq` tl kl_V4047+                                                             !appl_34 <- appl_33 `pseq` hd appl_33+                                                             !appl_35 <- kl_V4047 `pseq` tl kl_V4047+                                                             !appl_36 <- appl_35 `pseq` tl appl_35+                                                             !appl_37 <- appl_36 `pseq` hd appl_36+                                                             !appl_38 <- appl_37 `pseq` tl appl_37+                                                             !appl_39 <- appl_38 `pseq` hd appl_38+                                                             !appl_40 <- appl_34 `pseq` (appl_39 `pseq` cn appl_34 appl_39)+                                                             !appl_41 <- kl_V4047 `pseq` tl kl_V4047+                                                             !appl_42 <- appl_41 `pseq` tl appl_41+                                                             !appl_43 <- appl_42 `pseq` hd appl_42+                                                             !appl_44 <- appl_43 `pseq` tl appl_43+                                                             !appl_45 <- appl_44 `pseq` tl appl_44+                                                             !appl_46 <- appl_40 `pseq` (appl_45 `pseq` klCons appl_40 appl_45)+                                                             appl_46 `pseq` klCons (ApplC (wrapNamed "cn" cn)) appl_46+                                       Atom (B (False)) -> do do return kl_V4047+                                       _ -> throwError "if: expected boolean"++kl_shen_proc_nl :: Core.Types.KLValue ->+                   Core.Types.KLContext Core.Types.Env Core.Types.KLValue+kl_shen_proc_nl (!kl_V4049) = do let pat_cond_0 = do return (Core.Types.Atom (Core.Types.Str ""))+                                     pat_cond_1 = do !kl_if_2 <- kl_V4049 `pseq` kl_shen_PlusstringP kl_V4049+                                                     !kl_if_3 <- case kl_if_2 of+                                                                     Atom (B (True)) -> do !appl_4 <- kl_V4049 `pseq` pos kl_V4049 (Core.Types.Atom (Core.Types.N (Core.Types.KI 0)))+                                                                                           !kl_if_5 <- appl_4 `pseq` eq (Core.Types.Atom (Core.Types.Str "~")) appl_4+                                                                                           !kl_if_6 <- case kl_if_5 of+                                                                                                           Atom (B (True)) -> do !appl_7 <- kl_V4049 `pseq` tlstr kl_V4049+                                                                                                                                 !kl_if_8 <- appl_7 `pseq` kl_shen_PlusstringP appl_7+                                                                                                                                 !kl_if_9 <- case kl_if_8 of+                                                                                                                                                 Atom (B (True)) -> do !appl_10 <- kl_V4049 `pseq` tlstr kl_V4049+                                                                                                                                                                       !appl_11 <- appl_10 `pseq` pos appl_10 (Core.Types.Atom (Core.Types.N (Core.Types.KI 0)))+                                                                                                                                                                       !kl_if_12 <- appl_11 `pseq` eq (Core.Types.Atom (Core.Types.Str "%")) appl_11+                                                                                                                                                                       case kl_if_12 of+                                                                                                                                                                           Atom (B (True)) -> do return (Atom (B True))+                                                                                                                                                                           Atom (B (False)) -> do do return (Atom (B False))+                                                                                                                                                                           _ -> throwError "if: expected boolean"+                                                                                                                                                 Atom (B (False)) -> do do return (Atom (B False))+                                                                                                                                                 _ -> throwError "if: expected boolean"+                                                                                                                                 case kl_if_9 of+                                                                                                                                     Atom (B (True)) -> do return (Atom (B True))+                                                                                                                                     Atom (B (False)) -> do do return (Atom (B False))+                                                                                                                                     _ -> throwError "if: expected boolean"+                                                                                                           Atom (B (False)) -> do do return (Atom (B False))+                                                                                                           _ -> throwError "if: expected boolean"+                                                                                           case kl_if_6 of+                                                                                               Atom (B (True)) -> do return (Atom (B True))+                                                                                               Atom (B (False)) -> do do return (Atom (B False))+                                                                                               _ -> throwError "if: expected boolean"+                                                                     Atom (B (False)) -> do do return (Atom (B False))+                                                                     _ -> throwError "if: expected boolean"+                                                     case kl_if_3 of+                                                         Atom (B (True)) -> do !appl_13 <- nToString (Core.Types.Atom (Core.Types.N (Core.Types.KI 10)))+                                                                               !appl_14 <- kl_V4049 `pseq` tlstr kl_V4049+                                                                               !appl_15 <- appl_14 `pseq` tlstr appl_14+                                                                               !appl_16 <- appl_15 `pseq` kl_shen_proc_nl appl_15+                                                                               appl_13 `pseq` (appl_16 `pseq` cn appl_13 appl_16)+                                                         Atom (B (False)) -> do !kl_if_17 <- kl_V4049 `pseq` kl_shen_PlusstringP kl_V4049+                                                                                case kl_if_17 of+                                                                                    Atom (B (True)) -> do !appl_18 <- kl_V4049 `pseq` pos kl_V4049 (Core.Types.Atom (Core.Types.N (Core.Types.KI 0)))+                                                                                                          !appl_19 <- kl_V4049 `pseq` tlstr kl_V4049+                                                                                                          !appl_20 <- appl_19 `pseq` kl_shen_proc_nl appl_19+                                                                                                          appl_18 `pseq` (appl_20 `pseq` cn appl_18 appl_20)+                                                                                    Atom (B (False)) -> do do kl_shen_f_error (ApplC (wrapNamed "shen.proc-nl" kl_shen_proc_nl))+                                                                                    _ -> throwError "if: expected boolean"+                                                         _ -> throwError "if: expected boolean"+                                  in case kl_V4049 of+                                         kl_V4049@(Atom (Str "")) -> pat_cond_0+                                         _ -> pat_cond_1++kl_shen_mkstr_r :: Core.Types.KLValue ->+                   Core.Types.KLValue ->+                   Core.Types.KLContext Core.Types.Env Core.Types.KLValue+kl_shen_mkstr_r (!kl_V4052) (!kl_V4053) = do let !appl_0 = Atom Nil+                                             !kl_if_1 <- appl_0 `pseq` (kl_V4053 `pseq` eq appl_0 kl_V4053)+                                             case kl_if_1 of+                                                 Atom (B (True)) -> do return kl_V4052+                                                 Atom (B (False)) -> do let pat_cond_2 kl_V4053 kl_V4053h kl_V4053t = do let !appl_3 = Atom Nil+                                                                                                                         !appl_4 <- kl_V4052 `pseq` (appl_3 `pseq` klCons kl_V4052 appl_3)+                                                                                                                         !appl_5 <- kl_V4053h `pseq` (appl_4 `pseq` klCons kl_V4053h appl_4)+                                                                                                                         !appl_6 <- appl_5 `pseq` klCons (ApplC (wrapNamed "shen.insert" kl_shen_insert)) appl_5+                                                                                                                         appl_6 `pseq` (kl_V4053t `pseq` kl_shen_mkstr_r appl_6 kl_V4053t)+                                                                            pat_cond_7 = do do kl_shen_f_error (ApplC (wrapNamed "shen.mkstr-r" kl_shen_mkstr_r))+                                                                         in case kl_V4053 of+                                                                                !(kl_V4053@(Cons (!kl_V4053h)+                                                                                                 (!kl_V4053t))) -> pat_cond_2 kl_V4053 kl_V4053h kl_V4053t+                                                                                _ -> pat_cond_7+                                                 _ -> throwError "if: expected boolean"++kl_shen_insert :: Core.Types.KLValue ->+                  Core.Types.KLValue ->+                  Core.Types.KLContext Core.Types.Env Core.Types.KLValue+kl_shen_insert (!kl_V4056) (!kl_V4057) = do kl_V4056 `pseq` (kl_V4057 `pseq` kl_shen_insert_h kl_V4056 kl_V4057 (Core.Types.Atom (Core.Types.Str "")))++kl_shen_insert_h :: Core.Types.KLValue ->+                    Core.Types.KLValue ->+                    Core.Types.KLValue ->+                    Core.Types.KLContext Core.Types.Env Core.Types.KLValue+kl_shen_insert_h (!kl_V4063) (!kl_V4064) (!kl_V4065) = do let pat_cond_0 = do return kl_V4065+                                                              pat_cond_1 = do !kl_if_2 <- kl_V4064 `pseq` kl_shen_PlusstringP kl_V4064+                                                                              !kl_if_3 <- case kl_if_2 of+                                                                                              Atom (B (True)) -> do !appl_4 <- kl_V4064 `pseq` pos kl_V4064 (Core.Types.Atom (Core.Types.N (Core.Types.KI 0)))+                                                                                                                    !kl_if_5 <- appl_4 `pseq` eq (Core.Types.Atom (Core.Types.Str "~")) appl_4+                                                                                                                    !kl_if_6 <- case kl_if_5 of+                                                                                                                                    Atom (B (True)) -> do !appl_7 <- kl_V4064 `pseq` tlstr kl_V4064+                                                                                                                                                          !kl_if_8 <- appl_7 `pseq` kl_shen_PlusstringP appl_7+                                                                                                                                                          !kl_if_9 <- case kl_if_8 of+                                                                                                                                                                          Atom (B (True)) -> do !appl_10 <- kl_V4064 `pseq` tlstr kl_V4064+                                                                                                                                                                                                !appl_11 <- appl_10 `pseq` pos appl_10 (Core.Types.Atom (Core.Types.N (Core.Types.KI 0)))+                                                                                                                                                                                                !kl_if_12 <- appl_11 `pseq` eq (Core.Types.Atom (Core.Types.Str "A")) appl_11+                                                                                                                                                                                                case kl_if_12 of+                                                                                                                                                                                                    Atom (B (True)) -> do return (Atom (B True))+                                                                                                                                                                                                    Atom (B (False)) -> do do return (Atom (B False))+                                                                                                                                                                                                    _ -> throwError "if: expected boolean"+                                                                                                                                                                          Atom (B (False)) -> do do return (Atom (B False))+                                                                                                                                                                          _ -> throwError "if: expected boolean"+                                                                                                                                                          case kl_if_9 of+                                                                                                                                                              Atom (B (True)) -> do return (Atom (B True))+                                                                                                                                                              Atom (B (False)) -> do do return (Atom (B False))+                                                                                                                                                              _ -> throwError "if: expected boolean"+                                                                                                                                    Atom (B (False)) -> do do return (Atom (B False))+                                                                                                                                    _ -> throwError "if: expected boolean"+                                                                                                                    case kl_if_6 of+                                                                                                                        Atom (B (True)) -> do return (Atom (B True))+                                                                                                                        Atom (B (False)) -> do do return (Atom (B False))+                                                                                                                        _ -> throwError "if: expected boolean"+                                                                                              Atom (B (False)) -> do do return (Atom (B False))+                                                                                              _ -> throwError "if: expected boolean"+                                                                              case kl_if_3 of+                                                                                  Atom (B (True)) -> do !appl_13 <- kl_V4064 `pseq` tlstr kl_V4064+                                                                                                        !appl_14 <- appl_13 `pseq` tlstr appl_13+                                                                                                        !appl_15 <- kl_V4063 `pseq` (appl_14 `pseq` kl_shen_app kl_V4063 appl_14 (Core.Types.Atom (Core.Types.UnboundSym "shen.a")))+                                                                                                        kl_V4065 `pseq` (appl_15 `pseq` cn kl_V4065 appl_15)+                                                                                  Atom (B (False)) -> do !kl_if_16 <- kl_V4064 `pseq` kl_shen_PlusstringP kl_V4064+                                                                                                         !kl_if_17 <- case kl_if_16 of+                                                                                                                          Atom (B (True)) -> do !appl_18 <- kl_V4064 `pseq` pos kl_V4064 (Core.Types.Atom (Core.Types.N (Core.Types.KI 0)))+                                                                                                                                                !kl_if_19 <- appl_18 `pseq` eq (Core.Types.Atom (Core.Types.Str "~")) appl_18+                                                                                                                                                !kl_if_20 <- case kl_if_19 of+                                                                                                                                                                 Atom (B (True)) -> do !appl_21 <- kl_V4064 `pseq` tlstr kl_V4064+                                                                                                                                                                                       !kl_if_22 <- appl_21 `pseq` kl_shen_PlusstringP appl_21+                                                                                                                                                                                       !kl_if_23 <- case kl_if_22 of+                                                                                                                                                                                                        Atom (B (True)) -> do !appl_24 <- kl_V4064 `pseq` tlstr kl_V4064+                                                                                                                                                                                                                              !appl_25 <- appl_24 `pseq` pos appl_24 (Core.Types.Atom (Core.Types.N (Core.Types.KI 0)))+                                                                                                                                                                                                                              !kl_if_26 <- appl_25 `pseq` eq (Core.Types.Atom (Core.Types.Str "R")) appl_25+                                                                                                                                                                                                                              case kl_if_26 of+                                                                                                                                                                                                                                  Atom (B (True)) -> do return (Atom (B True))+                                                                                                                                                                                                                                  Atom (B (False)) -> do do return (Atom (B False))+                                                                                                                                                                                                                                  _ -> throwError "if: expected boolean"+                                                                                                                                                                                                        Atom (B (False)) -> do do return (Atom (B False))+                                                                                                                                                                                                        _ -> throwError "if: expected boolean"+                                                                                                                                                                                       case kl_if_23 of+                                                                                                                                                                                           Atom (B (True)) -> do return (Atom (B True))+                                                                                                                                                                                           Atom (B (False)) -> do do return (Atom (B False))+                                                                                                                                                                                           _ -> throwError "if: expected boolean"+                                                                                                                                                                 Atom (B (False)) -> do do return (Atom (B False))+                                                                                                                                                                 _ -> throwError "if: expected boolean"+                                                                                                                                                case kl_if_20 of+                                                                                                                                                    Atom (B (True)) -> do return (Atom (B True))+                                                                                                                                                    Atom (B (False)) -> do do return (Atom (B False))+                                                                                                                                                    _ -> throwError "if: expected boolean"+                                                                                                                          Atom (B (False)) -> do do return (Atom (B False))+                                                                                                                          _ -> throwError "if: expected boolean"+                                                                                                         case kl_if_17 of+                                                                                                             Atom (B (True)) -> do !appl_27 <- kl_V4064 `pseq` tlstr kl_V4064+                                                                                                                                   !appl_28 <- appl_27 `pseq` tlstr appl_27+                                                                                                                                   !appl_29 <- kl_V4063 `pseq` (appl_28 `pseq` kl_shen_app kl_V4063 appl_28 (Core.Types.Atom (Core.Types.UnboundSym "shen.r")))+                                                                                                                                   kl_V4065 `pseq` (appl_29 `pseq` cn kl_V4065 appl_29)+                                                                                                             Atom (B (False)) -> do !kl_if_30 <- kl_V4064 `pseq` kl_shen_PlusstringP kl_V4064+                                                                                                                                    !kl_if_31 <- case kl_if_30 of+                                                                                                                                                     Atom (B (True)) -> do !appl_32 <- kl_V4064 `pseq` pos kl_V4064 (Core.Types.Atom (Core.Types.N (Core.Types.KI 0)))+                                                                                                                                                                           !kl_if_33 <- appl_32 `pseq` eq (Core.Types.Atom (Core.Types.Str "~")) appl_32+                                                                                                                                                                           !kl_if_34 <- case kl_if_33 of+                                                                                                                                                                                            Atom (B (True)) -> do !appl_35 <- kl_V4064 `pseq` tlstr kl_V4064+                                                                                                                                                                                                                  !kl_if_36 <- appl_35 `pseq` kl_shen_PlusstringP appl_35+                                                                                                                                                                                                                  !kl_if_37 <- case kl_if_36 of+                                                                                                                                                                                                                                   Atom (B (True)) -> do !appl_38 <- kl_V4064 `pseq` tlstr kl_V4064+                                                                                                                                                                                                                                                         !appl_39 <- appl_38 `pseq` pos appl_38 (Core.Types.Atom (Core.Types.N (Core.Types.KI 0)))+                                                                                                                                                                                                                                                         !kl_if_40 <- appl_39 `pseq` eq (Core.Types.Atom (Core.Types.Str "S")) appl_39+                                                                                                                                                                                                                                                         case kl_if_40 of+                                                                                                                                                                                                                                                             Atom (B (True)) -> do return (Atom (B True))+                                                                                                                                                                                                                                                             Atom (B (False)) -> do do return (Atom (B False))+                                                                                                                                                                                                                                                             _ -> throwError "if: expected boolean"+                                                                                                                                                                                                                                   Atom (B (False)) -> do do return (Atom (B False))+                                                                                                                                                                                                                                   _ -> throwError "if: expected boolean"+                                                                                                                                                                                                                  case kl_if_37 of+                                                                                                                                                                                                                      Atom (B (True)) -> do return (Atom (B True))+                                                                                                                                                                                                                      Atom (B (False)) -> do do return (Atom (B False))+                                                                                                                                                                                                                      _ -> throwError "if: expected boolean"+                                                                                                                                                                                            Atom (B (False)) -> do do return (Atom (B False))+                                                                                                                                                                                            _ -> throwError "if: expected boolean"+                                                                                                                                                                           case kl_if_34 of+                                                                                                                                                                               Atom (B (True)) -> do return (Atom (B True))+                                                                                                                                                                               Atom (B (False)) -> do do return (Atom (B False))+                                                                                                                                                                               _ -> throwError "if: expected boolean"+                                                                                                                                                     Atom (B (False)) -> do do return (Atom (B False))+                                                                                                                                                     _ -> throwError "if: expected boolean"+                                                                                                                                    case kl_if_31 of+                                                                                                                                        Atom (B (True)) -> do !appl_41 <- kl_V4064 `pseq` tlstr kl_V4064+                                                                                                                                                              !appl_42 <- appl_41 `pseq` tlstr appl_41+                                                                                                                                                              !appl_43 <- kl_V4063 `pseq` (appl_42 `pseq` kl_shen_app kl_V4063 appl_42 (Core.Types.Atom (Core.Types.UnboundSym "shen.s")))+                                                                                                                                                              kl_V4065 `pseq` (appl_43 `pseq` cn kl_V4065 appl_43)+                                                                                                                                        Atom (B (False)) -> do !kl_if_44 <- kl_V4064 `pseq` kl_shen_PlusstringP kl_V4064+                                                                                                                                                               case kl_if_44 of+                                                                                                                                                                   Atom (B (True)) -> do !appl_45 <- kl_V4064 `pseq` tlstr kl_V4064+                                                                                                                                                                                         !appl_46 <- kl_V4064 `pseq` pos kl_V4064 (Core.Types.Atom (Core.Types.N (Core.Types.KI 0)))+                                                                                                                                                                                         !appl_47 <- kl_V4065 `pseq` (appl_46 `pseq` cn kl_V4065 appl_46)+                                                                                                                                                                                         kl_V4063 `pseq` (appl_45 `pseq` (appl_47 `pseq` kl_shen_insert_h kl_V4063 appl_45 appl_47))+                                                                                                                                                                   Atom (B (False)) -> do do kl_shen_f_error (ApplC (wrapNamed "shen.insert-h" kl_shen_insert_h))+                                                                                                                                                                   _ -> throwError "if: expected boolean"+                                                                                                                                        _ -> throwError "if: expected boolean"+                                                                                                             _ -> throwError "if: expected boolean"+                                                                                  _ -> throwError "if: expected boolean"+                                                           in case kl_V4064 of+                                                                  kl_V4064@(Atom (Str "")) -> pat_cond_0+                                                                  _ -> pat_cond_1++kl_shen_app :: Core.Types.KLValue ->+               Core.Types.KLValue ->+               Core.Types.KLValue ->+               Core.Types.KLContext Core.Types.Env Core.Types.KLValue+kl_shen_app (!kl_V4069) (!kl_V4070) (!kl_V4071) = do !appl_0 <- kl_V4069 `pseq` (kl_V4071 `pseq` kl_shen_arg_RBstr kl_V4069 kl_V4071)+                                                     appl_0 `pseq` (kl_V4070 `pseq` cn appl_0 kl_V4070)++kl_shen_arg_RBstr :: Core.Types.KLValue ->+                     Core.Types.KLValue ->+                     Core.Types.KLContext Core.Types.Env Core.Types.KLValue+kl_shen_arg_RBstr (!kl_V4079) (!kl_V4080) = do !appl_0 <- kl_fail+                                               !kl_if_1 <- kl_V4079 `pseq` (appl_0 `pseq` eq kl_V4079 appl_0)+                                               case kl_if_1 of+                                                   Atom (B (True)) -> do return (Core.Types.Atom (Core.Types.Str "..."))+                                                   Atom (B (False)) -> do !kl_if_2 <- kl_V4079 `pseq` kl_shen_listP kl_V4079+                                                                          case kl_if_2 of+                                                                              Atom (B (True)) -> do kl_V4079 `pseq` (kl_V4080 `pseq` kl_shen_list_RBstr kl_V4079 kl_V4080)+                                                                              Atom (B (False)) -> do !kl_if_3 <- kl_V4079 `pseq` stringP kl_V4079+                                                                                                     case kl_if_3 of+                                                                                                         Atom (B (True)) -> do kl_V4079 `pseq` (kl_V4080 `pseq` kl_shen_str_RBstr kl_V4079 kl_V4080)+                                                                                                         Atom (B (False)) -> do !kl_if_4 <- kl_V4079 `pseq` absvectorP kl_V4079+                                                                                                                                case kl_if_4 of+                                                                                                                                    Atom (B (True)) -> do kl_V4079 `pseq` (kl_V4080 `pseq` kl_shen_vector_RBstr kl_V4079 kl_V4080)+                                                                                                                                    Atom (B (False)) -> do do kl_V4079 `pseq` kl_shen_atom_RBstr kl_V4079+                                                                                                                                    _ -> throwError "if: expected boolean"+                                                                                                         _ -> throwError "if: expected boolean"+                                                                              _ -> throwError "if: expected boolean"+                                                   _ -> throwError "if: expected boolean"++kl_shen_list_RBstr :: Core.Types.KLValue ->+                      Core.Types.KLValue ->+                      Core.Types.KLContext Core.Types.Env Core.Types.KLValue+kl_shen_list_RBstr (!kl_V4083) (!kl_V4084) = do let pat_cond_0 = do !appl_1 <- kl_shen_maxseq+                                                                    !appl_2 <- kl_V4083 `pseq` (appl_1 `pseq` kl_shen_iter_list kl_V4083 (Core.Types.Atom (Core.Types.UnboundSym "shen.r")) appl_1)+                                                                    !appl_3 <- appl_2 `pseq` kl_Ats appl_2 (Core.Types.Atom (Core.Types.Str ")"))+                                                                    appl_3 `pseq` kl_Ats (Core.Types.Atom (Core.Types.Str "(")) appl_3+                                                    pat_cond_4 = do do !appl_5 <- kl_shen_maxseq+                                                                       !appl_6 <- kl_V4083 `pseq` (kl_V4084 `pseq` (appl_5 `pseq` kl_shen_iter_list kl_V4083 kl_V4084 appl_5))+                                                                       !appl_7 <- appl_6 `pseq` kl_Ats appl_6 (Core.Types.Atom (Core.Types.Str "]"))+                                                                       appl_7 `pseq` kl_Ats (Core.Types.Atom (Core.Types.Str "[")) appl_7+                                                 in case kl_V4084 of+                                                        kl_V4084@(Atom (UnboundSym "shen.r")) -> pat_cond_0+                                                        kl_V4084@(ApplC (PL "shen.r"+                                                                            _)) -> pat_cond_0+                                                        kl_V4084@(ApplC (Func "shen.r"+                                                                              _)) -> pat_cond_0+                                                        _ -> pat_cond_4++kl_shen_maxseq :: Core.Types.KLContext Core.Types.Env+                                       Core.Types.KLValue+kl_shen_maxseq = do value (Core.Types.Atom (Core.Types.UnboundSym "*maximum-print-sequence-size*"))++kl_shen_iter_list :: Core.Types.KLValue ->+                     Core.Types.KLValue ->+                     Core.Types.KLValue ->+                     Core.Types.KLContext Core.Types.Env Core.Types.KLValue+kl_shen_iter_list (!kl_V4098) (!kl_V4099) (!kl_V4100) = do let !appl_0 = Atom Nil+                                                           !kl_if_1 <- appl_0 `pseq` (kl_V4098 `pseq` eq appl_0 kl_V4098)+                                                           case kl_if_1 of+                                                               Atom (B (True)) -> do return (Core.Types.Atom (Core.Types.Str ""))+                                                               Atom (B (False)) -> do let pat_cond_2 = do return (Core.Types.Atom (Core.Types.Str "... etc"))+                                                                                          pat_cond_3 = do !kl_if_4 <- let pat_cond_5 kl_V4098 kl_V4098h kl_V4098t = do let !appl_6 = Atom Nil+                                                                                                                                                                       !kl_if_7 <- appl_6 `pseq` (kl_V4098t `pseq` eq appl_6 kl_V4098t)+                                                                                                                                                                       case kl_if_7 of+                                                                                                                                                                           Atom (B (True)) -> do return (Atom (B True))+                                                                                                                                                                           Atom (B (False)) -> do do return (Atom (B False))+                                                                                                                                                                           _ -> throwError "if: expected boolean"+                                                                                                                          pat_cond_8 = do do return (Atom (B False))+                                                                                                                       in case kl_V4098 of+                                                                                                                              !(kl_V4098@(Cons (!kl_V4098h)+                                                                                                                                               (!kl_V4098t))) -> pat_cond_5 kl_V4098 kl_V4098h kl_V4098t+                                                                                                                              _ -> pat_cond_8+                                                                                                          case kl_if_4 of+                                                                                                              Atom (B (True)) -> do !appl_9 <- kl_V4098 `pseq` hd kl_V4098+                                                                                                                                    appl_9 `pseq` (kl_V4099 `pseq` kl_shen_arg_RBstr appl_9 kl_V4099)+                                                                                                              Atom (B (False)) -> do let pat_cond_10 kl_V4098 kl_V4098h kl_V4098t = do !appl_11 <- kl_V4098h `pseq` (kl_V4099 `pseq` kl_shen_arg_RBstr kl_V4098h kl_V4099)+                                                                                                                                                                                       !appl_12 <- kl_V4100 `pseq` Primitives.subtract kl_V4100 (Core.Types.Atom (Core.Types.N (Core.Types.KI 1)))+                                                                                                                                                                                       !appl_13 <- kl_V4098t `pseq` (kl_V4099 `pseq` (appl_12 `pseq` kl_shen_iter_list kl_V4098t kl_V4099 appl_12))+                                                                                                                                                                                       !appl_14 <- appl_13 `pseq` kl_Ats (Core.Types.Atom (Core.Types.Str " ")) appl_13+                                                                                                                                                                                       appl_11 `pseq` (appl_14 `pseq` kl_Ats appl_11 appl_14)+                                                                                                                                         pat_cond_15 = do do !appl_16 <- kl_V4098 `pseq` (kl_V4099 `pseq` kl_shen_arg_RBstr kl_V4098 kl_V4099)+                                                                                                                                                             !appl_17 <- appl_16 `pseq` kl_Ats (Core.Types.Atom (Core.Types.Str " ")) appl_16+                                                                                                                                                             appl_17 `pseq` kl_Ats (Core.Types.Atom (Core.Types.Str "|")) appl_17+                                                                                                                                      in case kl_V4098 of+                                                                                                                                             !(kl_V4098@(Cons (!kl_V4098h)+                                                                                                                                                              (!kl_V4098t))) -> pat_cond_10 kl_V4098 kl_V4098h kl_V4098t+                                                                                                                                             _ -> pat_cond_15+                                                                                                              _ -> throwError "if: expected boolean"+                                                                                       in case kl_V4100 of+                                                                                              kl_V4100@(Atom (N (KI 0))) -> pat_cond_2+                                                                                              _ -> pat_cond_3+                                                               _ -> throwError "if: expected boolean"++kl_shen_str_RBstr :: Core.Types.KLValue ->+                     Core.Types.KLValue ->+                     Core.Types.KLContext Core.Types.Env Core.Types.KLValue+kl_shen_str_RBstr (!kl_V4107) (!kl_V4108) = do let pat_cond_0 = do return kl_V4107+                                                   pat_cond_1 = do do !appl_2 <- nToString (Core.Types.Atom (Core.Types.N (Core.Types.KI 34)))+                                                                      !appl_3 <- nToString (Core.Types.Atom (Core.Types.N (Core.Types.KI 34)))+                                                                      !appl_4 <- kl_V4107 `pseq` (appl_3 `pseq` kl_Ats kl_V4107 appl_3)+                                                                      appl_2 `pseq` (appl_4 `pseq` kl_Ats appl_2 appl_4)+                                                in case kl_V4108 of+                                                       kl_V4108@(Atom (UnboundSym "shen.a")) -> pat_cond_0+                                                       kl_V4108@(ApplC (PL "shen.a"+                                                                           _)) -> pat_cond_0+                                                       kl_V4108@(ApplC (Func "shen.a"+                                                                             _)) -> pat_cond_0+                                                       _ -> pat_cond_1++kl_shen_vector_RBstr :: Core.Types.KLValue ->+                        Core.Types.KLValue ->+                        Core.Types.KLContext Core.Types.Env Core.Types.KLValue+kl_shen_vector_RBstr (!kl_V4111) (!kl_V4112) = do !kl_if_0 <- kl_V4111 `pseq` kl_shen_print_vectorP kl_V4111+                                                  case kl_if_0 of+                                                      Atom (B (True)) -> do !appl_1 <- kl_V4111 `pseq` addressFrom kl_V4111 (Core.Types.Atom (Core.Types.N (Core.Types.KI 0)))+                                                                            !appl_2 <- appl_1 `pseq` kl_function appl_1+                                                                            kl_V4111 `pseq` applyWrapper appl_2 [kl_V4111]+                                                      Atom (B (False)) -> do do !kl_if_3 <- kl_V4111 `pseq` kl_vectorP kl_V4111+                                                                                case kl_if_3 of+                                                                                    Atom (B (True)) -> do !appl_4 <- kl_shen_maxseq+                                                                                                          !appl_5 <- kl_V4111 `pseq` (kl_V4112 `pseq` (appl_4 `pseq` kl_shen_iter_vector kl_V4111 (Core.Types.Atom (Core.Types.N (Core.Types.KI 1))) kl_V4112 appl_4))+                                                                                                          !appl_6 <- appl_5 `pseq` kl_Ats appl_5 (Core.Types.Atom (Core.Types.Str ">"))+                                                                                                          appl_6 `pseq` kl_Ats (Core.Types.Atom (Core.Types.Str "<")) appl_6+                                                                                    Atom (B (False)) -> do do !appl_7 <- kl_shen_maxseq+                                                                                                              !appl_8 <- kl_V4111 `pseq` (kl_V4112 `pseq` (appl_7 `pseq` kl_shen_iter_vector kl_V4111 (Core.Types.Atom (Core.Types.N (Core.Types.KI 0))) kl_V4112 appl_7))+                                                                                                              !appl_9 <- appl_8 `pseq` kl_Ats appl_8 (Core.Types.Atom (Core.Types.Str ">>"))+                                                                                                              !appl_10 <- appl_9 `pseq` kl_Ats (Core.Types.Atom (Core.Types.Str "<")) appl_9+                                                                                                              appl_10 `pseq` kl_Ats (Core.Types.Atom (Core.Types.Str "<")) appl_10+                                                                                    _ -> throwError "if: expected boolean"+                                                      _ -> throwError "if: expected boolean"++kl_shen_print_vectorP :: Core.Types.KLValue ->+                         Core.Types.KLContext Core.Types.Env Core.Types.KLValue+kl_shen_print_vectorP (!kl_V4114) = do let !appl_0 = ApplC (Func "lambda" (Context (\(!kl_Zero) -> do let pat_cond_1 = do return (Atom (B True))+                                                                                                          pat_cond_2 = do do let pat_cond_3 = do return (Atom (B True))+                                                                                                                                 pat_cond_4 = do do let pat_cond_5 = do return (Atom (B True))+                                                                                                                                                        pat_cond_6 = do do !appl_7 <- kl_Zero `pseq` numberP kl_Zero+                                                                                                                                                                           !kl_if_8 <- appl_7 `pseq` kl_not appl_7+                                                                                                                                                                           case kl_if_8 of+                                                                                                                                                                               Atom (B (True)) -> do kl_Zero `pseq` kl_shen_fboundP kl_Zero+                                                                                                                                                                               Atom (B (False)) -> do do return (Atom (B False))+                                                                                                                                                                               _ -> throwError "if: expected boolean"+                                                                                                                                                     in case kl_Zero of+                                                                                                                                                            kl_Zero@(Atom (UnboundSym "shen.dictionary")) -> pat_cond_5+                                                                                                                                                            kl_Zero@(ApplC (PL "shen.dictionary"+                                                                                                                                                                               _)) -> pat_cond_5+                                                                                                                                                            kl_Zero@(ApplC (Func "shen.dictionary"+                                                                                                                                                                                 _)) -> pat_cond_5+                                                                                                                                                            _ -> pat_cond_6+                                                                                                                              in case kl_Zero of+                                                                                                                                     kl_Zero@(Atom (UnboundSym "shen.pvar")) -> pat_cond_3+                                                                                                                                     kl_Zero@(ApplC (PL "shen.pvar"+                                                                                                                                                        _)) -> pat_cond_3+                                                                                                                                     kl_Zero@(ApplC (Func "shen.pvar"+                                                                                                                                                          _)) -> pat_cond_3+                                                                                                                                     _ -> pat_cond_4+                                                                                                       in case kl_Zero of+                                                                                                              kl_Zero@(Atom (UnboundSym "shen.tuple")) -> pat_cond_1+                                                                                                              kl_Zero@(ApplC (PL "shen.tuple"+                                                                                                                                 _)) -> pat_cond_1+                                                                                                              kl_Zero@(ApplC (Func "shen.tuple"+                                                                                                                                   _)) -> pat_cond_1+                                                                                                              _ -> pat_cond_2)))+                                       !appl_9 <- kl_V4114 `pseq` addressFrom kl_V4114 (Core.Types.Atom (Core.Types.N (Core.Types.KI 0)))+                                       appl_9 `pseq` applyWrapper appl_0 [appl_9]++kl_shen_fboundP :: Core.Types.KLValue ->+                   Core.Types.KLContext Core.Types.Env Core.Types.KLValue+kl_shen_fboundP (!kl_V4116) = do (do !appl_0 <- kl_V4116 `pseq` kl_shen_lookup_func kl_V4116+                                     appl_0 `pseq` kl_do appl_0 (Atom (B True))) `catchError` (\(!kl_E) -> do return (Atom (B False)))++kl_shen_tuple :: Core.Types.KLValue ->+                 Core.Types.KLContext Core.Types.Env Core.Types.KLValue+kl_shen_tuple (!kl_V4118) = do !appl_0 <- kl_V4118 `pseq` addressFrom kl_V4118 (Core.Types.Atom (Core.Types.N (Core.Types.KI 1)))+                               !appl_1 <- kl_V4118 `pseq` addressFrom kl_V4118 (Core.Types.Atom (Core.Types.N (Core.Types.KI 2)))+                               !appl_2 <- appl_1 `pseq` kl_shen_app appl_1 (Core.Types.Atom (Core.Types.Str ")")) (Core.Types.Atom (Core.Types.UnboundSym "shen.s"))+                               !appl_3 <- appl_2 `pseq` cn (Core.Types.Atom (Core.Types.Str " ")) appl_2+                               !appl_4 <- appl_0 `pseq` (appl_3 `pseq` kl_shen_app appl_0 appl_3 (Core.Types.Atom (Core.Types.UnboundSym "shen.s")))+                               appl_4 `pseq` cn (Core.Types.Atom (Core.Types.Str "(@p ")) appl_4++kl_shen_dictionary :: Core.Types.KLValue ->+                      Core.Types.KLContext Core.Types.Env Core.Types.KLValue+kl_shen_dictionary (!kl_V4120) = do return (Core.Types.Atom (Core.Types.Str "(dict ...)"))++kl_shen_iter_vector :: Core.Types.KLValue ->+                       Core.Types.KLValue ->+                       Core.Types.KLValue ->+                       Core.Types.KLValue ->+                       Core.Types.KLContext Core.Types.Env Core.Types.KLValue+kl_shen_iter_vector (!kl_V4131) (!kl_V4132) (!kl_V4133) (!kl_V4134) = do let pat_cond_0 = do return (Core.Types.Atom (Core.Types.Str "... etc"))+                                                                             pat_cond_1 = do do let !appl_2 = ApplC (Func "lambda" (Context (\(!kl_Item) -> do let !appl_3 = ApplC (Func "lambda" (Context (\(!kl_Next) -> do let pat_cond_4 = do return (Core.Types.Atom (Core.Types.Str ""))+                                                                                                                                                                                                                                  pat_cond_5 = do do let pat_cond_6 = do kl_Item `pseq` (kl_V4133 `pseq` kl_shen_arg_RBstr kl_Item kl_V4133)+                                                                                                                                                                                                                                                         pat_cond_7 = do do !appl_8 <- kl_Item `pseq` (kl_V4133 `pseq` kl_shen_arg_RBstr kl_Item kl_V4133)+                                                                                                                                                                                                                                                                            !appl_9 <- kl_V4132 `pseq` add kl_V4132 (Core.Types.Atom (Core.Types.N (Core.Types.KI 1)))+                                                                                                                                                                                                                                                                            !appl_10 <- kl_V4134 `pseq` Primitives.subtract kl_V4134 (Core.Types.Atom (Core.Types.N (Core.Types.KI 1)))+                                                                                                                                                                                                                                                                            !appl_11 <- kl_V4131 `pseq` (appl_9 `pseq` (kl_V4133 `pseq` (appl_10 `pseq` kl_shen_iter_vector kl_V4131 appl_9 kl_V4133 appl_10)))+                                                                                                                                                                                                                                                                            !appl_12 <- appl_11 `pseq` kl_Ats (Core.Types.Atom (Core.Types.Str " ")) appl_11+                                                                                                                                                                                                                                                                            appl_8 `pseq` (appl_12 `pseq` kl_Ats appl_8 appl_12)+                                                                                                                                                                                                                                                      in case kl_Next of+                                                                                                                                                                                                                                                             kl_Next@(Atom (UnboundSym "shen.out-of-bounds")) -> pat_cond_6+                                                                                                                                                                                                                                                             kl_Next@(ApplC (PL "shen.out-of-bounds"+                                                                                                                                                                                                                                                                                _)) -> pat_cond_6+                                                                                                                                                                                                                                                             kl_Next@(ApplC (Func "shen.out-of-bounds"+                                                                                                                                                                                                                                                                                  _)) -> pat_cond_6+                                                                                                                                                                                                                                                             _ -> pat_cond_7+                                                                                                                                                                                                                               in case kl_Item of+                                                                                                                                                                                                                                      kl_Item@(Atom (UnboundSym "shen.out-of-bounds")) -> pat_cond_4+                                                                                                                                                                                                                                      kl_Item@(ApplC (PL "shen.out-of-bounds"+                                                                                                                                                                                                                                                         _)) -> pat_cond_4+                                                                                                                                                                                                                                      kl_Item@(ApplC (Func "shen.out-of-bounds"+                                                                                                                                                                                                                                                           _)) -> pat_cond_4+                                                                                                                                                                                                                                      _ -> pat_cond_5)))+                                                                                                                                                               !appl_13 <- kl_V4132 `pseq` add kl_V4132 (Core.Types.Atom (Core.Types.N (Core.Types.KI 1)))+                                                                                                                                                               let !appl_14 = ApplC (PL "thunk" (do return (Core.Types.Atom (Core.Types.UnboundSym "shen.out-of-bounds"))))+                                                                                                                                                               !appl_15 <- kl_V4131 `pseq` (appl_13 `pseq` (appl_14 `pseq` kl_LB_addressDivor kl_V4131 appl_13 appl_14))+                                                                                                                                                               appl_15 `pseq` applyWrapper appl_3 [appl_15])))+                                                                                                let !appl_16 = ApplC (PL "thunk" (do return (Core.Types.Atom (Core.Types.UnboundSym "shen.out-of-bounds"))))+                                                                                                !appl_17 <- kl_V4131 `pseq` (kl_V4132 `pseq` (appl_16 `pseq` kl_LB_addressDivor kl_V4131 kl_V4132 appl_16))+                                                                                                appl_17 `pseq` applyWrapper appl_2 [appl_17]+                                                                          in case kl_V4134 of+                                                                                 kl_V4134@(Atom (N (KI 0))) -> pat_cond_0+                                                                                 _ -> pat_cond_1++kl_shen_atom_RBstr :: Core.Types.KLValue ->+                      Core.Types.KLContext Core.Types.Env Core.Types.KLValue+kl_shen_atom_RBstr (!kl_V4136) = do (do kl_V4136 `pseq` str kl_V4136) `catchError` (\(!kl_E) -> do kl_shen_funexstring)++kl_shen_funexstring :: Core.Types.KLContext Core.Types.Env+                                            Core.Types.KLValue+kl_shen_funexstring = do !appl_0 <- intern (Core.Types.Atom (Core.Types.Str "x"))+                         !appl_1 <- appl_0 `pseq` kl_gensym appl_0+                         !appl_2 <- appl_1 `pseq` kl_shen_arg_RBstr appl_1 (Core.Types.Atom (Core.Types.UnboundSym "shen.a"))+                         !appl_3 <- appl_2 `pseq` kl_Ats appl_2 (Core.Types.Atom (Core.Types.Str "\\DC1"))+                         !appl_4 <- appl_3 `pseq` kl_Ats (Core.Types.Atom (Core.Types.Str "e")) appl_3+                         !appl_5 <- appl_4 `pseq` kl_Ats (Core.Types.Atom (Core.Types.Str "n")) appl_4+                         !appl_6 <- appl_5 `pseq` kl_Ats (Core.Types.Atom (Core.Types.Str "u")) appl_5+                         !appl_7 <- appl_6 `pseq` kl_Ats (Core.Types.Atom (Core.Types.Str "f")) appl_6+                         appl_7 `pseq` kl_Ats (Core.Types.Atom (Core.Types.Str "\\DLE")) appl_7++kl_shen_listP :: Core.Types.KLValue ->+                 Core.Types.KLContext Core.Types.Env Core.Types.KLValue+kl_shen_listP (!kl_V4138) = do !kl_if_0 <- kl_V4138 `pseq` kl_emptyP kl_V4138+                               case kl_if_0 of+                                   Atom (B (True)) -> do return (Atom (B True))+                                   Atom (B (False)) -> do do let pat_cond_1 kl_V4138 kl_V4138h kl_V4138t = do return (Atom (B True))+                                                                 pat_cond_2 = do do return (Atom (B False))+                                                              in case kl_V4138 of+                                                                     !(kl_V4138@(Cons (!kl_V4138h)+                                                                                      (!kl_V4138t))) -> pat_cond_1 kl_V4138 kl_V4138h kl_V4138t+                                                                     _ -> pat_cond_2+                                   _ -> throwError "if: expected boolean"++expr9 :: Core.Types.KLContext Core.Types.Env Core.Types.KLValue+expr9 = do (do return (Core.Types.Atom (Core.Types.Str "Copyright (c) 2015, Mark Tarver\n\nAll rights reserved.\n\nRedistribution and use in source and binary forms, with or without\nmodification, are permitted provided that the following conditions are met:\n1. Redistributions of source code must retain the above copyright\n   notice, this list of conditions and the following disclaimer.\n2. Redistributions in binary form must reproduce the above copyright\n   notice, this list of conditions and the following disclaimer in the\n   documentation and/or other materials provided with the distribution.\n3. The name of Mark Tarver may not be used to endorse or promote products\n   derived from this software without specific prior written permission.\n\nTHIS SOFTWARE IS PROVIDED BY Mark Tarver ''AS IS'' AND ANY\nEXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED\nWARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE\nDISCLAIMED. IN NO EVENT SHALL Mark Tarver BE LIABLE FOR ANY\nDIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES\n(INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;\nLOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND\nON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT\n(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS\nSOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE."))) `catchError` (\(!kl_E) -> do return (Core.Types.Atom (Core.Types.Str "E")))
Shentong/Backend/Yacc.hs view
@@ -1,849 +1,1225 @@-{-# LANGUAGE BangPatterns #-}
-{-# LANGUAGE OverloadedStrings #-}
-{-# LANGUAGE Strict #-}
-{-# LANGUAGE StrictData #-}
-{-# LANGUAGE ViewPatterns #-}
-
-module Backend.Yacc where
-
-import Control.Monad.Except
-import Control.Parallel
-import Environment
-import Primitives as Primitives
-import Backend.Utils
-import Types as Types
-import Utils
-import Wrap
-import Backend.Toplevel
-import Backend.Core
-import Backend.Sys
-import Backend.Sequent
-
-{-
-Copyright (c) 2015, Mark Tarver
-All rights reserved.
-
-Redistribution and use in source and binary forms, with or without
-modification, are permitted provided that the following conditions are met:
-
-1. Redistributions of source code must retain the above copyright
-   notice, this list of conditions and the following disclaimer.
-2. Redistributions in binary form must reproduce the above copyright
-   notice, this list of conditions and the following disclaimer in the
-   documentation and/or other materials provided with the distribution.
-3. The name of Mark Tarver may not be used to endorse or promote products
-   derived from this software without specific prior written permission.
-
-THIS SOFTWARE IS PROVIDED BY Mark Tarver ''AS IS'' AND ANY
-EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
-WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
-DISCLAIMED. IN NO EVENT SHALL Mark Tarver BE LIABLE FOR ANY
-DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
-(INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
-LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND
-ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
-(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
-SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
--}
-
-kl_shen_yacc :: Types.KLValue ->
-                Types.KLContext Types.Env Types.KLValue
-kl_shen_yacc (!kl_V4004) = do let pat_cond_0 kl_V4004 kl_V4004t kl_V4004th kl_V4004tt = do kl_V4004th `pseq` (kl_V4004tt `pseq` kl_shen_yacc_RBshen kl_V4004th kl_V4004tt)
-                                  pat_cond_1 = do do let !aw_2 = Types.Atom (Types.UnboundSym "shen.f_error")
-                                                     applyWrapper aw_2 [ApplC (wrapNamed "shen.yacc" kl_shen_yacc)]
-                               in case kl_V4004 of
-                                      !(kl_V4004@(Cons (Atom (UnboundSym "defcc"))
-                                                       (!(kl_V4004t@(Cons (!kl_V4004th)
-                                                                          (!kl_V4004tt)))))) -> pat_cond_0 kl_V4004 kl_V4004t kl_V4004th kl_V4004tt
-                                      !(kl_V4004@(Cons (ApplC (PL "defcc" _))
-                                                       (!(kl_V4004t@(Cons (!kl_V4004th)
-                                                                          (!kl_V4004tt)))))) -> pat_cond_0 kl_V4004 kl_V4004t kl_V4004th kl_V4004tt
-                                      !(kl_V4004@(Cons (ApplC (Func "defcc" _))
-                                                       (!(kl_V4004t@(Cons (!kl_V4004th)
-                                                                          (!kl_V4004tt)))))) -> pat_cond_0 kl_V4004 kl_V4004t kl_V4004th kl_V4004tt
-                                      _ -> pat_cond_1
-
-kl_shen_yacc_RBshen :: Types.KLValue ->
-                       Types.KLValue -> Types.KLContext Types.Env Types.KLValue
-kl_shen_yacc_RBshen (!kl_V4007) (!kl_V4008) = do let !appl_0 = ApplC (Func "lambda" (Context (\(!kl_CCRules) -> do let !appl_1 = ApplC (Func "lambda" (Context (\(!kl_CCBody) -> do let !appl_2 = ApplC (Func "lambda" (Context (\(!kl_YaccCases) -> do !appl_3 <- kl_YaccCases `pseq` kl_shen_kill_code kl_YaccCases
-                                                                                                                                                                                                                                                        !appl_4 <- appl_3 `pseq` klCons appl_3 (Types.Atom Types.Nil)
-                                                                                                                                                                                                                                                        !appl_5 <- appl_4 `pseq` klCons (Types.Atom (Types.UnboundSym "->")) appl_4
-                                                                                                                                                                                                                                                        !appl_6 <- appl_5 `pseq` klCons (Types.Atom (Types.UnboundSym "Stream")) appl_5
-                                                                                                                                                                                                                                                        !appl_7 <- kl_V4007 `pseq` (appl_6 `pseq` klCons kl_V4007 appl_6)
-                                                                                                                                                                                                                                                        appl_7 `pseq` klCons (Types.Atom (Types.UnboundSym "define")) appl_7)))
-                                                                                                                                                                                    !appl_8 <- kl_CCBody `pseq` kl_shen_yacc_cases kl_CCBody
-                                                                                                                                                                                    appl_8 `pseq` applyWrapper appl_2 [appl_8])))
-                                                                                                                   let !appl_9 = ApplC (Func "lambda" (Context (\(!kl_X) -> do kl_X `pseq` kl_shen_cc_body kl_X)))
-                                                                                                                   !appl_10 <- appl_9 `pseq` (kl_CCRules `pseq` kl_map appl_9 kl_CCRules)
-                                                                                                                   appl_10 `pseq` applyWrapper appl_1 [appl_10])))
-                                                 !appl_11 <- kl_V4008 `pseq` kl_shen_split_cc_rules (Atom (B True)) kl_V4008 (Types.Atom Types.Nil)
-                                                 appl_11 `pseq` applyWrapper appl_0 [appl_11]
-
-kl_shen_kill_code :: Types.KLValue ->
-                     Types.KLContext Types.Env Types.KLValue
-kl_shen_kill_code (!kl_V4010) = do !appl_0 <- kl_V4010 `pseq` kl_occurrences (ApplC (PL "kill" kl_kill)) kl_V4010
-                                   !kl_if_1 <- appl_0 `pseq` greaterThan appl_0 (Types.Atom (Types.N (Types.KI 0)))
-                                   case kl_if_1 of
-                                       Atom (B (True)) -> do !appl_2 <- klCons (Types.Atom (Types.UnboundSym "E")) (Types.Atom Types.Nil)
-                                                             !appl_3 <- appl_2 `pseq` klCons (ApplC (wrapNamed "shen.analyse-kill" kl_shen_analyse_kill)) appl_2
-                                                             !appl_4 <- appl_3 `pseq` klCons appl_3 (Types.Atom Types.Nil)
-                                                             !appl_5 <- appl_4 `pseq` klCons (Types.Atom (Types.UnboundSym "E")) appl_4
-                                                             !appl_6 <- appl_5 `pseq` klCons (Types.Atom (Types.UnboundSym "lambda")) appl_5
-                                                             !appl_7 <- appl_6 `pseq` klCons appl_6 (Types.Atom Types.Nil)
-                                                             !appl_8 <- kl_V4010 `pseq` (appl_7 `pseq` klCons kl_V4010 appl_7)
-                                                             appl_8 `pseq` klCons (Types.Atom (Types.UnboundSym "trap-error")) appl_8
-                                       Atom (B (False)) -> do do return kl_V4010
-                                       _ -> throwError "if: expected boolean"
-
-kl_kill :: Types.KLContext Types.Env Types.KLValue
-kl_kill = do simpleError (Types.Atom (Types.Str "yacc kill"))
-
-kl_shen_analyse_kill :: Types.KLValue ->
-                        Types.KLContext Types.Env Types.KLValue
-kl_shen_analyse_kill (!kl_V4012) = do let !appl_0 = ApplC (Func "lambda" (Context (\(!kl_String) -> do let pat_cond_1 = do kl_fail
-                                                                                                           pat_cond_2 = do do return kl_V4012
-                                                                                                        in case kl_String of
-                                                                                                               kl_String@(Atom (Str "yacc kill")) -> pat_cond_1
-                                                                                                               _ -> pat_cond_2)))
-                                      !appl_3 <- kl_V4012 `pseq` errorToString kl_V4012
-                                      appl_3 `pseq` applyWrapper appl_0 [appl_3]
-
-kl_shen_split_cc_rules :: Types.KLValue ->
-                          Types.KLValue ->
-                          Types.KLValue -> Types.KLContext Types.Env Types.KLValue
-kl_shen_split_cc_rules (!kl_V4018) (!kl_V4019) (!kl_V4020) = do !kl_if_0 <- let pat_cond_1 = do let pat_cond_2 = do return (Atom (B True))
-                                                                                                    pat_cond_3 = do do return (Atom (B False))
-                                                                                                 in case kl_V4020 of
-                                                                                                        kl_V4020@(Atom (Nil)) -> pat_cond_2
-                                                                                                        _ -> pat_cond_3
-                                                                                pat_cond_4 = do do return (Atom (B False))
-                                                                             in case kl_V4019 of
-                                                                                    kl_V4019@(Atom (Nil)) -> pat_cond_1
-                                                                                    _ -> pat_cond_4
-                                                                case kl_if_0 of
-                                                                    Atom (B (True)) -> do return (Types.Atom Types.Nil)
-                                                                    Atom (B (False)) -> do let pat_cond_5 = do !appl_6 <- kl_V4020 `pseq` kl_reverse kl_V4020
-                                                                                                               !appl_7 <- kl_V4018 `pseq` (appl_6 `pseq` kl_shen_split_cc_rule kl_V4018 appl_6 (Types.Atom Types.Nil))
-                                                                                                               appl_7 `pseq` klCons appl_7 (Types.Atom Types.Nil)
-                                                                                               pat_cond_8 kl_V4019 kl_V4019t = do !appl_9 <- kl_V4020 `pseq` kl_reverse kl_V4020
-                                                                                                                                  !appl_10 <- kl_V4018 `pseq` (appl_9 `pseq` kl_shen_split_cc_rule kl_V4018 appl_9 (Types.Atom Types.Nil))
-                                                                                                                                  !appl_11 <- kl_V4018 `pseq` (kl_V4019t `pseq` kl_shen_split_cc_rules kl_V4018 kl_V4019t (Types.Atom Types.Nil))
-                                                                                                                                  appl_10 `pseq` (appl_11 `pseq` klCons appl_10 appl_11)
-                                                                                               pat_cond_12 kl_V4019 kl_V4019h kl_V4019t = do !appl_13 <- kl_V4019h `pseq` (kl_V4020 `pseq` klCons kl_V4019h kl_V4020)
-                                                                                                                                             kl_V4018 `pseq` (kl_V4019t `pseq` (appl_13 `pseq` kl_shen_split_cc_rules kl_V4018 kl_V4019t appl_13))
-                                                                                               pat_cond_14 = do do let !aw_15 = Types.Atom (Types.UnboundSym "shen.f_error")
-                                                                                                                   applyWrapper aw_15 [ApplC (wrapNamed "shen.split_cc_rules" kl_shen_split_cc_rules)]
-                                                                                            in case kl_V4019 of
-                                                                                                   kl_V4019@(Atom (Nil)) -> pat_cond_5
-                                                                                                   !(kl_V4019@(Cons (Atom (UnboundSym ";"))
-                                                                                                                    (!kl_V4019t))) -> pat_cond_8 kl_V4019 kl_V4019t
-                                                                                                   !(kl_V4019@(Cons (ApplC (PL ";"
-                                                                                                                               _))
-                                                                                                                    (!kl_V4019t))) -> pat_cond_8 kl_V4019 kl_V4019t
-                                                                                                   !(kl_V4019@(Cons (ApplC (Func ";"
-                                                                                                                                 _))
-                                                                                                                    (!kl_V4019t))) -> pat_cond_8 kl_V4019 kl_V4019t
-                                                                                                   !(kl_V4019@(Cons (!kl_V4019h)
-                                                                                                                    (!kl_V4019t))) -> pat_cond_12 kl_V4019 kl_V4019h kl_V4019t
-                                                                                                   _ -> pat_cond_14
-                                                                    _ -> throwError "if: expected boolean"
-
-kl_shen_split_cc_rule :: Types.KLValue ->
-                         Types.KLValue ->
-                         Types.KLValue -> Types.KLContext Types.Env Types.KLValue
-kl_shen_split_cc_rule (!kl_V4028) (!kl_V4029) (!kl_V4030) = do let pat_cond_0 kl_V4029 kl_V4029t kl_V4029th = do !appl_1 <- kl_V4030 `pseq` kl_reverse kl_V4030
-                                                                                                                 appl_1 `pseq` (kl_V4029t `pseq` klCons appl_1 kl_V4029t)
-                                                                   pat_cond_2 kl_V4029 kl_V4029t kl_V4029th kl_V4029tt kl_V4029ttt kl_V4029ttth = do !appl_3 <- kl_V4030 `pseq` kl_reverse kl_V4030
-                                                                                                                                                     !appl_4 <- kl_V4029th `pseq` klCons kl_V4029th (Types.Atom Types.Nil)
-                                                                                                                                                     !appl_5 <- kl_V4029ttth `pseq` (appl_4 `pseq` klCons kl_V4029ttth appl_4)
-                                                                                                                                                     !appl_6 <- appl_5 `pseq` klCons (Types.Atom (Types.UnboundSym "where")) appl_5
-                                                                                                                                                     !appl_7 <- appl_6 `pseq` klCons appl_6 (Types.Atom Types.Nil)
-                                                                                                                                                     appl_3 `pseq` (appl_7 `pseq` klCons appl_3 appl_7)
-                                                                   pat_cond_8 = do !appl_9 <- kl_V4028 `pseq` (kl_V4030 `pseq` kl_shen_semantic_completion_warning kl_V4028 kl_V4030)
-                                                                                   !appl_10 <- kl_V4030 `pseq` kl_reverse kl_V4030
-                                                                                   !appl_11 <- appl_10 `pseq` kl_shen_default_semantics appl_10
-                                                                                   !appl_12 <- appl_11 `pseq` klCons appl_11 (Types.Atom Types.Nil)
-                                                                                   !appl_13 <- appl_12 `pseq` klCons (Types.Atom (Types.UnboundSym ":=")) appl_12
-                                                                                   !appl_14 <- kl_V4028 `pseq` (appl_13 `pseq` (kl_V4030 `pseq` kl_shen_split_cc_rule kl_V4028 appl_13 kl_V4030))
-                                                                                   appl_9 `pseq` (appl_14 `pseq` kl_do appl_9 appl_14)
-                                                                   pat_cond_15 kl_V4029 kl_V4029h kl_V4029t = do !appl_16 <- kl_V4029h `pseq` (kl_V4030 `pseq` klCons kl_V4029h kl_V4030)
-                                                                                                                 kl_V4028 `pseq` (kl_V4029t `pseq` (appl_16 `pseq` kl_shen_split_cc_rule kl_V4028 kl_V4029t appl_16))
-                                                                   pat_cond_17 = do do let !aw_18 = Types.Atom (Types.UnboundSym "shen.f_error")
-                                                                                       applyWrapper aw_18 [ApplC (wrapNamed "shen.split_cc_rule" kl_shen_split_cc_rule)]
-                                                                in case kl_V4029 of
-                                                                       !(kl_V4029@(Cons (Atom (UnboundSym ":="))
-                                                                                        (!(kl_V4029t@(Cons (!kl_V4029th)
-                                                                                                           (Atom (Nil))))))) -> pat_cond_0 kl_V4029 kl_V4029t kl_V4029th
-                                                                       !(kl_V4029@(Cons (ApplC (PL ":="
-                                                                                                   _))
-                                                                                        (!(kl_V4029t@(Cons (!kl_V4029th)
-                                                                                                           (Atom (Nil))))))) -> pat_cond_0 kl_V4029 kl_V4029t kl_V4029th
-                                                                       !(kl_V4029@(Cons (ApplC (Func ":="
-                                                                                                     _))
-                                                                                        (!(kl_V4029t@(Cons (!kl_V4029th)
-                                                                                                           (Atom (Nil))))))) -> pat_cond_0 kl_V4029 kl_V4029t kl_V4029th
-                                                                       !(kl_V4029@(Cons (Atom (UnboundSym ":="))
-                                                                                        (!(kl_V4029t@(Cons (!kl_V4029th)
-                                                                                                           (!(kl_V4029tt@(Cons (Atom (UnboundSym "where"))
-                                                                                                                               (!(kl_V4029ttt@(Cons (!kl_V4029ttth)
-                                                                                                                                                    (Atom (Nil))))))))))))) -> pat_cond_2 kl_V4029 kl_V4029t kl_V4029th kl_V4029tt kl_V4029ttt kl_V4029ttth
-                                                                       !(kl_V4029@(Cons (Atom (UnboundSym ":="))
-                                                                                        (!(kl_V4029t@(Cons (!kl_V4029th)
-                                                                                                           (!(kl_V4029tt@(Cons (ApplC (PL "where"
-                                                                                                                                          _))
-                                                                                                                               (!(kl_V4029ttt@(Cons (!kl_V4029ttth)
-                                                                                                                                                    (Atom (Nil))))))))))))) -> pat_cond_2 kl_V4029 kl_V4029t kl_V4029th kl_V4029tt kl_V4029ttt kl_V4029ttth
-                                                                       !(kl_V4029@(Cons (Atom (UnboundSym ":="))
-                                                                                        (!(kl_V4029t@(Cons (!kl_V4029th)
-                                                                                                           (!(kl_V4029tt@(Cons (ApplC (Func "where"
-                                                                                                                                            _))
-                                                                                                                               (!(kl_V4029ttt@(Cons (!kl_V4029ttth)
-                                                                                                                                                    (Atom (Nil))))))))))))) -> pat_cond_2 kl_V4029 kl_V4029t kl_V4029th kl_V4029tt kl_V4029ttt kl_V4029ttth
-                                                                       !(kl_V4029@(Cons (ApplC (PL ":="
-                                                                                                   _))
-                                                                                        (!(kl_V4029t@(Cons (!kl_V4029th)
-                                                                                                           (!(kl_V4029tt@(Cons (Atom (UnboundSym "where"))
-                                                                                                                               (!(kl_V4029ttt@(Cons (!kl_V4029ttth)
-                                                                                                                                                    (Atom (Nil))))))))))))) -> pat_cond_2 kl_V4029 kl_V4029t kl_V4029th kl_V4029tt kl_V4029ttt kl_V4029ttth
-                                                                       !(kl_V4029@(Cons (ApplC (PL ":="
-                                                                                                   _))
-                                                                                        (!(kl_V4029t@(Cons (!kl_V4029th)
-                                                                                                           (!(kl_V4029tt@(Cons (ApplC (PL "where"
-                                                                                                                                          _))
-                                                                                                                               (!(kl_V4029ttt@(Cons (!kl_V4029ttth)
-                                                                                                                                                    (Atom (Nil))))))))))))) -> pat_cond_2 kl_V4029 kl_V4029t kl_V4029th kl_V4029tt kl_V4029ttt kl_V4029ttth
-                                                                       !(kl_V4029@(Cons (ApplC (PL ":="
-                                                                                                   _))
-                                                                                        (!(kl_V4029t@(Cons (!kl_V4029th)
-                                                                                                           (!(kl_V4029tt@(Cons (ApplC (Func "where"
-                                                                                                                                            _))
-                                                                                                                               (!(kl_V4029ttt@(Cons (!kl_V4029ttth)
-                                                                                                                                                    (Atom (Nil))))))))))))) -> pat_cond_2 kl_V4029 kl_V4029t kl_V4029th kl_V4029tt kl_V4029ttt kl_V4029ttth
-                                                                       !(kl_V4029@(Cons (ApplC (Func ":="
-                                                                                                     _))
-                                                                                        (!(kl_V4029t@(Cons (!kl_V4029th)
-                                                                                                           (!(kl_V4029tt@(Cons (Atom (UnboundSym "where"))
-                                                                                                                               (!(kl_V4029ttt@(Cons (!kl_V4029ttth)
-                                                                                                                                                    (Atom (Nil))))))))))))) -> pat_cond_2 kl_V4029 kl_V4029t kl_V4029th kl_V4029tt kl_V4029ttt kl_V4029ttth
-                                                                       !(kl_V4029@(Cons (ApplC (Func ":="
-                                                                                                     _))
-                                                                                        (!(kl_V4029t@(Cons (!kl_V4029th)
-                                                                                                           (!(kl_V4029tt@(Cons (ApplC (PL "where"
-                                                                                                                                          _))
-                                                                                                                               (!(kl_V4029ttt@(Cons (!kl_V4029ttth)
-                                                                                                                                                    (Atom (Nil))))))))))))) -> pat_cond_2 kl_V4029 kl_V4029t kl_V4029th kl_V4029tt kl_V4029ttt kl_V4029ttth
-                                                                       !(kl_V4029@(Cons (ApplC (Func ":="
-                                                                                                     _))
-                                                                                        (!(kl_V4029t@(Cons (!kl_V4029th)
-                                                                                                           (!(kl_V4029tt@(Cons (ApplC (Func "where"
-                                                                                                                                            _))
-                                                                                                                               (!(kl_V4029ttt@(Cons (!kl_V4029ttth)
-                                                                                                                                                    (Atom (Nil))))))))))))) -> pat_cond_2 kl_V4029 kl_V4029t kl_V4029th kl_V4029tt kl_V4029ttt kl_V4029ttth
-                                                                       kl_V4029@(Atom (Nil)) -> pat_cond_8
-                                                                       !(kl_V4029@(Cons (!kl_V4029h)
-                                                                                        (!kl_V4029t))) -> pat_cond_15 kl_V4029 kl_V4029h kl_V4029t
-                                                                       _ -> pat_cond_17
-
-kl_shen_semantic_completion_warning :: Types.KLValue ->
-                                       Types.KLValue -> Types.KLContext Types.Env Types.KLValue
-kl_shen_semantic_completion_warning (!kl_V4041) (!kl_V4042) = do let pat_cond_0 = do !appl_1 <- kl_stoutput
-                                                                                     let !aw_2 = Types.Atom (Types.UnboundSym "shen.prhush")
-                                                                                     !appl_3 <- appl_1 `pseq` applyWrapper aw_2 [Types.Atom (Types.Str "warning: "),
-                                                                                                                                 appl_1]
-                                                                                     let !appl_4 = ApplC (Func "lambda" (Context (\(!kl_X) -> do let !aw_5 = Types.Atom (Types.UnboundSym "shen.app")
-                                                                                                                                                 !appl_6 <- kl_X `pseq` applyWrapper aw_5 [kl_X,
-                                                                                                                                                                                           Types.Atom (Types.Str " "),
-                                                                                                                                                                                           Types.Atom (Types.UnboundSym "shen.a")]
-                                                                                                                                                 !appl_7 <- kl_stoutput
-                                                                                                                                                 let !aw_8 = Types.Atom (Types.UnboundSym "shen.prhush")
-                                                                                                                                                 appl_6 `pseq` (appl_7 `pseq` applyWrapper aw_8 [appl_6,
-                                                                                                                                                                                                 appl_7]))))
-                                                                                     !appl_9 <- kl_V4042 `pseq` kl_reverse kl_V4042
-                                                                                     !appl_10 <- appl_4 `pseq` (appl_9 `pseq` kl_map appl_4 appl_9)
-                                                                                     !appl_11 <- kl_stoutput
-                                                                                     let !aw_12 = Types.Atom (Types.UnboundSym "shen.prhush")
-                                                                                     !appl_13 <- appl_11 `pseq` applyWrapper aw_12 [Types.Atom (Types.Str "has no semantics.\n"),
-                                                                                                                                    appl_11]
-                                                                                     !appl_14 <- appl_10 `pseq` (appl_13 `pseq` kl_do appl_10 appl_13)
-                                                                                     appl_3 `pseq` (appl_14 `pseq` kl_do appl_3 appl_14)
-                                                                     pat_cond_15 = do do return (Types.Atom (Types.UnboundSym "shen.skip"))
-                                                                  in case kl_V4041 of
-                                                                         kl_V4041@(Atom (UnboundSym "true")) -> pat_cond_0
-                                                                         kl_V4041@(Atom (B (True))) -> pat_cond_0
-                                                                         _ -> pat_cond_15
-
-kl_shen_default_semantics :: Types.KLValue ->
-                             Types.KLContext Types.Env Types.KLValue
-kl_shen_default_semantics (!kl_V4044) = do let pat_cond_0 = do return (Types.Atom Types.Nil)
-                                               pat_cond_1 = do !kl_if_2 <- let pat_cond_3 kl_V4044 kl_V4044h kl_V4044t = do !kl_if_4 <- let pat_cond_5 = do !kl_if_6 <- kl_V4044h `pseq` kl_shen_grammar_symbolP kl_V4044h
-                                                                                                                                                            case kl_if_6 of
-                                                                                                                                                                Atom (B (True)) -> do return (Atom (B True))
-                                                                                                                                                                Atom (B (False)) -> do do return (Atom (B False))
-                                                                                                                                                                _ -> throwError "if: expected boolean"
-                                                                                                                                            pat_cond_7 = do do return (Atom (B False))
-                                                                                                                                         in case kl_V4044t of
-                                                                                                                                                kl_V4044t@(Atom (Nil)) -> pat_cond_5
-                                                                                                                                                _ -> pat_cond_7
-                                                                                                                            case kl_if_4 of
-                                                                                                                                Atom (B (True)) -> do return (Atom (B True))
-                                                                                                                                Atom (B (False)) -> do do return (Atom (B False))
-                                                                                                                                _ -> throwError "if: expected boolean"
-                                                                               pat_cond_8 = do do return (Atom (B False))
-                                                                            in case kl_V4044 of
-                                                                                   !(kl_V4044@(Cons (!kl_V4044h)
-                                                                                                    (!kl_V4044t))) -> pat_cond_3 kl_V4044 kl_V4044h kl_V4044t
-                                                                                   _ -> pat_cond_8
-                                                               case kl_if_2 of
-                                                                   Atom (B (True)) -> do kl_V4044 `pseq` hd kl_V4044
-                                                                   Atom (B (False)) -> do !kl_if_9 <- let pat_cond_10 kl_V4044 kl_V4044h kl_V4044t = do !kl_if_11 <- kl_V4044h `pseq` kl_shen_grammar_symbolP kl_V4044h
-                                                                                                                                                        case kl_if_11 of
-                                                                                                                                                            Atom (B (True)) -> do return (Atom (B True))
-                                                                                                                                                            Atom (B (False)) -> do do return (Atom (B False))
-                                                                                                                                                            _ -> throwError "if: expected boolean"
-                                                                                                          pat_cond_12 = do do return (Atom (B False))
-                                                                                                       in case kl_V4044 of
-                                                                                                              !(kl_V4044@(Cons (!kl_V4044h)
-                                                                                                                               (!kl_V4044t))) -> pat_cond_10 kl_V4044 kl_V4044h kl_V4044t
-                                                                                                              _ -> pat_cond_12
-                                                                                          case kl_if_9 of
-                                                                                              Atom (B (True)) -> do !appl_13 <- kl_V4044 `pseq` hd kl_V4044
-                                                                                                                    !appl_14 <- kl_V4044 `pseq` tl kl_V4044
-                                                                                                                    !appl_15 <- appl_14 `pseq` kl_shen_default_semantics appl_14
-                                                                                                                    !appl_16 <- appl_15 `pseq` klCons appl_15 (Types.Atom Types.Nil)
-                                                                                                                    !appl_17 <- appl_13 `pseq` (appl_16 `pseq` klCons appl_13 appl_16)
-                                                                                                                    appl_17 `pseq` klCons (ApplC (wrapNamed "append" kl_append)) appl_17
-                                                                                              Atom (B (False)) -> do let pat_cond_18 kl_V4044 kl_V4044h kl_V4044t = do !appl_19 <- kl_V4044t `pseq` kl_shen_default_semantics kl_V4044t
-                                                                                                                                                                       !appl_20 <- appl_19 `pseq` klCons appl_19 (Types.Atom Types.Nil)
-                                                                                                                                                                       !appl_21 <- kl_V4044h `pseq` (appl_20 `pseq` klCons kl_V4044h appl_20)
-                                                                                                                                                                       appl_21 `pseq` klCons (ApplC (wrapNamed "cons" klCons)) appl_21
-                                                                                                                         pat_cond_22 = do do let !aw_23 = Types.Atom (Types.UnboundSym "shen.f_error")
-                                                                                                                                             applyWrapper aw_23 [ApplC (wrapNamed "shen.default_semantics" kl_shen_default_semantics)]
-                                                                                                                      in case kl_V4044 of
-                                                                                                                             !(kl_V4044@(Cons (!kl_V4044h)
-                                                                                                                                              (!kl_V4044t))) -> pat_cond_18 kl_V4044 kl_V4044h kl_V4044t
-                                                                                                                             _ -> pat_cond_22
-                                                                                              _ -> throwError "if: expected boolean"
-                                                                   _ -> throwError "if: expected boolean"
-                                            in case kl_V4044 of
-                                                   kl_V4044@(Atom (Nil)) -> pat_cond_0
-                                                   _ -> pat_cond_1
-
-kl_shen_grammar_symbolP :: Types.KLValue ->
-                           Types.KLContext Types.Env Types.KLValue
-kl_shen_grammar_symbolP (!kl_V4046) = do !kl_if_0 <- kl_V4046 `pseq` kl_symbolP kl_V4046
-                                         case kl_if_0 of
-                                             Atom (B (True)) -> do let !appl_1 = ApplC (Func "lambda" (Context (\(!kl_Cs) -> do !appl_2 <- kl_Cs `pseq` hd kl_Cs
-                                                                                                                                !kl_if_3 <- appl_2 `pseq` eq appl_2 (Types.Atom (Types.Str "<"))
-                                                                                                                                case kl_if_3 of
-                                                                                                                                    Atom (B (True)) -> do !appl_4 <- kl_Cs `pseq` kl_reverse kl_Cs
-                                                                                                                                                          !appl_5 <- appl_4 `pseq` hd appl_4
-                                                                                                                                                          !kl_if_6 <- appl_5 `pseq` eq appl_5 (Types.Atom (Types.Str ">"))
-                                                                                                                                                          case kl_if_6 of
-                                                                                                                                                              Atom (B (True)) -> do return (Atom (B True))
-                                                                                                                                                              Atom (B (False)) -> do do return (Atom (B False))
-                                                                                                                                                              _ -> throwError "if: expected boolean"
-                                                                                                                                    Atom (B (False)) -> do do return (Atom (B False))
-                                                                                                                                    _ -> throwError "if: expected boolean")))
-                                                                   !appl_7 <- kl_V4046 `pseq` kl_explode kl_V4046
-                                                                   !appl_8 <- appl_7 `pseq` kl_shen_strip_pathname appl_7
-                                                                   !kl_if_9 <- appl_8 `pseq` applyWrapper appl_1 [appl_8]
-                                                                   case kl_if_9 of
-                                                                       Atom (B (True)) -> do return (Atom (B True))
-                                                                       Atom (B (False)) -> do do return (Atom (B False))
-                                                                       _ -> throwError "if: expected boolean"
-                                             Atom (B (False)) -> do do return (Atom (B False))
-                                             _ -> throwError "if: expected boolean"
-
-kl_shen_yacc_cases :: Types.KLValue ->
-                      Types.KLContext Types.Env Types.KLValue
-kl_shen_yacc_cases (!kl_V4048) = do let pat_cond_0 kl_V4048 kl_V4048h = do return kl_V4048h
-                                        pat_cond_1 kl_V4048 kl_V4048h kl_V4048t = do let !appl_2 = ApplC (Func "lambda" (Context (\(!kl_P) -> do !appl_3 <- klCons (ApplC (PL "fail" kl_fail)) (Types.Atom Types.Nil)
-                                                                                                                                                 !appl_4 <- appl_3 `pseq` klCons appl_3 (Types.Atom Types.Nil)
-                                                                                                                                                 !appl_5 <- kl_P `pseq` (appl_4 `pseq` klCons kl_P appl_4)
-                                                                                                                                                 !appl_6 <- appl_5 `pseq` klCons (ApplC (wrapNamed "=" eq)) appl_5
-                                                                                                                                                 !appl_7 <- kl_V4048t `pseq` kl_shen_yacc_cases kl_V4048t
-                                                                                                                                                 !appl_8 <- kl_P `pseq` klCons kl_P (Types.Atom Types.Nil)
-                                                                                                                                                 !appl_9 <- appl_7 `pseq` (appl_8 `pseq` klCons appl_7 appl_8)
-                                                                                                                                                 !appl_10 <- appl_6 `pseq` (appl_9 `pseq` klCons appl_6 appl_9)
-                                                                                                                                                 !appl_11 <- appl_10 `pseq` klCons (Types.Atom (Types.UnboundSym "if")) appl_10
-                                                                                                                                                 !appl_12 <- appl_11 `pseq` klCons appl_11 (Types.Atom Types.Nil)
-                                                                                                                                                 !appl_13 <- kl_V4048h `pseq` (appl_12 `pseq` klCons kl_V4048h appl_12)
-                                                                                                                                                 !appl_14 <- kl_P `pseq` (appl_13 `pseq` klCons kl_P appl_13)
-                                                                                                                                                 appl_14 `pseq` klCons (Types.Atom (Types.UnboundSym "let")) appl_14)))
-                                                                                     applyWrapper appl_2 [Types.Atom (Types.UnboundSym "YaccParse")]
-                                        pat_cond_15 = do do let !aw_16 = Types.Atom (Types.UnboundSym "shen.f_error")
-                                                            applyWrapper aw_16 [ApplC (wrapNamed "shen.yacc_cases" kl_shen_yacc_cases)]
-                                     in case kl_V4048 of
-                                            !(kl_V4048@(Cons (!kl_V4048h)
-                                                             (Atom (Nil)))) -> pat_cond_0 kl_V4048 kl_V4048h
-                                            !(kl_V4048@(Cons (!kl_V4048h)
-                                                             (!kl_V4048t))) -> pat_cond_1 kl_V4048 kl_V4048h kl_V4048t
-                                            _ -> pat_cond_15
-
-kl_shen_cc_body :: Types.KLValue ->
-                   Types.KLContext Types.Env Types.KLValue
-kl_shen_cc_body (!kl_V4050) = do let pat_cond_0 kl_V4050 kl_V4050h kl_V4050t kl_V4050th = do kl_V4050h `pseq` (kl_V4050th `pseq` kl_shen_syntax kl_V4050h (Types.Atom (Types.UnboundSym "Stream")) kl_V4050th)
-                                     pat_cond_1 = do do let !aw_2 = Types.Atom (Types.UnboundSym "shen.f_error")
-                                                        applyWrapper aw_2 [ApplC (wrapNamed "shen.cc_body" kl_shen_cc_body)]
-                                  in case kl_V4050 of
-                                         !(kl_V4050@(Cons (!kl_V4050h)
-                                                          (!(kl_V4050t@(Cons (!kl_V4050th)
-                                                                             (Atom (Nil))))))) -> pat_cond_0 kl_V4050 kl_V4050h kl_V4050t kl_V4050th
-                                         _ -> pat_cond_1
-
-kl_shen_syntax :: Types.KLValue ->
-                  Types.KLValue ->
-                  Types.KLValue -> Types.KLContext Types.Env Types.KLValue
-kl_shen_syntax (!kl_V4054) (!kl_V4055) (!kl_V4056) = do !kl_if_0 <- let pat_cond_1 = do let pat_cond_2 kl_V4056 kl_V4056t kl_V4056th kl_V4056tt kl_V4056tth = do return (Atom (B True))
-                                                                                            pat_cond_3 = do do return (Atom (B False))
-                                                                                         in case kl_V4056 of
-                                                                                                !(kl_V4056@(Cons (Atom (UnboundSym "where"))
-                                                                                                                 (!(kl_V4056t@(Cons (!kl_V4056th)
-                                                                                                                                    (!(kl_V4056tt@(Cons (!kl_V4056tth)
-                                                                                                                                                        (Atom (Nil)))))))))) -> pat_cond_2 kl_V4056 kl_V4056t kl_V4056th kl_V4056tt kl_V4056tth
-                                                                                                !(kl_V4056@(Cons (ApplC (PL "where"
-                                                                                                                            _))
-                                                                                                                 (!(kl_V4056t@(Cons (!kl_V4056th)
-                                                                                                                                    (!(kl_V4056tt@(Cons (!kl_V4056tth)
-                                                                                                                                                        (Atom (Nil)))))))))) -> pat_cond_2 kl_V4056 kl_V4056t kl_V4056th kl_V4056tt kl_V4056tth
-                                                                                                !(kl_V4056@(Cons (ApplC (Func "where"
-                                                                                                                              _))
-                                                                                                                 (!(kl_V4056t@(Cons (!kl_V4056th)
-                                                                                                                                    (!(kl_V4056tt@(Cons (!kl_V4056tth)
-                                                                                                                                                        (Atom (Nil)))))))))) -> pat_cond_2 kl_V4056 kl_V4056t kl_V4056th kl_V4056tt kl_V4056tth
-                                                                                                _ -> pat_cond_3
-                                                                        pat_cond_4 = do do return (Atom (B False))
-                                                                     in case kl_V4054 of
-                                                                            kl_V4054@(Atom (Nil)) -> pat_cond_1
-                                                                            _ -> pat_cond_4
-                                                        case kl_if_0 of
-                                                            Atom (B (True)) -> do !appl_5 <- kl_V4056 `pseq` tl kl_V4056
-                                                                                  !appl_6 <- appl_5 `pseq` hd appl_5
-                                                                                  !appl_7 <- appl_6 `pseq` kl_shen_semantics appl_6
-                                                                                  !appl_8 <- kl_V4055 `pseq` klCons kl_V4055 (Types.Atom Types.Nil)
-                                                                                  !appl_9 <- appl_8 `pseq` klCons (ApplC (wrapNamed "hd" hd)) appl_8
-                                                                                  !appl_10 <- kl_V4056 `pseq` tl kl_V4056
-                                                                                  !appl_11 <- appl_10 `pseq` tl appl_10
-                                                                                  !appl_12 <- appl_11 `pseq` hd appl_11
-                                                                                  !appl_13 <- appl_12 `pseq` kl_shen_semantics appl_12
-                                                                                  !appl_14 <- appl_13 `pseq` klCons appl_13 (Types.Atom Types.Nil)
-                                                                                  !appl_15 <- appl_9 `pseq` (appl_14 `pseq` klCons appl_9 appl_14)
-                                                                                  !appl_16 <- appl_15 `pseq` klCons (ApplC (wrapNamed "shen.pair" kl_shen_pair)) appl_15
-                                                                                  !appl_17 <- klCons (ApplC (PL "fail" kl_fail)) (Types.Atom Types.Nil)
-                                                                                  !appl_18 <- appl_17 `pseq` klCons appl_17 (Types.Atom Types.Nil)
-                                                                                  !appl_19 <- appl_16 `pseq` (appl_18 `pseq` klCons appl_16 appl_18)
-                                                                                  !appl_20 <- appl_7 `pseq` (appl_19 `pseq` klCons appl_7 appl_19)
-                                                                                  appl_20 `pseq` klCons (Types.Atom (Types.UnboundSym "if")) appl_20
-                                                            Atom (B (False)) -> do let pat_cond_21 = do !appl_22 <- kl_V4055 `pseq` klCons kl_V4055 (Types.Atom Types.Nil)
-                                                                                                        !appl_23 <- appl_22 `pseq` klCons (ApplC (wrapNamed "hd" hd)) appl_22
-                                                                                                        !appl_24 <- kl_V4056 `pseq` kl_shen_semantics kl_V4056
-                                                                                                        !appl_25 <- appl_24 `pseq` klCons appl_24 (Types.Atom Types.Nil)
-                                                                                                        !appl_26 <- appl_23 `pseq` (appl_25 `pseq` klCons appl_23 appl_25)
-                                                                                                        appl_26 `pseq` klCons (ApplC (wrapNamed "shen.pair" kl_shen_pair)) appl_26
-                                                                                       pat_cond_27 kl_V4054 kl_V4054h kl_V4054t = do !kl_if_28 <- kl_V4054h `pseq` kl_shen_grammar_symbolP kl_V4054h
-                                                                                                                                     case kl_if_28 of
-                                                                                                                                         Atom (B (True)) -> do kl_V4054 `pseq` (kl_V4055 `pseq` (kl_V4056 `pseq` kl_shen_recursive_descent kl_V4054 kl_V4055 kl_V4056))
-                                                                                                                                         Atom (B (False)) -> do do !kl_if_29 <- kl_V4054h `pseq` kl_variableP kl_V4054h
-                                                                                                                                                                   case kl_if_29 of
-                                                                                                                                                                       Atom (B (True)) -> do kl_V4054 `pseq` (kl_V4055 `pseq` (kl_V4056 `pseq` kl_shen_variable_match kl_V4054 kl_V4055 kl_V4056))
-                                                                                                                                                                       Atom (B (False)) -> do do !kl_if_30 <- kl_V4054h `pseq` kl_shen_jump_streamP kl_V4054h
-                                                                                                                                                                                                 case kl_if_30 of
-                                                                                                                                                                                                     Atom (B (True)) -> do kl_V4054 `pseq` (kl_V4055 `pseq` (kl_V4056 `pseq` kl_shen_jump_stream kl_V4054 kl_V4055 kl_V4056))
-                                                                                                                                                                                                     Atom (B (False)) -> do do !kl_if_31 <- kl_V4054h `pseq` kl_shen_terminalP kl_V4054h
-                                                                                                                                                                                                                               case kl_if_31 of
-                                                                                                                                                                                                                                   Atom (B (True)) -> do kl_V4054 `pseq` (kl_V4055 `pseq` (kl_V4056 `pseq` kl_shen_check_stream kl_V4054 kl_V4055 kl_V4056))
-                                                                                                                                                                                                                                   Atom (B (False)) -> do do let pat_cond_32 kl_V4054h kl_V4054hh kl_V4054ht = do !appl_33 <- kl_V4054h `pseq` kl_shen_decons kl_V4054h
-                                                                                                                                                                                                                                                                                                                  appl_33 `pseq` (kl_V4054t `pseq` (kl_V4055 `pseq` (kl_V4056 `pseq` kl_shen_list_stream appl_33 kl_V4054t kl_V4055 kl_V4056)))
-                                                                                                                                                                                                                                                                 pat_cond_34 = do do let !aw_35 = Types.Atom (Types.UnboundSym "shen.app")
-                                                                                                                                                                                                                                                                                     !appl_36 <- kl_V4054h `pseq` applyWrapper aw_35 [kl_V4054h,
-                                                                                                                                                                                                                                                                                                                                      Types.Atom (Types.Str " is not legal syntax\n"),
-                                                                                                                                                                                                                                                                                                                                      Types.Atom (Types.UnboundSym "shen.a")]
-                                                                                                                                                                                                                                                                                     appl_36 `pseq` simpleError appl_36
-                                                                                                                                                                                                                                                              in case kl_V4054h of
-                                                                                                                                                                                                                                                                     !(kl_V4054h@(Cons (!kl_V4054hh)
-                                                                                                                                                                                                                                                                                       (!kl_V4054ht))) -> pat_cond_32 kl_V4054h kl_V4054hh kl_V4054ht
-                                                                                                                                                                                                                                                                     _ -> pat_cond_34
-                                                                                                                                                                                                                                   _ -> throwError "if: expected boolean"
-                                                                                                                                                                                                     _ -> throwError "if: expected boolean"
-                                                                                                                                                                       _ -> throwError "if: expected boolean"
-                                                                                                                                         _ -> throwError "if: expected boolean"
-                                                                                       pat_cond_37 = do do let !aw_38 = Types.Atom (Types.UnboundSym "shen.f_error")
-                                                                                                           applyWrapper aw_38 [ApplC (wrapNamed "shen.syntax" kl_shen_syntax)]
-                                                                                    in case kl_V4054 of
-                                                                                           kl_V4054@(Atom (Nil)) -> pat_cond_21
-                                                                                           !(kl_V4054@(Cons (!kl_V4054h)
-                                                                                                            (!kl_V4054t))) -> pat_cond_27 kl_V4054 kl_V4054h kl_V4054t
-                                                                                           _ -> pat_cond_37
-                                                            _ -> throwError "if: expected boolean"
-
-kl_shen_list_stream :: Types.KLValue ->
-                       Types.KLValue ->
-                       Types.KLValue ->
-                       Types.KLValue -> Types.KLContext Types.Env Types.KLValue
-kl_shen_list_stream (!kl_V4061) (!kl_V4062) (!kl_V4063) (!kl_V4064) = do let !appl_0 = ApplC (Func "lambda" (Context (\(!kl_Test) -> do let !appl_1 = ApplC (Func "lambda" (Context (\(!kl_Placeholder) -> do let !appl_2 = ApplC (Func "lambda" (Context (\(!kl_RunOn) -> do let !appl_3 = ApplC (Func "lambda" (Context (\(!kl_Action) -> do !appl_4 <- klCons (ApplC (PL "fail" kl_fail)) (Types.Atom Types.Nil)
-                                                                                                                                                                                                                                                                                                                                               !appl_5 <- appl_4 `pseq` klCons appl_4 (Types.Atom Types.Nil)
-                                                                                                                                                                                                                                                                                                                                               !appl_6 <- kl_Action `pseq` (appl_5 `pseq` klCons kl_Action appl_5)
-                                                                                                                                                                                                                                                                                                                                               !appl_7 <- kl_Test `pseq` (appl_6 `pseq` klCons kl_Test appl_6)
-                                                                                                                                                                                                                                                                                                                                               appl_7 `pseq` klCons (Types.Atom (Types.UnboundSym "if")) appl_7)))
-                                                                                                                                                                                                                                                                              !appl_8 <- kl_V4063 `pseq` klCons kl_V4063 (Types.Atom Types.Nil)
-                                                                                                                                                                                                                                                                              !appl_9 <- appl_8 `pseq` klCons (ApplC (wrapNamed "hd" hd)) appl_8
-                                                                                                                                                                                                                                                                              !appl_10 <- appl_9 `pseq` klCons appl_9 (Types.Atom Types.Nil)
-                                                                                                                                                                                                                                                                              !appl_11 <- appl_10 `pseq` klCons (ApplC (wrapNamed "hd" hd)) appl_10
-                                                                                                                                                                                                                                                                              !appl_12 <- kl_V4063 `pseq` klCons kl_V4063 (Types.Atom Types.Nil)
-                                                                                                                                                                                                                                                                              !appl_13 <- appl_12 `pseq` klCons (ApplC (wrapNamed "tl" tl)) appl_12
-                                                                                                                                                                                                                                                                              !appl_14 <- appl_13 `pseq` klCons appl_13 (Types.Atom Types.Nil)
-                                                                                                                                                                                                                                                                              !appl_15 <- appl_14 `pseq` klCons (ApplC (wrapNamed "hd" hd)) appl_14
-                                                                                                                                                                                                                                                                              !appl_16 <- appl_15 `pseq` klCons appl_15 (Types.Atom Types.Nil)
-                                                                                                                                                                                                                                                                              !appl_17 <- appl_11 `pseq` (appl_16 `pseq` klCons appl_11 appl_16)
-                                                                                                                                                                                                                                                                              !appl_18 <- appl_17 `pseq` klCons (ApplC (wrapNamed "shen.pair" kl_shen_pair)) appl_17
-                                                                                                                                                                                                                                                                              !appl_19 <- kl_V4061 `pseq` (appl_18 `pseq` (kl_Placeholder `pseq` kl_shen_syntax kl_V4061 appl_18 kl_Placeholder))
-                                                                                                                                                                                                                                                                              !appl_20 <- kl_RunOn `pseq` (kl_Placeholder `pseq` (appl_19 `pseq` kl_shen_insert_runon kl_RunOn kl_Placeholder appl_19))
-                                                                                                                                                                                                                                                                              appl_20 `pseq` applyWrapper appl_3 [appl_20])))
-                                                                                                                                                                                                              !appl_21 <- kl_V4063 `pseq` klCons kl_V4063 (Types.Atom Types.Nil)
-                                                                                                                                                                                                              !appl_22 <- appl_21 `pseq` klCons (ApplC (wrapNamed "hd" hd)) appl_21
-                                                                                                                                                                                                              !appl_23 <- appl_22 `pseq` klCons appl_22 (Types.Atom Types.Nil)
-                                                                                                                                                                                                              !appl_24 <- appl_23 `pseq` klCons (ApplC (wrapNamed "tl" tl)) appl_23
-                                                                                                                                                                                                              !appl_25 <- kl_V4063 `pseq` klCons kl_V4063 (Types.Atom Types.Nil)
-                                                                                                                                                                                                              !appl_26 <- appl_25 `pseq` klCons (ApplC (wrapNamed "tl" tl)) appl_25
-                                                                                                                                                                                                              !appl_27 <- appl_26 `pseq` klCons appl_26 (Types.Atom Types.Nil)
-                                                                                                                                                                                                              !appl_28 <- appl_27 `pseq` klCons (ApplC (wrapNamed "hd" hd)) appl_27
-                                                                                                                                                                                                              !appl_29 <- appl_28 `pseq` klCons appl_28 (Types.Atom Types.Nil)
-                                                                                                                                                                                                              !appl_30 <- appl_24 `pseq` (appl_29 `pseq` klCons appl_24 appl_29)
-                                                                                                                                                                                                              !appl_31 <- appl_30 `pseq` klCons (ApplC (wrapNamed "shen.pair" kl_shen_pair)) appl_30
-                                                                                                                                                                                                              !appl_32 <- kl_V4062 `pseq` (appl_31 `pseq` (kl_V4064 `pseq` kl_shen_syntax kl_V4062 appl_31 kl_V4064))
-                                                                                                                                                                                                              appl_32 `pseq` applyWrapper appl_2 [appl_32])))
-                                                                                                                                        !appl_33 <- kl_gensym (Types.Atom (Types.UnboundSym "shen.place"))
-                                                                                                                                        appl_33 `pseq` applyWrapper appl_1 [appl_33])))
-                                                                         !appl_34 <- kl_V4063 `pseq` klCons kl_V4063 (Types.Atom Types.Nil)
-                                                                         !appl_35 <- appl_34 `pseq` klCons (ApplC (wrapNamed "hd" hd)) appl_34
-                                                                         !appl_36 <- appl_35 `pseq` klCons appl_35 (Types.Atom Types.Nil)
-                                                                         !appl_37 <- appl_36 `pseq` klCons (ApplC (wrapNamed "cons?" consP)) appl_36
-                                                                         !appl_38 <- kl_V4063 `pseq` klCons kl_V4063 (Types.Atom Types.Nil)
-                                                                         !appl_39 <- appl_38 `pseq` klCons (ApplC (wrapNamed "hd" hd)) appl_38
-                                                                         !appl_40 <- appl_39 `pseq` klCons appl_39 (Types.Atom Types.Nil)
-                                                                         !appl_41 <- appl_40 `pseq` klCons (ApplC (wrapNamed "hd" hd)) appl_40
-                                                                         !appl_42 <- appl_41 `pseq` klCons appl_41 (Types.Atom Types.Nil)
-                                                                         !appl_43 <- appl_42 `pseq` klCons (ApplC (wrapNamed "cons?" consP)) appl_42
-                                                                         !appl_44 <- appl_43 `pseq` klCons appl_43 (Types.Atom Types.Nil)
-                                                                         !appl_45 <- appl_37 `pseq` (appl_44 `pseq` klCons appl_37 appl_44)
-                                                                         !appl_46 <- appl_45 `pseq` klCons (Types.Atom (Types.UnboundSym "and")) appl_45
-                                                                         appl_46 `pseq` applyWrapper appl_0 [appl_46]
-
-kl_shen_decons :: Types.KLValue ->
-                  Types.KLContext Types.Env Types.KLValue
-kl_shen_decons (!kl_V4066) = do let pat_cond_0 kl_V4066 kl_V4066t kl_V4066th kl_V4066tt = do kl_V4066th `pseq` klCons kl_V4066th (Types.Atom Types.Nil)
-                                    pat_cond_1 kl_V4066 kl_V4066t kl_V4066th kl_V4066tt kl_V4066tth = do !appl_2 <- kl_V4066tth `pseq` kl_shen_decons kl_V4066tth
-                                                                                                         kl_V4066th `pseq` (appl_2 `pseq` klCons kl_V4066th appl_2)
-                                    pat_cond_3 = do do return kl_V4066
-                                 in case kl_V4066 of
-                                        !(kl_V4066@(Cons (Atom (UnboundSym "cons"))
-                                                         (!(kl_V4066t@(Cons (!kl_V4066th)
-                                                                            (!(kl_V4066tt@(Cons (Atom (Nil))
-                                                                                                (Atom (Nil)))))))))) -> pat_cond_0 kl_V4066 kl_V4066t kl_V4066th kl_V4066tt
-                                        !(kl_V4066@(Cons (ApplC (PL "cons" _))
-                                                         (!(kl_V4066t@(Cons (!kl_V4066th)
-                                                                            (!(kl_V4066tt@(Cons (Atom (Nil))
-                                                                                                (Atom (Nil)))))))))) -> pat_cond_0 kl_V4066 kl_V4066t kl_V4066th kl_V4066tt
-                                        !(kl_V4066@(Cons (ApplC (Func "cons" _))
-                                                         (!(kl_V4066t@(Cons (!kl_V4066th)
-                                                                            (!(kl_V4066tt@(Cons (Atom (Nil))
-                                                                                                (Atom (Nil)))))))))) -> pat_cond_0 kl_V4066 kl_V4066t kl_V4066th kl_V4066tt
-                                        !(kl_V4066@(Cons (Atom (UnboundSym "cons"))
-                                                         (!(kl_V4066t@(Cons (!kl_V4066th)
-                                                                            (!(kl_V4066tt@(Cons (!kl_V4066tth)
-                                                                                                (Atom (Nil)))))))))) -> pat_cond_1 kl_V4066 kl_V4066t kl_V4066th kl_V4066tt kl_V4066tth
-                                        !(kl_V4066@(Cons (ApplC (PL "cons" _))
-                                                         (!(kl_V4066t@(Cons (!kl_V4066th)
-                                                                            (!(kl_V4066tt@(Cons (!kl_V4066tth)
-                                                                                                (Atom (Nil)))))))))) -> pat_cond_1 kl_V4066 kl_V4066t kl_V4066th kl_V4066tt kl_V4066tth
-                                        !(kl_V4066@(Cons (ApplC (Func "cons" _))
-                                                         (!(kl_V4066t@(Cons (!kl_V4066th)
-                                                                            (!(kl_V4066tt@(Cons (!kl_V4066tth)
-                                                                                                (Atom (Nil)))))))))) -> pat_cond_1 kl_V4066 kl_V4066t kl_V4066th kl_V4066tt kl_V4066tth
-                                        _ -> pat_cond_3
-
-kl_shen_insert_runon :: Types.KLValue ->
-                        Types.KLValue ->
-                        Types.KLValue -> Types.KLContext Types.Env Types.KLValue
-kl_shen_insert_runon (!kl_V4081) (!kl_V4082) (!kl_V4083) = do let pat_cond_0 kl_V4083 kl_V4083t kl_V4083th kl_V4083tt kl_V4083tth = do return kl_V4081
-                                                                  pat_cond_1 kl_V4083 kl_V4083h kl_V4083t = do let !appl_2 = ApplC (Func "lambda" (Context (\(!kl_Z) -> do kl_V4081 `pseq` (kl_V4082 `pseq` (kl_Z `pseq` kl_shen_insert_runon kl_V4081 kl_V4082 kl_Z)))))
-                                                                                                               appl_2 `pseq` (kl_V4083 `pseq` kl_map appl_2 kl_V4083)
-                                                                  pat_cond_3 = do do return kl_V4083
-                                                               in case kl_V4083 of
-                                                                      !(kl_V4083@(Cons (Atom (UnboundSym "shen.pair"))
-                                                                                       (!(kl_V4083t@(Cons (!kl_V4083th)
-                                                                                                          (!(kl_V4083tt@(Cons (!kl_V4083tth)
-                                                                                                                              (Atom (Nil)))))))))) | eqCore kl_V4083tth kl_V4082 -> pat_cond_0 kl_V4083 kl_V4083t kl_V4083th kl_V4083tt kl_V4083tth
-                                                                      !(kl_V4083@(Cons (ApplC (PL "shen.pair"
-                                                                                                  _))
-                                                                                       (!(kl_V4083t@(Cons (!kl_V4083th)
-                                                                                                          (!(kl_V4083tt@(Cons (!kl_V4083tth)
-                                                                                                                              (Atom (Nil)))))))))) | eqCore kl_V4083tth kl_V4082 -> pat_cond_0 kl_V4083 kl_V4083t kl_V4083th kl_V4083tt kl_V4083tth
-                                                                      !(kl_V4083@(Cons (ApplC (Func "shen.pair"
-                                                                                                    _))
-                                                                                       (!(kl_V4083t@(Cons (!kl_V4083th)
-                                                                                                          (!(kl_V4083tt@(Cons (!kl_V4083tth)
-                                                                                                                              (Atom (Nil)))))))))) | eqCore kl_V4083tth kl_V4082 -> pat_cond_0 kl_V4083 kl_V4083t kl_V4083th kl_V4083tt kl_V4083tth
-                                                                      !(kl_V4083@(Cons (!kl_V4083h)
-                                                                                       (!kl_V4083t))) -> pat_cond_1 kl_V4083 kl_V4083h kl_V4083t
-                                                                      _ -> pat_cond_3
-
-kl_shen_strip_pathname :: Types.KLValue ->
-                          Types.KLContext Types.Env Types.KLValue
-kl_shen_strip_pathname (!kl_V4089) = do !appl_0 <- kl_V4089 `pseq` kl_elementP (Types.Atom (Types.Str ".")) kl_V4089
-                                        !kl_if_1 <- appl_0 `pseq` kl_not appl_0
-                                        case kl_if_1 of
-                                            Atom (B (True)) -> do return kl_V4089
-                                            Atom (B (False)) -> do let pat_cond_2 kl_V4089 kl_V4089h kl_V4089t = do kl_V4089t `pseq` kl_shen_strip_pathname kl_V4089t
-                                                                       pat_cond_3 = do do let !aw_4 = Types.Atom (Types.UnboundSym "shen.f_error")
-                                                                                          applyWrapper aw_4 [ApplC (wrapNamed "shen.strip-pathname" kl_shen_strip_pathname)]
-                                                                    in case kl_V4089 of
-                                                                           !(kl_V4089@(Cons (!kl_V4089h)
-                                                                                            (!kl_V4089t))) -> pat_cond_2 kl_V4089 kl_V4089h kl_V4089t
-                                                                           _ -> pat_cond_3
-                                            _ -> throwError "if: expected boolean"
-
-kl_shen_recursive_descent :: Types.KLValue ->
-                             Types.KLValue ->
-                             Types.KLValue -> Types.KLContext Types.Env Types.KLValue
-kl_shen_recursive_descent (!kl_V4093) (!kl_V4094) (!kl_V4095) = do let pat_cond_0 kl_V4093 kl_V4093h kl_V4093t = do let !appl_1 = ApplC (Func "lambda" (Context (\(!kl_Test) -> do let !appl_2 = ApplC (Func "lambda" (Context (\(!kl_Action) -> do let !appl_3 = ApplC (Func "lambda" (Context (\(!kl_Else) -> do !appl_4 <- kl_V4093h `pseq` kl_concat (Types.Atom (Types.UnboundSym "Parse_")) kl_V4093h
-                                                                                                                                                                                                                                                                                                                   !appl_5 <- klCons (ApplC (PL "fail" kl_fail)) (Types.Atom Types.Nil)
-                                                                                                                                                                                                                                                                                                                   !appl_6 <- kl_V4093h `pseq` kl_concat (Types.Atom (Types.UnboundSym "Parse_")) kl_V4093h
-                                                                                                                                                                                                                                                                                                                   !appl_7 <- appl_6 `pseq` klCons appl_6 (Types.Atom Types.Nil)
-                                                                                                                                                                                                                                                                                                                   !appl_8 <- appl_5 `pseq` (appl_7 `pseq` klCons appl_5 appl_7)
-                                                                                                                                                                                                                                                                                                                   !appl_9 <- appl_8 `pseq` klCons (ApplC (wrapNamed "=" eq)) appl_8
-                                                                                                                                                                                                                                                                                                                   !appl_10 <- appl_9 `pseq` klCons appl_9 (Types.Atom Types.Nil)
-                                                                                                                                                                                                                                                                                                                   !appl_11 <- appl_10 `pseq` klCons (ApplC (wrapNamed "not" kl_not)) appl_10
-                                                                                                                                                                                                                                                                                                                   !appl_12 <- kl_Else `pseq` klCons kl_Else (Types.Atom Types.Nil)
-                                                                                                                                                                                                                                                                                                                   !appl_13 <- kl_Action `pseq` (appl_12 `pseq` klCons kl_Action appl_12)
-                                                                                                                                                                                                                                                                                                                   !appl_14 <- appl_11 `pseq` (appl_13 `pseq` klCons appl_11 appl_13)
-                                                                                                                                                                                                                                                                                                                   !appl_15 <- appl_14 `pseq` klCons (Types.Atom (Types.UnboundSym "if")) appl_14
-                                                                                                                                                                                                                                                                                                                   !appl_16 <- appl_15 `pseq` klCons appl_15 (Types.Atom Types.Nil)
-                                                                                                                                                                                                                                                                                                                   !appl_17 <- kl_Test `pseq` (appl_16 `pseq` klCons kl_Test appl_16)
-                                                                                                                                                                                                                                                                                                                   !appl_18 <- appl_4 `pseq` (appl_17 `pseq` klCons appl_4 appl_17)
-                                                                                                                                                                                                                                                                                                                   appl_18 `pseq` klCons (Types.Atom (Types.UnboundSym "let")) appl_18)))
-                                                                                                                                                                                                                                                    !appl_19 <- klCons (ApplC (PL "fail" kl_fail)) (Types.Atom Types.Nil)
-                                                                                                                                                                                                                                                    appl_19 `pseq` applyWrapper appl_3 [appl_19])))
-                                                                                                                                                                                   !appl_20 <- kl_V4093h `pseq` kl_concat (Types.Atom (Types.UnboundSym "Parse_")) kl_V4093h
-                                                                                                                                                                                   !appl_21 <- kl_V4093t `pseq` (appl_20 `pseq` (kl_V4095 `pseq` kl_shen_syntax kl_V4093t appl_20 kl_V4095))
-                                                                                                                                                                                   appl_21 `pseq` applyWrapper appl_2 [appl_21])))
-                                                                                                                    !appl_22 <- kl_V4094 `pseq` klCons kl_V4094 (Types.Atom Types.Nil)
-                                                                                                                    !appl_23 <- kl_V4093h `pseq` (appl_22 `pseq` klCons kl_V4093h appl_22)
-                                                                                                                    appl_23 `pseq` applyWrapper appl_1 [appl_23]
-                                                                       pat_cond_24 = do do let !aw_25 = Types.Atom (Types.UnboundSym "shen.f_error")
-                                                                                           applyWrapper aw_25 [ApplC (wrapNamed "shen.recursive_descent" kl_shen_recursive_descent)]
-                                                                    in case kl_V4093 of
-                                                                           !(kl_V4093@(Cons (!kl_V4093h)
-                                                                                            (!kl_V4093t))) -> pat_cond_0 kl_V4093 kl_V4093h kl_V4093t
-                                                                           _ -> pat_cond_24
-
-kl_shen_variable_match :: Types.KLValue ->
-                          Types.KLValue ->
-                          Types.KLValue -> Types.KLContext Types.Env Types.KLValue
-kl_shen_variable_match (!kl_V4099) (!kl_V4100) (!kl_V4101) = do let pat_cond_0 kl_V4099 kl_V4099h kl_V4099t = do let !appl_1 = ApplC (Func "lambda" (Context (\(!kl_Test) -> do let !appl_2 = ApplC (Func "lambda" (Context (\(!kl_Action) -> do let !appl_3 = ApplC (Func "lambda" (Context (\(!kl_Else) -> do !appl_4 <- kl_Else `pseq` klCons kl_Else (Types.Atom Types.Nil)
-                                                                                                                                                                                                                                                                                                                !appl_5 <- kl_Action `pseq` (appl_4 `pseq` klCons kl_Action appl_4)
-                                                                                                                                                                                                                                                                                                                !appl_6 <- kl_Test `pseq` (appl_5 `pseq` klCons kl_Test appl_5)
-                                                                                                                                                                                                                                                                                                                appl_6 `pseq` klCons (Types.Atom (Types.UnboundSym "if")) appl_6)))
-                                                                                                                                                                                                                                                 !appl_7 <- klCons (ApplC (PL "fail" kl_fail)) (Types.Atom Types.Nil)
-                                                                                                                                                                                                                                                 appl_7 `pseq` applyWrapper appl_3 [appl_7])))
-                                                                                                                                                                                !appl_8 <- kl_V4099h `pseq` kl_concat (Types.Atom (Types.UnboundSym "Parse_")) kl_V4099h
-                                                                                                                                                                                !appl_9 <- kl_V4100 `pseq` klCons kl_V4100 (Types.Atom Types.Nil)
-                                                                                                                                                                                !appl_10 <- appl_9 `pseq` klCons (ApplC (wrapNamed "hd" hd)) appl_9
-                                                                                                                                                                                !appl_11 <- appl_10 `pseq` klCons appl_10 (Types.Atom Types.Nil)
-                                                                                                                                                                                !appl_12 <- appl_11 `pseq` klCons (ApplC (wrapNamed "hd" hd)) appl_11
-                                                                                                                                                                                !appl_13 <- kl_V4100 `pseq` klCons kl_V4100 (Types.Atom Types.Nil)
-                                                                                                                                                                                !appl_14 <- appl_13 `pseq` klCons (ApplC (wrapNamed "hd" hd)) appl_13
-                                                                                                                                                                                !appl_15 <- appl_14 `pseq` klCons appl_14 (Types.Atom Types.Nil)
-                                                                                                                                                                                !appl_16 <- appl_15 `pseq` klCons (ApplC (wrapNamed "tl" tl)) appl_15
-                                                                                                                                                                                !appl_17 <- kl_V4100 `pseq` klCons kl_V4100 (Types.Atom Types.Nil)
-                                                                                                                                                                                !appl_18 <- appl_17 `pseq` klCons (ApplC (wrapNamed "shen.hdtl" kl_shen_hdtl)) appl_17
-                                                                                                                                                                                !appl_19 <- appl_18 `pseq` klCons appl_18 (Types.Atom Types.Nil)
-                                                                                                                                                                                !appl_20 <- appl_16 `pseq` (appl_19 `pseq` klCons appl_16 appl_19)
-                                                                                                                                                                                !appl_21 <- appl_20 `pseq` klCons (ApplC (wrapNamed "shen.pair" kl_shen_pair)) appl_20
-                                                                                                                                                                                !appl_22 <- kl_V4099t `pseq` (appl_21 `pseq` (kl_V4101 `pseq` kl_shen_syntax kl_V4099t appl_21 kl_V4101))
-                                                                                                                                                                                !appl_23 <- appl_22 `pseq` klCons appl_22 (Types.Atom Types.Nil)
-                                                                                                                                                                                !appl_24 <- appl_12 `pseq` (appl_23 `pseq` klCons appl_12 appl_23)
-                                                                                                                                                                                !appl_25 <- appl_8 `pseq` (appl_24 `pseq` klCons appl_8 appl_24)
-                                                                                                                                                                                !appl_26 <- appl_25 `pseq` klCons (Types.Atom (Types.UnboundSym "let")) appl_25
-                                                                                                                                                                                appl_26 `pseq` applyWrapper appl_2 [appl_26])))
-                                                                                                                 !appl_27 <- kl_V4100 `pseq` klCons kl_V4100 (Types.Atom Types.Nil)
-                                                                                                                 !appl_28 <- appl_27 `pseq` klCons (ApplC (wrapNamed "hd" hd)) appl_27
-                                                                                                                 !appl_29 <- appl_28 `pseq` klCons appl_28 (Types.Atom Types.Nil)
-                                                                                                                 !appl_30 <- appl_29 `pseq` klCons (ApplC (wrapNamed "cons?" consP)) appl_29
-                                                                                                                 appl_30 `pseq` applyWrapper appl_1 [appl_30]
-                                                                    pat_cond_31 = do do let !aw_32 = Types.Atom (Types.UnboundSym "shen.f_error")
-                                                                                        applyWrapper aw_32 [ApplC (wrapNamed "shen.variable-match" kl_shen_variable_match)]
-                                                                 in case kl_V4099 of
-                                                                        !(kl_V4099@(Cons (!kl_V4099h)
-                                                                                         (!kl_V4099t))) -> pat_cond_0 kl_V4099 kl_V4099h kl_V4099t
-                                                                        _ -> pat_cond_31
-
-kl_shen_terminalP :: Types.KLValue ->
-                     Types.KLContext Types.Env Types.KLValue
-kl_shen_terminalP (!kl_V4111) = do let pat_cond_0 kl_V4111 kl_V4111h kl_V4111t = do return (Atom (B False))
-                                       pat_cond_1 = do !kl_if_2 <- kl_V4111 `pseq` kl_variableP kl_V4111
-                                                       case kl_if_2 of
-                                                           Atom (B (True)) -> do return (Atom (B False))
-                                                           Atom (B (False)) -> do do return (Atom (B True))
-                                                           _ -> throwError "if: expected boolean"
-                                    in case kl_V4111 of
-                                           !(kl_V4111@(Cons (!kl_V4111h)
-                                                            (!kl_V4111t))) -> pat_cond_0 kl_V4111 kl_V4111h kl_V4111t
-                                           _ -> pat_cond_1
-
-kl_shen_jump_streamP :: Types.KLValue ->
-                        Types.KLContext Types.Env Types.KLValue
-kl_shen_jump_streamP (!kl_V4117) = do let pat_cond_0 = do return (Atom (B True))
-                                          pat_cond_1 = do do return (Atom (B False))
-                                       in case kl_V4117 of
-                                              kl_V4117@(Atom (UnboundSym "_")) -> pat_cond_0
-                                              kl_V4117@(ApplC (PL "_" _)) -> pat_cond_0
-                                              kl_V4117@(ApplC (Func "_" _)) -> pat_cond_0
-                                              _ -> pat_cond_1
-
-kl_shen_check_stream :: Types.KLValue ->
-                        Types.KLValue ->
-                        Types.KLValue -> Types.KLContext Types.Env Types.KLValue
-kl_shen_check_stream (!kl_V4121) (!kl_V4122) (!kl_V4123) = do let pat_cond_0 kl_V4121 kl_V4121h kl_V4121t = do let !appl_1 = ApplC (Func "lambda" (Context (\(!kl_Test) -> do let !appl_2 = ApplC (Func "lambda" (Context (\(!kl_Action) -> do let !appl_3 = ApplC (Func "lambda" (Context (\(!kl_Else) -> do !appl_4 <- kl_Else `pseq` klCons kl_Else (Types.Atom Types.Nil)
-                                                                                                                                                                                                                                                                                                              !appl_5 <- kl_Action `pseq` (appl_4 `pseq` klCons kl_Action appl_4)
-                                                                                                                                                                                                                                                                                                              !appl_6 <- kl_Test `pseq` (appl_5 `pseq` klCons kl_Test appl_5)
-                                                                                                                                                                                                                                                                                                              appl_6 `pseq` klCons (Types.Atom (Types.UnboundSym "if")) appl_6)))
-                                                                                                                                                                                                                                               !appl_7 <- klCons (ApplC (PL "fail" kl_fail)) (Types.Atom Types.Nil)
-                                                                                                                                                                                                                                               appl_7 `pseq` applyWrapper appl_3 [appl_7])))
-                                                                                                                                                                              !appl_8 <- kl_V4122 `pseq` klCons kl_V4122 (Types.Atom Types.Nil)
-                                                                                                                                                                              !appl_9 <- appl_8 `pseq` klCons (ApplC (wrapNamed "hd" hd)) appl_8
-                                                                                                                                                                              !appl_10 <- appl_9 `pseq` klCons appl_9 (Types.Atom Types.Nil)
-                                                                                                                                                                              !appl_11 <- appl_10 `pseq` klCons (ApplC (wrapNamed "tl" tl)) appl_10
-                                                                                                                                                                              !appl_12 <- kl_V4122 `pseq` klCons kl_V4122 (Types.Atom Types.Nil)
-                                                                                                                                                                              !appl_13 <- appl_12 `pseq` klCons (ApplC (wrapNamed "shen.hdtl" kl_shen_hdtl)) appl_12
-                                                                                                                                                                              !appl_14 <- appl_13 `pseq` klCons appl_13 (Types.Atom Types.Nil)
-                                                                                                                                                                              !appl_15 <- appl_11 `pseq` (appl_14 `pseq` klCons appl_11 appl_14)
-                                                                                                                                                                              !appl_16 <- appl_15 `pseq` klCons (ApplC (wrapNamed "shen.pair" kl_shen_pair)) appl_15
-                                                                                                                                                                              !appl_17 <- kl_V4121t `pseq` (appl_16 `pseq` (kl_V4123 `pseq` kl_shen_syntax kl_V4121t appl_16 kl_V4123))
-                                                                                                                                                                              appl_17 `pseq` applyWrapper appl_2 [appl_17])))
-                                                                                                               !appl_18 <- kl_V4122 `pseq` klCons kl_V4122 (Types.Atom Types.Nil)
-                                                                                                               !appl_19 <- appl_18 `pseq` klCons (ApplC (wrapNamed "hd" hd)) appl_18
-                                                                                                               !appl_20 <- appl_19 `pseq` klCons appl_19 (Types.Atom Types.Nil)
-                                                                                                               !appl_21 <- appl_20 `pseq` klCons (ApplC (wrapNamed "cons?" consP)) appl_20
-                                                                                                               !appl_22 <- kl_V4122 `pseq` klCons kl_V4122 (Types.Atom Types.Nil)
-                                                                                                               !appl_23 <- appl_22 `pseq` klCons (ApplC (wrapNamed "hd" hd)) appl_22
-                                                                                                               !appl_24 <- appl_23 `pseq` klCons appl_23 (Types.Atom Types.Nil)
-                                                                                                               !appl_25 <- appl_24 `pseq` klCons (ApplC (wrapNamed "hd" hd)) appl_24
-                                                                                                               !appl_26 <- appl_25 `pseq` klCons appl_25 (Types.Atom Types.Nil)
-                                                                                                               !appl_27 <- kl_V4121h `pseq` (appl_26 `pseq` klCons kl_V4121h appl_26)
-                                                                                                               !appl_28 <- appl_27 `pseq` klCons (ApplC (wrapNamed "=" eq)) appl_27
-                                                                                                               !appl_29 <- appl_28 `pseq` klCons appl_28 (Types.Atom Types.Nil)
-                                                                                                               !appl_30 <- appl_21 `pseq` (appl_29 `pseq` klCons appl_21 appl_29)
-                                                                                                               !appl_31 <- appl_30 `pseq` klCons (Types.Atom (Types.UnboundSym "and")) appl_30
-                                                                                                               appl_31 `pseq` applyWrapper appl_1 [appl_31]
-                                                                  pat_cond_32 = do do let !aw_33 = Types.Atom (Types.UnboundSym "shen.f_error")
-                                                                                      applyWrapper aw_33 [ApplC (wrapNamed "shen.check_stream" kl_shen_check_stream)]
-                                                               in case kl_V4121 of
-                                                                      !(kl_V4121@(Cons (!kl_V4121h)
-                                                                                       (!kl_V4121t))) -> pat_cond_0 kl_V4121 kl_V4121h kl_V4121t
-                                                                      _ -> pat_cond_32
-
-kl_shen_jump_stream :: Types.KLValue ->
-                       Types.KLValue ->
-                       Types.KLValue -> Types.KLContext Types.Env Types.KLValue
-kl_shen_jump_stream (!kl_V4127) (!kl_V4128) (!kl_V4129) = do let pat_cond_0 kl_V4127 kl_V4127h kl_V4127t = do let !appl_1 = ApplC (Func "lambda" (Context (\(!kl_Test) -> do let !appl_2 = ApplC (Func "lambda" (Context (\(!kl_Action) -> do let !appl_3 = ApplC (Func "lambda" (Context (\(!kl_Else) -> do !appl_4 <- kl_Else `pseq` klCons kl_Else (Types.Atom Types.Nil)
-                                                                                                                                                                                                                                                                                                             !appl_5 <- kl_Action `pseq` (appl_4 `pseq` klCons kl_Action appl_4)
-                                                                                                                                                                                                                                                                                                             !appl_6 <- kl_Test `pseq` (appl_5 `pseq` klCons kl_Test appl_5)
-                                                                                                                                                                                                                                                                                                             appl_6 `pseq` klCons (Types.Atom (Types.UnboundSym "if")) appl_6)))
-                                                                                                                                                                                                                                              !appl_7 <- klCons (ApplC (PL "fail" kl_fail)) (Types.Atom Types.Nil)
-                                                                                                                                                                                                                                              appl_7 `pseq` applyWrapper appl_3 [appl_7])))
-                                                                                                                                                                             !appl_8 <- kl_V4128 `pseq` klCons kl_V4128 (Types.Atom Types.Nil)
-                                                                                                                                                                             !appl_9 <- appl_8 `pseq` klCons (ApplC (wrapNamed "hd" hd)) appl_8
-                                                                                                                                                                             !appl_10 <- appl_9 `pseq` klCons appl_9 (Types.Atom Types.Nil)
-                                                                                                                                                                             !appl_11 <- appl_10 `pseq` klCons (ApplC (wrapNamed "tl" tl)) appl_10
-                                                                                                                                                                             !appl_12 <- kl_V4128 `pseq` klCons kl_V4128 (Types.Atom Types.Nil)
-                                                                                                                                                                             !appl_13 <- appl_12 `pseq` klCons (ApplC (wrapNamed "shen.hdtl" kl_shen_hdtl)) appl_12
-                                                                                                                                                                             !appl_14 <- appl_13 `pseq` klCons appl_13 (Types.Atom Types.Nil)
-                                                                                                                                                                             !appl_15 <- appl_11 `pseq` (appl_14 `pseq` klCons appl_11 appl_14)
-                                                                                                                                                                             !appl_16 <- appl_15 `pseq` klCons (ApplC (wrapNamed "shen.pair" kl_shen_pair)) appl_15
-                                                                                                                                                                             !appl_17 <- kl_V4127t `pseq` (appl_16 `pseq` (kl_V4129 `pseq` kl_shen_syntax kl_V4127t appl_16 kl_V4129))
-                                                                                                                                                                             appl_17 `pseq` applyWrapper appl_2 [appl_17])))
-                                                                                                              !appl_18 <- kl_V4128 `pseq` klCons kl_V4128 (Types.Atom Types.Nil)
-                                                                                                              !appl_19 <- appl_18 `pseq` klCons (ApplC (wrapNamed "hd" hd)) appl_18
-                                                                                                              !appl_20 <- appl_19 `pseq` klCons appl_19 (Types.Atom Types.Nil)
-                                                                                                              !appl_21 <- appl_20 `pseq` klCons (ApplC (wrapNamed "cons?" consP)) appl_20
-                                                                                                              appl_21 `pseq` applyWrapper appl_1 [appl_21]
-                                                                 pat_cond_22 = do do let !aw_23 = Types.Atom (Types.UnboundSym "shen.f_error")
-                                                                                     applyWrapper aw_23 [ApplC (wrapNamed "shen.jump_stream" kl_shen_jump_stream)]
-                                                              in case kl_V4127 of
-                                                                     !(kl_V4127@(Cons (!kl_V4127h)
-                                                                                      (!kl_V4127t))) -> pat_cond_0 kl_V4127 kl_V4127h kl_V4127t
-                                                                     _ -> pat_cond_22
-
-kl_shen_semantics :: Types.KLValue ->
-                     Types.KLContext Types.Env Types.KLValue
-kl_shen_semantics (!kl_V4131) = do let pat_cond_0 = do return (Types.Atom Types.Nil)
-                                       pat_cond_1 = do !kl_if_2 <- kl_V4131 `pseq` kl_shen_grammar_symbolP kl_V4131
-                                                       case kl_if_2 of
-                                                           Atom (B (True)) -> do !appl_3 <- kl_V4131 `pseq` kl_concat (Types.Atom (Types.UnboundSym "Parse_")) kl_V4131
-                                                                                 !appl_4 <- appl_3 `pseq` klCons appl_3 (Types.Atom Types.Nil)
-                                                                                 appl_4 `pseq` klCons (ApplC (wrapNamed "shen.hdtl" kl_shen_hdtl)) appl_4
-                                                           Atom (B (False)) -> do !kl_if_5 <- kl_V4131 `pseq` kl_variableP kl_V4131
-                                                                                  case kl_if_5 of
-                                                                                      Atom (B (True)) -> do kl_V4131 `pseq` kl_concat (Types.Atom (Types.UnboundSym "Parse_")) kl_V4131
-                                                                                      Atom (B (False)) -> do let pat_cond_6 kl_V4131 kl_V4131h kl_V4131t = do let !appl_7 = ApplC (Func "lambda" (Context (\(!kl_Z) -> do kl_Z `pseq` kl_shen_semantics kl_Z)))
-                                                                                                                                                              appl_7 `pseq` (kl_V4131 `pseq` kl_map appl_7 kl_V4131)
-                                                                                                                 pat_cond_8 = do do return kl_V4131
-                                                                                                              in case kl_V4131 of
-                                                                                                                     !(kl_V4131@(Cons (!kl_V4131h)
-                                                                                                                                      (!kl_V4131t))) -> pat_cond_6 kl_V4131 kl_V4131h kl_V4131t
-                                                                                                                     _ -> pat_cond_8
-                                                                                      _ -> throwError "if: expected boolean"
-                                                           _ -> throwError "if: expected boolean"
-                                    in case kl_V4131 of
-                                           kl_V4131@(Atom (Nil)) -> pat_cond_0
-                                           _ -> pat_cond_1
-
-kl_shen_snd_or_fail :: Types.KLValue ->
-                       Types.KLContext Types.Env Types.KLValue
-kl_shen_snd_or_fail (!kl_V4139) = do let pat_cond_0 kl_V4139 kl_V4139h kl_V4139t kl_V4139th = do return kl_V4139th
-                                         pat_cond_1 = do do kl_fail
-                                      in case kl_V4139 of
-                                             !(kl_V4139@(Cons (!kl_V4139h)
-                                                              (!(kl_V4139t@(Cons (!kl_V4139th)
-                                                                                 (Atom (Nil))))))) -> pat_cond_0 kl_V4139 kl_V4139h kl_V4139t kl_V4139th
-                                             _ -> pat_cond_1
-
-kl_fail :: Types.KLContext Types.Env Types.KLValue
-kl_fail = do return (Types.Atom (Types.UnboundSym "shen.fail!"))
-
-kl_shen_pair :: Types.KLValue ->
-                Types.KLValue -> Types.KLContext Types.Env Types.KLValue
-kl_shen_pair (!kl_V4142) (!kl_V4143) = do !appl_0 <- kl_V4143 `pseq` klCons kl_V4143 (Types.Atom Types.Nil)
-                                          kl_V4142 `pseq` (appl_0 `pseq` klCons kl_V4142 appl_0)
-
-kl_shen_hdtl :: Types.KLValue ->
-                Types.KLContext Types.Env Types.KLValue
-kl_shen_hdtl (!kl_V4145) = do !appl_0 <- kl_V4145 `pseq` tl kl_V4145
-                              appl_0 `pseq` hd appl_0
-
-kl_shen_LBExclRB :: Types.KLValue ->
-                    Types.KLContext Types.Env Types.KLValue
-kl_shen_LBExclRB (!kl_V4153) = do let pat_cond_0 kl_V4153 kl_V4153h kl_V4153t kl_V4153th = do !appl_1 <- kl_V4153h `pseq` klCons kl_V4153h (Types.Atom Types.Nil)
-                                                                                              appl_1 `pseq` klCons (Types.Atom Types.Nil) appl_1
-                                      pat_cond_2 = do do kl_fail
-                                   in case kl_V4153 of
-                                          !(kl_V4153@(Cons (!kl_V4153h)
-                                                           (!(kl_V4153t@(Cons (!kl_V4153th)
-                                                                              (Atom (Nil))))))) -> pat_cond_0 kl_V4153 kl_V4153h kl_V4153t kl_V4153th
-                                          _ -> pat_cond_2
-
-kl_LBeRB :: Types.KLValue ->
-            Types.KLContext Types.Env Types.KLValue
-kl_LBeRB (!kl_V4159) = do let pat_cond_0 kl_V4159 kl_V4159h kl_V4159t kl_V4159th = do !appl_1 <- klCons (Types.Atom Types.Nil) (Types.Atom Types.Nil)
-                                                                                      kl_V4159h `pseq` (appl_1 `pseq` klCons kl_V4159h appl_1)
-                              pat_cond_2 = do do let !aw_3 = Types.Atom (Types.UnboundSym "shen.f_error")
-                                                 applyWrapper aw_3 [ApplC (wrapNamed "<e>" kl_LBeRB)]
-                           in case kl_V4159 of
-                                  !(kl_V4159@(Cons (!kl_V4159h)
-                                                   (!(kl_V4159t@(Cons (!kl_V4159th)
-                                                                      (Atom (Nil))))))) -> pat_cond_0 kl_V4159 kl_V4159h kl_V4159t kl_V4159th
-                                  _ -> pat_cond_2
-
-expr4 :: Types.KLContext Types.Env Types.KLValue
-expr4 = do (do return (Types.Atom (Types.Str "Copyright (c) 2015, Mark Tarver\n\nAll rights reserved.\n\nRedistribution and use in source and binary forms, with or without\nmodification, are permitted provided that the following conditions are met:\n1. Redistributions of source code must retain the above copyright\n   notice, this list of conditions and the following disclaimer.\n2. Redistributions in binary form must reproduce the above copyright\n   notice, this list of conditions and the following disclaimer in the\n   documentation and/or other materials provided with the distribution.\n3. The name of Mark Tarver may not be used to endorse or promote products\n   derived from this software without specific prior written permission.\n\nTHIS SOFTWARE IS PROVIDED BY Mark Tarver ''AS IS'' AND ANY\nEXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED\nWARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE\nDISCLAIMED. IN NO EVENT SHALL Mark Tarver BE LIABLE FOR ANY\nDIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES\n(INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;\nLOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND\nON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT\n(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS\nSOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE."))) `catchError` (\(!kl_E) -> do return (Types.Atom (Types.Str "E")))
+{-# LANGUAGE BangPatterns #-}+{-# LANGUAGE OverloadedStrings #-}+{-# LANGUAGE Strict #-}+{-# LANGUAGE StrictData #-}+{-# LANGUAGE ViewPatterns #-}++module Backend.Yacc where++import Control.Monad.Except+import Control.Parallel+import Environment+import Core.Primitives as Primitives+import Backend.Utils+import Core.Types+import Core.Utils+import Wrap+import Backend.Toplevel+import Backend.Core+import Backend.Sys+import Backend.Sequent++{-+Copyright (c) 2015, Mark Tarver+All rights reserved.++Redistribution and use in source and binary forms, with or without+modification, are permitted provided that the following conditions are met:++1. Redistributions of source code must retain the above copyright+   notice, this list of conditions and the following disclaimer.+2. Redistributions in binary form must reproduce the above copyright+   notice, this list of conditions and the following disclaimer in the+   documentation and/or other materials provided with the distribution.+3. The name of Mark Tarver may not be used to endorse or promote products+   derived from this software without specific prior written permission.++THIS SOFTWARE IS PROVIDED BY Mark Tarver ''AS IS'' AND ANY+EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED+WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE+DISCLAIMED. IN NO EVENT SHALL Mark Tarver BE LIABLE FOR ANY+DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES+(INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;+LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND+ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT+(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS+SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.+-}++kl_shen_yacc :: Core.Types.KLValue ->+                Core.Types.KLContext Core.Types.Env Core.Types.KLValue+kl_shen_yacc (!kl_V4140) = do let pat_cond_0 kl_V4140 kl_V4140t kl_V4140th kl_V4140tt = do kl_V4140th `pseq` (kl_V4140tt `pseq` kl_shen_yacc_RBshen kl_V4140th kl_V4140tt)+                                  pat_cond_1 = do do let !aw_2 = Core.Types.Atom (Core.Types.UnboundSym "shen.f_error")+                                                     applyWrapper aw_2 [ApplC (wrapNamed "shen.yacc" kl_shen_yacc)]+                               in case kl_V4140 of+                                      !(kl_V4140@(Cons (Atom (UnboundSym "defcc"))+                                                       (!(kl_V4140t@(Cons (!kl_V4140th)+                                                                          (!kl_V4140tt)))))) -> pat_cond_0 kl_V4140 kl_V4140t kl_V4140th kl_V4140tt+                                      !(kl_V4140@(Cons (ApplC (PL "defcc" _))+                                                       (!(kl_V4140t@(Cons (!kl_V4140th)+                                                                          (!kl_V4140tt)))))) -> pat_cond_0 kl_V4140 kl_V4140t kl_V4140th kl_V4140tt+                                      !(kl_V4140@(Cons (ApplC (Func "defcc" _))+                                                       (!(kl_V4140t@(Cons (!kl_V4140th)+                                                                          (!kl_V4140tt)))))) -> pat_cond_0 kl_V4140 kl_V4140t kl_V4140th kl_V4140tt+                                      _ -> pat_cond_1++kl_shen_yacc_RBshen :: Core.Types.KLValue ->+                       Core.Types.KLValue ->+                       Core.Types.KLContext Core.Types.Env Core.Types.KLValue+kl_shen_yacc_RBshen (!kl_V4143) (!kl_V4144) = do let !appl_0 = ApplC (Func "lambda" (Context (\(!kl_CCRules) -> do let !appl_1 = ApplC (Func "lambda" (Context (\(!kl_CCBody) -> do let !appl_2 = ApplC (Func "lambda" (Context (\(!kl_YaccCases) -> do !appl_3 <- kl_YaccCases `pseq` kl_shen_kill_code kl_YaccCases+                                                                                                                                                                                                                                                        let !appl_4 = Atom Nil+                                                                                                                                                                                                                                                        !appl_5 <- appl_3 `pseq` (appl_4 `pseq` klCons appl_3 appl_4)+                                                                                                                                                                                                                                                        !appl_6 <- appl_5 `pseq` klCons (Core.Types.Atom (Core.Types.UnboundSym "->")) appl_5+                                                                                                                                                                                                                                                        !appl_7 <- appl_6 `pseq` klCons (Core.Types.Atom (Core.Types.UnboundSym "Stream")) appl_6+                                                                                                                                                                                                                                                        !appl_8 <- kl_V4143 `pseq` (appl_7 `pseq` klCons kl_V4143 appl_7)+                                                                                                                                                                                                                                                        appl_8 `pseq` klCons (Core.Types.Atom (Core.Types.UnboundSym "define")) appl_8)))+                                                                                                                                                                                    !appl_9 <- kl_CCBody `pseq` kl_shen_yacc_cases kl_CCBody+                                                                                                                                                                                    appl_9 `pseq` applyWrapper appl_2 [appl_9])))+                                                                                                                   let !appl_10 = ApplC (Func "lambda" (Context (\(!kl_X) -> do kl_X `pseq` kl_shen_cc_body kl_X)))+                                                                                                                   !appl_11 <- appl_10 `pseq` (kl_CCRules `pseq` kl_map appl_10 kl_CCRules)+                                                                                                                   appl_11 `pseq` applyWrapper appl_1 [appl_11])))+                                                 let !appl_12 = Atom Nil+                                                 !appl_13 <- kl_V4144 `pseq` (appl_12 `pseq` kl_shen_split_cc_rules (Atom (B True)) kl_V4144 appl_12)+                                                 appl_13 `pseq` applyWrapper appl_0 [appl_13]++kl_shen_kill_code :: Core.Types.KLValue ->+                     Core.Types.KLContext Core.Types.Env Core.Types.KLValue+kl_shen_kill_code (!kl_V4146) = do !appl_0 <- kl_V4146 `pseq` kl_occurrences (ApplC (PL "kill" kl_kill)) kl_V4146+                                   !kl_if_1 <- appl_0 `pseq` greaterThan appl_0 (Core.Types.Atom (Core.Types.N (Core.Types.KI 0)))+                                   case kl_if_1 of+                                       Atom (B (True)) -> do let !appl_2 = Atom Nil+                                                             !appl_3 <- appl_2 `pseq` klCons (Core.Types.Atom (Core.Types.UnboundSym "E")) appl_2+                                                             !appl_4 <- appl_3 `pseq` klCons (ApplC (wrapNamed "shen.analyse-kill" kl_shen_analyse_kill)) appl_3+                                                             let !appl_5 = Atom Nil+                                                             !appl_6 <- appl_4 `pseq` (appl_5 `pseq` klCons appl_4 appl_5)+                                                             !appl_7 <- appl_6 `pseq` klCons (Core.Types.Atom (Core.Types.UnboundSym "E")) appl_6+                                                             !appl_8 <- appl_7 `pseq` klCons (Core.Types.Atom (Core.Types.UnboundSym "lambda")) appl_7+                                                             let !appl_9 = Atom Nil+                                                             !appl_10 <- appl_8 `pseq` (appl_9 `pseq` klCons appl_8 appl_9)+                                                             !appl_11 <- kl_V4146 `pseq` (appl_10 `pseq` klCons kl_V4146 appl_10)+                                                             appl_11 `pseq` klCons (Core.Types.Atom (Core.Types.UnboundSym "trap-error")) appl_11+                                       Atom (B (False)) -> do do return kl_V4146+                                       _ -> throwError "if: expected boolean"++kl_kill :: Core.Types.KLContext Core.Types.Env Core.Types.KLValue+kl_kill = do simpleError (Core.Types.Atom (Core.Types.Str "yacc kill"))++kl_shen_analyse_kill :: Core.Types.KLValue ->+                        Core.Types.KLContext Core.Types.Env Core.Types.KLValue+kl_shen_analyse_kill (!kl_V4148) = do let !appl_0 = ApplC (Func "lambda" (Context (\(!kl_String) -> do let pat_cond_1 = do kl_fail+                                                                                                           pat_cond_2 = do do return kl_V4148+                                                                                                        in case kl_String of+                                                                                                               kl_String@(Atom (Str "yacc kill")) -> pat_cond_1+                                                                                                               _ -> pat_cond_2)))+                                      !appl_3 <- kl_V4148 `pseq` errorToString kl_V4148+                                      appl_3 `pseq` applyWrapper appl_0 [appl_3]++kl_shen_split_cc_rules :: Core.Types.KLValue ->+                          Core.Types.KLValue ->+                          Core.Types.KLValue ->+                          Core.Types.KLContext Core.Types.Env Core.Types.KLValue+kl_shen_split_cc_rules (!kl_V4154) (!kl_V4155) (!kl_V4156) = do let !appl_0 = Atom Nil+                                                                !kl_if_1 <- appl_0 `pseq` (kl_V4155 `pseq` eq appl_0 kl_V4155)+                                                                !kl_if_2 <- case kl_if_1 of+                                                                                Atom (B (True)) -> do let !appl_3 = Atom Nil+                                                                                                      !kl_if_4 <- appl_3 `pseq` (kl_V4156 `pseq` eq appl_3 kl_V4156)+                                                                                                      case kl_if_4 of+                                                                                                          Atom (B (True)) -> do return (Atom (B True))+                                                                                                          Atom (B (False)) -> do do return (Atom (B False))+                                                                                                          _ -> throwError "if: expected boolean"+                                                                                Atom (B (False)) -> do do return (Atom (B False))+                                                                                _ -> throwError "if: expected boolean"+                                                                case kl_if_2 of+                                                                    Atom (B (True)) -> do return (Atom Nil)+                                                                    Atom (B (False)) -> do let !appl_5 = Atom Nil+                                                                                           !kl_if_6 <- appl_5 `pseq` (kl_V4155 `pseq` eq appl_5 kl_V4155)+                                                                                           case kl_if_6 of+                                                                                               Atom (B (True)) -> do !appl_7 <- kl_V4156 `pseq` kl_reverse kl_V4156+                                                                                                                     let !appl_8 = Atom Nil+                                                                                                                     !appl_9 <- kl_V4154 `pseq` (appl_7 `pseq` (appl_8 `pseq` kl_shen_split_cc_rule kl_V4154 appl_7 appl_8))+                                                                                                                     let !appl_10 = Atom Nil+                                                                                                                     appl_9 `pseq` (appl_10 `pseq` klCons appl_9 appl_10)+                                                                                               Atom (B (False)) -> do let pat_cond_11 kl_V4155 kl_V4155t = do !appl_12 <- kl_V4156 `pseq` kl_reverse kl_V4156+                                                                                                                                                              let !appl_13 = Atom Nil+                                                                                                                                                              !appl_14 <- kl_V4154 `pseq` (appl_12 `pseq` (appl_13 `pseq` kl_shen_split_cc_rule kl_V4154 appl_12 appl_13))+                                                                                                                                                              let !appl_15 = Atom Nil+                                                                                                                                                              !appl_16 <- kl_V4154 `pseq` (kl_V4155t `pseq` (appl_15 `pseq` kl_shen_split_cc_rules kl_V4154 kl_V4155t appl_15))+                                                                                                                                                              appl_14 `pseq` (appl_16 `pseq` klCons appl_14 appl_16)+                                                                                                                          pat_cond_17 kl_V4155 kl_V4155h kl_V4155t = do !appl_18 <- kl_V4155h `pseq` (kl_V4156 `pseq` klCons kl_V4155h kl_V4156)+                                                                                                                                                                        kl_V4154 `pseq` (kl_V4155t `pseq` (appl_18 `pseq` kl_shen_split_cc_rules kl_V4154 kl_V4155t appl_18))+                                                                                                                          pat_cond_19 = do do let !aw_20 = Core.Types.Atom (Core.Types.UnboundSym "shen.f_error")+                                                                                                                                              applyWrapper aw_20 [ApplC (wrapNamed "shen.split_cc_rules" kl_shen_split_cc_rules)]+                                                                                                                       in case kl_V4155 of+                                                                                                                              !(kl_V4155@(Cons (Atom (UnboundSym ";"))+                                                                                                                                               (!kl_V4155t))) -> pat_cond_11 kl_V4155 kl_V4155t+                                                                                                                              !(kl_V4155@(Cons (ApplC (PL ";"+                                                                                                                                                          _))+                                                                                                                                               (!kl_V4155t))) -> pat_cond_11 kl_V4155 kl_V4155t+                                                                                                                              !(kl_V4155@(Cons (ApplC (Func ";"+                                                                                                                                                            _))+                                                                                                                                               (!kl_V4155t))) -> pat_cond_11 kl_V4155 kl_V4155t+                                                                                                                              !(kl_V4155@(Cons (!kl_V4155h)+                                                                                                                                               (!kl_V4155t))) -> pat_cond_17 kl_V4155 kl_V4155h kl_V4155t+                                                                                                                              _ -> pat_cond_19+                                                                                               _ -> throwError "if: expected boolean"+                                                                    _ -> throwError "if: expected boolean"++kl_shen_split_cc_rule :: Core.Types.KLValue ->+                         Core.Types.KLValue ->+                         Core.Types.KLValue ->+                         Core.Types.KLContext Core.Types.Env Core.Types.KLValue+kl_shen_split_cc_rule (!kl_V4164) (!kl_V4165) (!kl_V4166) = do !kl_if_0 <- let pat_cond_1 kl_V4165 kl_V4165h kl_V4165t = do !kl_if_2 <- let pat_cond_3 = do !kl_if_4 <- let pat_cond_5 kl_V4165t kl_V4165th kl_V4165tt = do let !appl_6 = Atom Nil+                                                                                                                                                                                                                            !kl_if_7 <- appl_6 `pseq` (kl_V4165tt `pseq` eq appl_6 kl_V4165tt)+                                                                                                                                                                                                                            case kl_if_7 of+                                                                                                                                                                                                                                Atom (B (True)) -> do return (Atom (B True))+                                                                                                                                                                                                                                Atom (B (False)) -> do do return (Atom (B False))+                                                                                                                                                                                                                                _ -> throwError "if: expected boolean"+                                                                                                                                                                            pat_cond_8 = do do return (Atom (B False))+                                                                                                                                                                         in case kl_V4165t of+                                                                                                                                                                                !(kl_V4165t@(Cons (!kl_V4165th)+                                                                                                                                                                                                  (!kl_V4165tt))) -> pat_cond_5 kl_V4165t kl_V4165th kl_V4165tt+                                                                                                                                                                                _ -> pat_cond_8+                                                                                                                                                            case kl_if_4 of+                                                                                                                                                                Atom (B (True)) -> do return (Atom (B True))+                                                                                                                                                                Atom (B (False)) -> do do return (Atom (B False))+                                                                                                                                                                _ -> throwError "if: expected boolean"+                                                                                                                                            pat_cond_9 = do do return (Atom (B False))+                                                                                                                                         in case kl_V4165h of+                                                                                                                                                kl_V4165h@(Atom (UnboundSym ":=")) -> pat_cond_3+                                                                                                                                                kl_V4165h@(ApplC (PL ":="+                                                                                                                                                                     _)) -> pat_cond_3+                                                                                                                                                kl_V4165h@(ApplC (Func ":="+                                                                                                                                                                       _)) -> pat_cond_3+                                                                                                                                                _ -> pat_cond_9+                                                                                                                            case kl_if_2 of+                                                                                                                                Atom (B (True)) -> do return (Atom (B True))+                                                                                                                                Atom (B (False)) -> do do return (Atom (B False))+                                                                                                                                _ -> throwError "if: expected boolean"+                                                                               pat_cond_10 = do do return (Atom (B False))+                                                                            in case kl_V4165 of+                                                                                   !(kl_V4165@(Cons (!kl_V4165h)+                                                                                                    (!kl_V4165t))) -> pat_cond_1 kl_V4165 kl_V4165h kl_V4165t+                                                                                   _ -> pat_cond_10+                                                               case kl_if_0 of+                                                                   Atom (B (True)) -> do !appl_11 <- kl_V4166 `pseq` kl_reverse kl_V4166+                                                                                         !appl_12 <- kl_V4165 `pseq` tl kl_V4165+                                                                                         appl_11 `pseq` (appl_12 `pseq` klCons appl_11 appl_12)+                                                                   Atom (B (False)) -> do !kl_if_13 <- let pat_cond_14 kl_V4165 kl_V4165h kl_V4165t = do !kl_if_15 <- let pat_cond_16 = do !kl_if_17 <- let pat_cond_18 kl_V4165t kl_V4165th kl_V4165tt = do !kl_if_19 <- let pat_cond_20 kl_V4165tt kl_V4165tth kl_V4165ttt = do !kl_if_21 <- let pat_cond_22 = do !kl_if_23 <- let pat_cond_24 kl_V4165ttt kl_V4165ttth kl_V4165tttt = do let !appl_25 = Atom Nil+                                                                                                                                                                                                                                                                                                                                                                                                                                            !kl_if_26 <- appl_25 `pseq` (kl_V4165tttt `pseq` eq appl_25 kl_V4165tttt)+                                                                                                                                                                                                                                                                                                                                                                                                                                            case kl_if_26 of+                                                                                                                                                                                                                                                                                                                                                                                                                                                Atom (B (True)) -> do return (Atom (B True))+                                                                                                                                                                                                                                                                                                                                                                                                                                                Atom (B (False)) -> do do return (Atom (B False))+                                                                                                                                                                                                                                                                                                                                                                                                                                                _ -> throwError "if: expected boolean"+                                                                                                                                                                                                                                                                                                                                                                                     pat_cond_27 = do do return (Atom (B False))+                                                                                                                                                                                                                                                                                                                                                                                  in case kl_V4165ttt of+                                                                                                                                                                                                                                                                                                                                                                                         !(kl_V4165ttt@(Cons (!kl_V4165ttth)+                                                                                                                                                                                                                                                                                                                                                                                                             (!kl_V4165tttt))) -> pat_cond_24 kl_V4165ttt kl_V4165ttth kl_V4165tttt+                                                                                                                                                                                                                                                                                                                                                                                         _ -> pat_cond_27+                                                                                                                                                                                                                                                                                                                                                                    case kl_if_23 of+                                                                                                                                                                                                                                                                                                                                                                        Atom (B (True)) -> do return (Atom (B True))+                                                                                                                                                                                                                                                                                                                                                                        Atom (B (False)) -> do do return (Atom (B False))+                                                                                                                                                                                                                                                                                                                                                                        _ -> throwError "if: expected boolean"+                                                                                                                                                                                                                                                                                                                                                   pat_cond_28 = do do return (Atom (B False))+                                                                                                                                                                                                                                                                                                                                                in case kl_V4165tth of+                                                                                                                                                                                                                                                                                                                                                       kl_V4165tth@(Atom (UnboundSym "where")) -> pat_cond_22+                                                                                                                                                                                                                                                                                                                                                       kl_V4165tth@(ApplC (PL "where"+                                                                                                                                                                                                                                                                                                                                                                              _)) -> pat_cond_22+                                                                                                                                                                                                                                                                                                                                                       kl_V4165tth@(ApplC (Func "where"+                                                                                                                                                                                                                                                                                                                                                                                _)) -> pat_cond_22+                                                                                                                                                                                                                                                                                                                                                       _ -> pat_cond_28+                                                                                                                                                                                                                                                                                                                                  case kl_if_21 of+                                                                                                                                                                                                                                                                                                                                      Atom (B (True)) -> do return (Atom (B True))+                                                                                                                                                                                                                                                                                                                                      Atom (B (False)) -> do do return (Atom (B False))+                                                                                                                                                                                                                                                                                                                                      _ -> throwError "if: expected boolean"+                                                                                                                                                                                                                                                                              pat_cond_29 = do do return (Atom (B False))+                                                                                                                                                                                                                                                                           in case kl_V4165tt of+                                                                                                                                                                                                                                                                                  !(kl_V4165tt@(Cons (!kl_V4165tth)+                                                                                                                                                                                                                                                                                                     (!kl_V4165ttt))) -> pat_cond_20 kl_V4165tt kl_V4165tth kl_V4165ttt+                                                                                                                                                                                                                                                                                  _ -> pat_cond_29+                                                                                                                                                                                                                                                             case kl_if_19 of+                                                                                                                                                                                                                                                                 Atom (B (True)) -> do return (Atom (B True))+                                                                                                                                                                                                                                                                 Atom (B (False)) -> do do return (Atom (B False))+                                                                                                                                                                                                                                                                 _ -> throwError "if: expected boolean"+                                                                                                                                                                                                            pat_cond_30 = do do return (Atom (B False))+                                                                                                                                                                                                         in case kl_V4165t of+                                                                                                                                                                                                                !(kl_V4165t@(Cons (!kl_V4165th)+                                                                                                                                                                                                                                  (!kl_V4165tt))) -> pat_cond_18 kl_V4165t kl_V4165th kl_V4165tt+                                                                                                                                                                                                                _ -> pat_cond_30+                                                                                                                                                                                           case kl_if_17 of+                                                                                                                                                                                               Atom (B (True)) -> do return (Atom (B True))+                                                                                                                                                                                               Atom (B (False)) -> do do return (Atom (B False))+                                                                                                                                                                                               _ -> throwError "if: expected boolean"+                                                                                                                                                                          pat_cond_31 = do do return (Atom (B False))+                                                                                                                                                                       in case kl_V4165h of+                                                                                                                                                                              kl_V4165h@(Atom (UnboundSym ":=")) -> pat_cond_16+                                                                                                                                                                              kl_V4165h@(ApplC (PL ":="+                                                                                                                                                                                                   _)) -> pat_cond_16+                                                                                                                                                                              kl_V4165h@(ApplC (Func ":="+                                                                                                                                                                                                     _)) -> pat_cond_16+                                                                                                                                                                              _ -> pat_cond_31+                                                                                                                                                         case kl_if_15 of+                                                                                                                                                             Atom (B (True)) -> do return (Atom (B True))+                                                                                                                                                             Atom (B (False)) -> do do return (Atom (B False))+                                                                                                                                                             _ -> throwError "if: expected boolean"+                                                                                                           pat_cond_32 = do do return (Atom (B False))+                                                                                                        in case kl_V4165 of+                                                                                                               !(kl_V4165@(Cons (!kl_V4165h)+                                                                                                                                (!kl_V4165t))) -> pat_cond_14 kl_V4165 kl_V4165h kl_V4165t+                                                                                                               _ -> pat_cond_32+                                                                                          case kl_if_13 of+                                                                                              Atom (B (True)) -> do !appl_33 <- kl_V4166 `pseq` kl_reverse kl_V4166+                                                                                                                    !appl_34 <- kl_V4165 `pseq` tl kl_V4165+                                                                                                                    !appl_35 <- appl_34 `pseq` tl appl_34+                                                                                                                    !appl_36 <- appl_35 `pseq` tl appl_35+                                                                                                                    !appl_37 <- appl_36 `pseq` hd appl_36+                                                                                                                    !appl_38 <- kl_V4165 `pseq` tl kl_V4165+                                                                                                                    !appl_39 <- appl_38 `pseq` hd appl_38+                                                                                                                    let !appl_40 = Atom Nil+                                                                                                                    !appl_41 <- appl_39 `pseq` (appl_40 `pseq` klCons appl_39 appl_40)+                                                                                                                    !appl_42 <- appl_37 `pseq` (appl_41 `pseq` klCons appl_37 appl_41)+                                                                                                                    !appl_43 <- appl_42 `pseq` klCons (Core.Types.Atom (Core.Types.UnboundSym "where")) appl_42+                                                                                                                    let !appl_44 = Atom Nil+                                                                                                                    !appl_45 <- appl_43 `pseq` (appl_44 `pseq` klCons appl_43 appl_44)+                                                                                                                    appl_33 `pseq` (appl_45 `pseq` klCons appl_33 appl_45)+                                                                                              Atom (B (False)) -> do let !appl_46 = Atom Nil+                                                                                                                     !kl_if_47 <- appl_46 `pseq` (kl_V4165 `pseq` eq appl_46 kl_V4165)+                                                                                                                     case kl_if_47 of+                                                                                                                         Atom (B (True)) -> do !appl_48 <- kl_V4164 `pseq` (kl_V4166 `pseq` kl_shen_semantic_completion_warning kl_V4164 kl_V4166)+                                                                                                                                               !appl_49 <- kl_V4166 `pseq` kl_reverse kl_V4166+                                                                                                                                               !appl_50 <- appl_49 `pseq` kl_shen_default_semantics appl_49+                                                                                                                                               let !appl_51 = Atom Nil+                                                                                                                                               !appl_52 <- appl_50 `pseq` (appl_51 `pseq` klCons appl_50 appl_51)+                                                                                                                                               !appl_53 <- appl_52 `pseq` klCons (Core.Types.Atom (Core.Types.UnboundSym ":=")) appl_52+                                                                                                                                               !appl_54 <- kl_V4164 `pseq` (appl_53 `pseq` (kl_V4166 `pseq` kl_shen_split_cc_rule kl_V4164 appl_53 kl_V4166))+                                                                                                                                               appl_48 `pseq` (appl_54 `pseq` kl_do appl_48 appl_54)+                                                                                                                         Atom (B (False)) -> do let pat_cond_55 kl_V4165 kl_V4165h kl_V4165t = do !appl_56 <- kl_V4165h `pseq` (kl_V4166 `pseq` klCons kl_V4165h kl_V4166)+                                                                                                                                                                                                  kl_V4164 `pseq` (kl_V4165t `pseq` (appl_56 `pseq` kl_shen_split_cc_rule kl_V4164 kl_V4165t appl_56))+                                                                                                                                                    pat_cond_57 = do do let !aw_58 = Core.Types.Atom (Core.Types.UnboundSym "shen.f_error")+                                                                                                                                                                        applyWrapper aw_58 [ApplC (wrapNamed "shen.split_cc_rule" kl_shen_split_cc_rule)]+                                                                                                                                                 in case kl_V4165 of+                                                                                                                                                        !(kl_V4165@(Cons (!kl_V4165h)+                                                                                                                                                                         (!kl_V4165t))) -> pat_cond_55 kl_V4165 kl_V4165h kl_V4165t+                                                                                                                                                        _ -> pat_cond_57+                                                                                                                         _ -> throwError "if: expected boolean"+                                                                                              _ -> throwError "if: expected boolean"+                                                                   _ -> throwError "if: expected boolean"++kl_shen_semantic_completion_warning :: Core.Types.KLValue ->+                                       Core.Types.KLValue ->+                                       Core.Types.KLContext Core.Types.Env Core.Types.KLValue+kl_shen_semantic_completion_warning (!kl_V4177) (!kl_V4178) = do let pat_cond_0 = do !appl_1 <- kl_stoutput+                                                                                     let !aw_2 = Core.Types.Atom (Core.Types.UnboundSym "shen.prhush")+                                                                                     !appl_3 <- appl_1 `pseq` applyWrapper aw_2 [Core.Types.Atom (Core.Types.Str "warning: "),+                                                                                                                                 appl_1]+                                                                                     let !appl_4 = ApplC (Func "lambda" (Context (\(!kl_X) -> do let !aw_5 = Core.Types.Atom (Core.Types.UnboundSym "shen.app")+                                                                                                                                                 !appl_6 <- kl_X `pseq` applyWrapper aw_5 [kl_X,+                                                                                                                                                                                           Core.Types.Atom (Core.Types.Str " "),+                                                                                                                                                                                           Core.Types.Atom (Core.Types.UnboundSym "shen.a")]+                                                                                                                                                 !appl_7 <- kl_stoutput+                                                                                                                                                 let !aw_8 = Core.Types.Atom (Core.Types.UnboundSym "shen.prhush")+                                                                                                                                                 appl_6 `pseq` (appl_7 `pseq` applyWrapper aw_8 [appl_6,+                                                                                                                                                                                                 appl_7]))))+                                                                                     !appl_9 <- kl_V4178 `pseq` kl_reverse kl_V4178+                                                                                     !appl_10 <- appl_4 `pseq` (appl_9 `pseq` kl_for_each appl_4 appl_9)+                                                                                     !appl_11 <- kl_stoutput+                                                                                     let !aw_12 = Core.Types.Atom (Core.Types.UnboundSym "shen.prhush")+                                                                                     !appl_13 <- appl_11 `pseq` applyWrapper aw_12 [Core.Types.Atom (Core.Types.Str "has no semantics.\n"),+                                                                                                                                    appl_11]+                                                                                     !appl_14 <- appl_10 `pseq` (appl_13 `pseq` kl_do appl_10 appl_13)+                                                                                     appl_3 `pseq` (appl_14 `pseq` kl_do appl_3 appl_14)+                                                                     pat_cond_15 = do do return (Core.Types.Atom (Core.Types.UnboundSym "shen.skip"))+                                                                  in case kl_V4177 of+                                                                         kl_V4177@(Atom (UnboundSym "true")) -> pat_cond_0+                                                                         kl_V4177@(Atom (B (True))) -> pat_cond_0+                                                                         _ -> pat_cond_15++kl_shen_default_semantics :: Core.Types.KLValue ->+                             Core.Types.KLContext Core.Types.Env Core.Types.KLValue+kl_shen_default_semantics (!kl_V4180) = do let !appl_0 = Atom Nil+                                           !kl_if_1 <- appl_0 `pseq` (kl_V4180 `pseq` eq appl_0 kl_V4180)+                                           case kl_if_1 of+                                               Atom (B (True)) -> do return (Atom Nil)+                                               Atom (B (False)) -> do !kl_if_2 <- let pat_cond_3 kl_V4180 kl_V4180h kl_V4180t = do let !appl_4 = Atom Nil+                                                                                                                                   !kl_if_5 <- appl_4 `pseq` (kl_V4180t `pseq` eq appl_4 kl_V4180t)+                                                                                                                                   !kl_if_6 <- case kl_if_5 of+                                                                                                                                                   Atom (B (True)) -> do !kl_if_7 <- kl_V4180h `pseq` kl_shen_grammar_symbolP kl_V4180h+                                                                                                                                                                         case kl_if_7 of+                                                                                                                                                                             Atom (B (True)) -> do return (Atom (B True))+                                                                                                                                                                             Atom (B (False)) -> do do return (Atom (B False))+                                                                                                                                                                             _ -> throwError "if: expected boolean"+                                                                                                                                                   Atom (B (False)) -> do do return (Atom (B False))+                                                                                                                                                   _ -> throwError "if: expected boolean"+                                                                                                                                   case kl_if_6 of+                                                                                                                                       Atom (B (True)) -> do return (Atom (B True))+                                                                                                                                       Atom (B (False)) -> do do return (Atom (B False))+                                                                                                                                       _ -> throwError "if: expected boolean"+                                                                                      pat_cond_8 = do do return (Atom (B False))+                                                                                   in case kl_V4180 of+                                                                                          !(kl_V4180@(Cons (!kl_V4180h)+                                                                                                           (!kl_V4180t))) -> pat_cond_3 kl_V4180 kl_V4180h kl_V4180t+                                                                                          _ -> pat_cond_8+                                                                      case kl_if_2 of+                                                                          Atom (B (True)) -> do kl_V4180 `pseq` hd kl_V4180+                                                                          Atom (B (False)) -> do !kl_if_9 <- let pat_cond_10 kl_V4180 kl_V4180h kl_V4180t = do !kl_if_11 <- kl_V4180h `pseq` kl_shen_grammar_symbolP kl_V4180h+                                                                                                                                                               case kl_if_11 of+                                                                                                                                                                   Atom (B (True)) -> do return (Atom (B True))+                                                                                                                                                                   Atom (B (False)) -> do do return (Atom (B False))+                                                                                                                                                                   _ -> throwError "if: expected boolean"+                                                                                                                 pat_cond_12 = do do return (Atom (B False))+                                                                                                              in case kl_V4180 of+                                                                                                                     !(kl_V4180@(Cons (!kl_V4180h)+                                                                                                                                      (!kl_V4180t))) -> pat_cond_10 kl_V4180 kl_V4180h kl_V4180t+                                                                                                                     _ -> pat_cond_12+                                                                                                 case kl_if_9 of+                                                                                                     Atom (B (True)) -> do !appl_13 <- kl_V4180 `pseq` hd kl_V4180+                                                                                                                           !appl_14 <- kl_V4180 `pseq` tl kl_V4180+                                                                                                                           !appl_15 <- appl_14 `pseq` kl_shen_default_semantics appl_14+                                                                                                                           let !appl_16 = Atom Nil+                                                                                                                           !appl_17 <- appl_15 `pseq` (appl_16 `pseq` klCons appl_15 appl_16)+                                                                                                                           !appl_18 <- appl_13 `pseq` (appl_17 `pseq` klCons appl_13 appl_17)+                                                                                                                           appl_18 `pseq` klCons (ApplC (wrapNamed "append" kl_append)) appl_18+                                                                                                     Atom (B (False)) -> do let pat_cond_19 kl_V4180 kl_V4180h kl_V4180t = do !appl_20 <- kl_V4180t `pseq` kl_shen_default_semantics kl_V4180t+                                                                                                                                                                              let !appl_21 = Atom Nil+                                                                                                                                                                              !appl_22 <- appl_20 `pseq` (appl_21 `pseq` klCons appl_20 appl_21)+                                                                                                                                                                              !appl_23 <- kl_V4180h `pseq` (appl_22 `pseq` klCons kl_V4180h appl_22)+                                                                                                                                                                              appl_23 `pseq` klCons (ApplC (wrapNamed "cons" klCons)) appl_23+                                                                                                                                pat_cond_24 = do do let !aw_25 = Core.Types.Atom (Core.Types.UnboundSym "shen.f_error")+                                                                                                                                                    applyWrapper aw_25 [ApplC (wrapNamed "shen.default_semantics" kl_shen_default_semantics)]+                                                                                                                             in case kl_V4180 of+                                                                                                                                    !(kl_V4180@(Cons (!kl_V4180h)+                                                                                                                                                     (!kl_V4180t))) -> pat_cond_19 kl_V4180 kl_V4180h kl_V4180t+                                                                                                                                    _ -> pat_cond_24+                                                                                                     _ -> throwError "if: expected boolean"+                                                                          _ -> throwError "if: expected boolean"+                                               _ -> throwError "if: expected boolean"++kl_shen_grammar_symbolP :: Core.Types.KLValue ->+                           Core.Types.KLContext Core.Types.Env Core.Types.KLValue+kl_shen_grammar_symbolP (!kl_V4182) = do !kl_if_0 <- kl_V4182 `pseq` kl_symbolP kl_V4182+                                         case kl_if_0 of+                                             Atom (B (True)) -> do let !appl_1 = ApplC (Func "lambda" (Context (\(!kl_Cs) -> do !appl_2 <- kl_Cs `pseq` hd kl_Cs+                                                                                                                                !kl_if_3 <- appl_2 `pseq` eq appl_2 (Core.Types.Atom (Core.Types.Str "<"))+                                                                                                                                case kl_if_3 of+                                                                                                                                    Atom (B (True)) -> do !appl_4 <- kl_Cs `pseq` kl_reverse kl_Cs+                                                                                                                                                          !appl_5 <- appl_4 `pseq` hd appl_4+                                                                                                                                                          !kl_if_6 <- appl_5 `pseq` eq appl_5 (Core.Types.Atom (Core.Types.Str ">"))+                                                                                                                                                          case kl_if_6 of+                                                                                                                                                              Atom (B (True)) -> do return (Atom (B True))+                                                                                                                                                              Atom (B (False)) -> do do return (Atom (B False))+                                                                                                                                                              _ -> throwError "if: expected boolean"+                                                                                                                                    Atom (B (False)) -> do do return (Atom (B False))+                                                                                                                                    _ -> throwError "if: expected boolean")))+                                                                   !appl_7 <- kl_V4182 `pseq` kl_explode kl_V4182+                                                                   !appl_8 <- appl_7 `pseq` kl_shen_strip_pathname appl_7+                                                                   !kl_if_9 <- appl_8 `pseq` applyWrapper appl_1 [appl_8]+                                                                   case kl_if_9 of+                                                                       Atom (B (True)) -> do return (Atom (B True))+                                                                       Atom (B (False)) -> do do return (Atom (B False))+                                                                       _ -> throwError "if: expected boolean"+                                             Atom (B (False)) -> do do return (Atom (B False))+                                             _ -> throwError "if: expected boolean"++kl_shen_yacc_cases :: Core.Types.KLValue ->+                      Core.Types.KLContext Core.Types.Env Core.Types.KLValue+kl_shen_yacc_cases (!kl_V4184) = do !kl_if_0 <- let pat_cond_1 kl_V4184 kl_V4184h kl_V4184t = do let !appl_2 = Atom Nil+                                                                                                 !kl_if_3 <- appl_2 `pseq` (kl_V4184t `pseq` eq appl_2 kl_V4184t)+                                                                                                 case kl_if_3 of+                                                                                                     Atom (B (True)) -> do return (Atom (B True))+                                                                                                     Atom (B (False)) -> do do return (Atom (B False))+                                                                                                     _ -> throwError "if: expected boolean"+                                                    pat_cond_4 = do do return (Atom (B False))+                                                 in case kl_V4184 of+                                                        !(kl_V4184@(Cons (!kl_V4184h)+                                                                         (!kl_V4184t))) -> pat_cond_1 kl_V4184 kl_V4184h kl_V4184t+                                                        _ -> pat_cond_4+                                    case kl_if_0 of+                                        Atom (B (True)) -> do kl_V4184 `pseq` hd kl_V4184+                                        Atom (B (False)) -> do let pat_cond_5 kl_V4184 kl_V4184h kl_V4184t = do let !appl_6 = ApplC (Func "lambda" (Context (\(!kl_P) -> do let !appl_7 = Atom Nil+                                                                                                                                                                            !appl_8 <- appl_7 `pseq` klCons (ApplC (PL "fail" kl_fail)) appl_7+                                                                                                                                                                            let !appl_9 = Atom Nil+                                                                                                                                                                            !appl_10 <- appl_8 `pseq` (appl_9 `pseq` klCons appl_8 appl_9)+                                                                                                                                                                            !appl_11 <- kl_P `pseq` (appl_10 `pseq` klCons kl_P appl_10)+                                                                                                                                                                            !appl_12 <- appl_11 `pseq` klCons (ApplC (wrapNamed "=" eq)) appl_11+                                                                                                                                                                            !appl_13 <- kl_V4184t `pseq` kl_shen_yacc_cases kl_V4184t+                                                                                                                                                                            let !appl_14 = Atom Nil+                                                                                                                                                                            !appl_15 <- kl_P `pseq` (appl_14 `pseq` klCons kl_P appl_14)+                                                                                                                                                                            !appl_16 <- appl_13 `pseq` (appl_15 `pseq` klCons appl_13 appl_15)+                                                                                                                                                                            !appl_17 <- appl_12 `pseq` (appl_16 `pseq` klCons appl_12 appl_16)+                                                                                                                                                                            !appl_18 <- appl_17 `pseq` klCons (Core.Types.Atom (Core.Types.UnboundSym "if")) appl_17+                                                                                                                                                                            let !appl_19 = Atom Nil+                                                                                                                                                                            !appl_20 <- appl_18 `pseq` (appl_19 `pseq` klCons appl_18 appl_19)+                                                                                                                                                                            !appl_21 <- kl_V4184h `pseq` (appl_20 `pseq` klCons kl_V4184h appl_20)+                                                                                                                                                                            !appl_22 <- kl_P `pseq` (appl_21 `pseq` klCons kl_P appl_21)+                                                                                                                                                                            appl_22 `pseq` klCons (Core.Types.Atom (Core.Types.UnboundSym "let")) appl_22)))+                                                                                                                applyWrapper appl_6 [Core.Types.Atom (Core.Types.UnboundSym "YaccParse")]+                                                                   pat_cond_23 = do do let !aw_24 = Core.Types.Atom (Core.Types.UnboundSym "shen.f_error")+                                                                                       applyWrapper aw_24 [ApplC (wrapNamed "shen.yacc_cases" kl_shen_yacc_cases)]+                                                                in case kl_V4184 of+                                                                       !(kl_V4184@(Cons (!kl_V4184h)+                                                                                        (!kl_V4184t))) -> pat_cond_5 kl_V4184 kl_V4184h kl_V4184t+                                                                       _ -> pat_cond_23+                                        _ -> throwError "if: expected boolean"++kl_shen_cc_body :: Core.Types.KLValue ->+                   Core.Types.KLContext Core.Types.Env Core.Types.KLValue+kl_shen_cc_body (!kl_V4186) = do !kl_if_0 <- let pat_cond_1 kl_V4186 kl_V4186h kl_V4186t = do !kl_if_2 <- let pat_cond_3 kl_V4186t kl_V4186th kl_V4186tt = do let !appl_4 = Atom Nil+                                                                                                                                                              !kl_if_5 <- appl_4 `pseq` (kl_V4186tt `pseq` eq appl_4 kl_V4186tt)+                                                                                                                                                              case kl_if_5 of+                                                                                                                                                                  Atom (B (True)) -> do return (Atom (B True))+                                                                                                                                                                  Atom (B (False)) -> do do return (Atom (B False))+                                                                                                                                                                  _ -> throwError "if: expected boolean"+                                                                                                              pat_cond_6 = do do return (Atom (B False))+                                                                                                           in case kl_V4186t of+                                                                                                                  !(kl_V4186t@(Cons (!kl_V4186th)+                                                                                                                                    (!kl_V4186tt))) -> pat_cond_3 kl_V4186t kl_V4186th kl_V4186tt+                                                                                                                  _ -> pat_cond_6+                                                                                              case kl_if_2 of+                                                                                                  Atom (B (True)) -> do return (Atom (B True))+                                                                                                  Atom (B (False)) -> do do return (Atom (B False))+                                                                                                  _ -> throwError "if: expected boolean"+                                                 pat_cond_7 = do do return (Atom (B False))+                                              in case kl_V4186 of+                                                     !(kl_V4186@(Cons (!kl_V4186h)+                                                                      (!kl_V4186t))) -> pat_cond_1 kl_V4186 kl_V4186h kl_V4186t+                                                     _ -> pat_cond_7+                                 case kl_if_0 of+                                     Atom (B (True)) -> do !appl_8 <- kl_V4186 `pseq` hd kl_V4186+                                                           !appl_9 <- kl_V4186 `pseq` tl kl_V4186+                                                           !appl_10 <- appl_9 `pseq` hd appl_9+                                                           appl_8 `pseq` (appl_10 `pseq` kl_shen_syntax appl_8 (Core.Types.Atom (Core.Types.UnboundSym "Stream")) appl_10)+                                     Atom (B (False)) -> do do let !aw_11 = Core.Types.Atom (Core.Types.UnboundSym "shen.f_error")+                                                               applyWrapper aw_11 [ApplC (wrapNamed "shen.cc_body" kl_shen_cc_body)]+                                     _ -> throwError "if: expected boolean"++kl_shen_syntax :: Core.Types.KLValue ->+                  Core.Types.KLValue ->+                  Core.Types.KLValue ->+                  Core.Types.KLContext Core.Types.Env Core.Types.KLValue+kl_shen_syntax (!kl_V4190) (!kl_V4191) (!kl_V4192) = do let !appl_0 = Atom Nil+                                                        !kl_if_1 <- appl_0 `pseq` (kl_V4190 `pseq` eq appl_0 kl_V4190)+                                                        !kl_if_2 <- case kl_if_1 of+                                                                        Atom (B (True)) -> do !kl_if_3 <- let pat_cond_4 kl_V4192 kl_V4192h kl_V4192t = do !kl_if_5 <- let pat_cond_6 = do !kl_if_7 <- let pat_cond_8 kl_V4192t kl_V4192th kl_V4192tt = do !kl_if_9 <- let pat_cond_10 kl_V4192tt kl_V4192tth kl_V4192ttt = do let !appl_11 = Atom Nil+                                                                                                                                                                                                                                                                                                                               !kl_if_12 <- appl_11 `pseq` (kl_V4192ttt `pseq` eq appl_11 kl_V4192ttt)+                                                                                                                                                                                                                                                                                                                               case kl_if_12 of+                                                                                                                                                                                                                                                                                                                                   Atom (B (True)) -> do return (Atom (B True))+                                                                                                                                                                                                                                                                                                                                   Atom (B (False)) -> do do return (Atom (B False))+                                                                                                                                                                                                                                                                                                                                   _ -> throwError "if: expected boolean"+                                                                                                                                                                                                                                                                           pat_cond_13 = do do return (Atom (B False))+                                                                                                                                                                                                                                                                        in case kl_V4192tt of+                                                                                                                                                                                                                                                                               !(kl_V4192tt@(Cons (!kl_V4192tth)+                                                                                                                                                                                                                                                                                                  (!kl_V4192ttt))) -> pat_cond_10 kl_V4192tt kl_V4192tth kl_V4192ttt+                                                                                                                                                                                                                                                                               _ -> pat_cond_13+                                                                                                                                                                                                                                                           case kl_if_9 of+                                                                                                                                                                                                                                                               Atom (B (True)) -> do return (Atom (B True))+                                                                                                                                                                                                                                                               Atom (B (False)) -> do do return (Atom (B False))+                                                                                                                                                                                                                                                               _ -> throwError "if: expected boolean"+                                                                                                                                                                                                           pat_cond_14 = do do return (Atom (B False))+                                                                                                                                                                                                        in case kl_V4192t of+                                                                                                                                                                                                               !(kl_V4192t@(Cons (!kl_V4192th)+                                                                                                                                                                                                                                 (!kl_V4192tt))) -> pat_cond_8 kl_V4192t kl_V4192th kl_V4192tt+                                                                                                                                                                                                               _ -> pat_cond_14+                                                                                                                                                                                           case kl_if_7 of+                                                                                                                                                                                               Atom (B (True)) -> do return (Atom (B True))+                                                                                                                                                                                               Atom (B (False)) -> do do return (Atom (B False))+                                                                                                                                                                                               _ -> throwError "if: expected boolean"+                                                                                                                                                                           pat_cond_15 = do do return (Atom (B False))+                                                                                                                                                                        in case kl_V4192h of+                                                                                                                                                                               kl_V4192h@(Atom (UnboundSym "where")) -> pat_cond_6+                                                                                                                                                                               kl_V4192h@(ApplC (PL "where"+                                                                                                                                                                                                    _)) -> pat_cond_6+                                                                                                                                                                               kl_V4192h@(ApplC (Func "where"+                                                                                                                                                                                                      _)) -> pat_cond_6+                                                                                                                                                                               _ -> pat_cond_15+                                                                                                                                                           case kl_if_5 of+                                                                                                                                                               Atom (B (True)) -> do return (Atom (B True))+                                                                                                                                                               Atom (B (False)) -> do do return (Atom (B False))+                                                                                                                                                               _ -> throwError "if: expected boolean"+                                                                                                              pat_cond_16 = do do return (Atom (B False))+                                                                                                           in case kl_V4192 of+                                                                                                                  !(kl_V4192@(Cons (!kl_V4192h)+                                                                                                                                   (!kl_V4192t))) -> pat_cond_4 kl_V4192 kl_V4192h kl_V4192t+                                                                                                                  _ -> pat_cond_16+                                                                                              case kl_if_3 of+                                                                                                  Atom (B (True)) -> do return (Atom (B True))+                                                                                                  Atom (B (False)) -> do do return (Atom (B False))+                                                                                                  _ -> throwError "if: expected boolean"+                                                                        Atom (B (False)) -> do do return (Atom (B False))+                                                                        _ -> throwError "if: expected boolean"+                                                        case kl_if_2 of+                                                            Atom (B (True)) -> do !appl_17 <- kl_V4192 `pseq` tl kl_V4192+                                                                                  !appl_18 <- appl_17 `pseq` hd appl_17+                                                                                  !appl_19 <- appl_18 `pseq` kl_shen_semantics appl_18+                                                                                  let !appl_20 = Atom Nil+                                                                                  !appl_21 <- kl_V4191 `pseq` (appl_20 `pseq` klCons kl_V4191 appl_20)+                                                                                  !appl_22 <- appl_21 `pseq` klCons (ApplC (wrapNamed "hd" hd)) appl_21+                                                                                  !appl_23 <- kl_V4192 `pseq` tl kl_V4192+                                                                                  !appl_24 <- appl_23 `pseq` tl appl_23+                                                                                  !appl_25 <- appl_24 `pseq` hd appl_24+                                                                                  !appl_26 <- appl_25 `pseq` kl_shen_semantics appl_25+                                                                                  let !appl_27 = Atom Nil+                                                                                  !appl_28 <- appl_26 `pseq` (appl_27 `pseq` klCons appl_26 appl_27)+                                                                                  !appl_29 <- appl_22 `pseq` (appl_28 `pseq` klCons appl_22 appl_28)+                                                                                  !appl_30 <- appl_29 `pseq` klCons (ApplC (wrapNamed "shen.pair" kl_shen_pair)) appl_29+                                                                                  let !appl_31 = Atom Nil+                                                                                  !appl_32 <- appl_31 `pseq` klCons (ApplC (PL "fail" kl_fail)) appl_31+                                                                                  let !appl_33 = Atom Nil+                                                                                  !appl_34 <- appl_32 `pseq` (appl_33 `pseq` klCons appl_32 appl_33)+                                                                                  !appl_35 <- appl_30 `pseq` (appl_34 `pseq` klCons appl_30 appl_34)+                                                                                  !appl_36 <- appl_19 `pseq` (appl_35 `pseq` klCons appl_19 appl_35)+                                                                                  appl_36 `pseq` klCons (Core.Types.Atom (Core.Types.UnboundSym "if")) appl_36+                                                            Atom (B (False)) -> do let !appl_37 = Atom Nil+                                                                                   !kl_if_38 <- appl_37 `pseq` (kl_V4190 `pseq` eq appl_37 kl_V4190)+                                                                                   case kl_if_38 of+                                                                                       Atom (B (True)) -> do let !appl_39 = Atom Nil+                                                                                                             !appl_40 <- kl_V4191 `pseq` (appl_39 `pseq` klCons kl_V4191 appl_39)+                                                                                                             !appl_41 <- appl_40 `pseq` klCons (ApplC (wrapNamed "hd" hd)) appl_40+                                                                                                             !appl_42 <- kl_V4192 `pseq` kl_shen_semantics kl_V4192+                                                                                                             let !appl_43 = Atom Nil+                                                                                                             !appl_44 <- appl_42 `pseq` (appl_43 `pseq` klCons appl_42 appl_43)+                                                                                                             !appl_45 <- appl_41 `pseq` (appl_44 `pseq` klCons appl_41 appl_44)+                                                                                                             appl_45 `pseq` klCons (ApplC (wrapNamed "shen.pair" kl_shen_pair)) appl_45+                                                                                       Atom (B (False)) -> do let pat_cond_46 kl_V4190 kl_V4190h kl_V4190t = do !kl_if_47 <- kl_V4190h `pseq` kl_shen_grammar_symbolP kl_V4190h+                                                                                                                                                                case kl_if_47 of+                                                                                                                                                                    Atom (B (True)) -> do kl_V4190 `pseq` (kl_V4191 `pseq` (kl_V4192 `pseq` kl_shen_recursive_descent kl_V4190 kl_V4191 kl_V4192))+                                                                                                                                                                    Atom (B (False)) -> do do !kl_if_48 <- kl_V4190h `pseq` kl_variableP kl_V4190h+                                                                                                                                                                                              case kl_if_48 of+                                                                                                                                                                                                  Atom (B (True)) -> do kl_V4190 `pseq` (kl_V4191 `pseq` (kl_V4192 `pseq` kl_shen_variable_match kl_V4190 kl_V4191 kl_V4192))+                                                                                                                                                                                                  Atom (B (False)) -> do do !kl_if_49 <- kl_V4190h `pseq` kl_shen_jump_streamP kl_V4190h+                                                                                                                                                                                                                            case kl_if_49 of+                                                                                                                                                                                                                                Atom (B (True)) -> do kl_V4190 `pseq` (kl_V4191 `pseq` (kl_V4192 `pseq` kl_shen_jump_stream kl_V4190 kl_V4191 kl_V4192))+                                                                                                                                                                                                                                Atom (B (False)) -> do do !kl_if_50 <- kl_V4190h `pseq` kl_shen_terminalP kl_V4190h+                                                                                                                                                                                                                                                          case kl_if_50 of+                                                                                                                                                                                                                                                              Atom (B (True)) -> do kl_V4190 `pseq` (kl_V4191 `pseq` (kl_V4192 `pseq` kl_shen_check_stream kl_V4190 kl_V4191 kl_V4192))+                                                                                                                                                                                                                                                              Atom (B (False)) -> do do let pat_cond_51 kl_V4190h kl_V4190hh kl_V4190ht = do !appl_52 <- kl_V4190h `pseq` kl_shen_decons kl_V4190h+                                                                                                                                                                                                                                                                                                                                             appl_52 `pseq` (kl_V4190t `pseq` (kl_V4191 `pseq` (kl_V4192 `pseq` kl_shen_list_stream appl_52 kl_V4190t kl_V4191 kl_V4192)))+                                                                                                                                                                                                                                                                                            pat_cond_53 = do do let !aw_54 = Core.Types.Atom (Core.Types.UnboundSym "shen.app")+                                                                                                                                                                                                                                                                                                                !appl_55 <- kl_V4190h `pseq` applyWrapper aw_54 [kl_V4190h,+                                                                                                                                                                                                                                                                                                                                                                 Core.Types.Atom (Core.Types.Str " is not legal syntax\n"),+                                                                                                                                                                                                                                                                                                                                                                 Core.Types.Atom (Core.Types.UnboundSym "shen.a")]+                                                                                                                                                                                                                                                                                                                appl_55 `pseq` simpleError appl_55+                                                                                                                                                                                                                                                                                         in case kl_V4190h of+                                                                                                                                                                                                                                                                                                !(kl_V4190h@(Cons (!kl_V4190hh)+                                                                                                                                                                                                                                                                                                                  (!kl_V4190ht))) -> pat_cond_51 kl_V4190h kl_V4190hh kl_V4190ht+                                                                                                                                                                                                                                                                                                _ -> pat_cond_53+                                                                                                                                                                                                                                                              _ -> throwError "if: expected boolean"+                                                                                                                                                                                                                                _ -> throwError "if: expected boolean"+                                                                                                                                                                                                  _ -> throwError "if: expected boolean"+                                                                                                                                                                    _ -> throwError "if: expected boolean"+                                                                                                                  pat_cond_56 = do do let !aw_57 = Core.Types.Atom (Core.Types.UnboundSym "shen.f_error")+                                                                                                                                      applyWrapper aw_57 [ApplC (wrapNamed "shen.syntax" kl_shen_syntax)]+                                                                                                               in case kl_V4190 of+                                                                                                                      !(kl_V4190@(Cons (!kl_V4190h)+                                                                                                                                       (!kl_V4190t))) -> pat_cond_46 kl_V4190 kl_V4190h kl_V4190t+                                                                                                                      _ -> pat_cond_56+                                                                                       _ -> throwError "if: expected boolean"+                                                            _ -> throwError "if: expected boolean"++kl_shen_list_stream :: Core.Types.KLValue ->+                       Core.Types.KLValue ->+                       Core.Types.KLValue ->+                       Core.Types.KLValue ->+                       Core.Types.KLContext Core.Types.Env Core.Types.KLValue+kl_shen_list_stream (!kl_V4197) (!kl_V4198) (!kl_V4199) (!kl_V4200) = do let !appl_0 = ApplC (Func "lambda" (Context (\(!kl_Test) -> do let !appl_1 = ApplC (Func "lambda" (Context (\(!kl_Placeholder) -> do let !appl_2 = ApplC (Func "lambda" (Context (\(!kl_RunOn) -> do let !appl_3 = ApplC (Func "lambda" (Context (\(!kl_Action) -> do let !appl_4 = Atom Nil+                                                                                                                                                                                                                                                                                                                                               !appl_5 <- appl_4 `pseq` klCons (ApplC (PL "fail" kl_fail)) appl_4+                                                                                                                                                                                                                                                                                                                                               let !appl_6 = Atom Nil+                                                                                                                                                                                                                                                                                                                                               !appl_7 <- appl_5 `pseq` (appl_6 `pseq` klCons appl_5 appl_6)+                                                                                                                                                                                                                                                                                                                                               !appl_8 <- kl_Action `pseq` (appl_7 `pseq` klCons kl_Action appl_7)+                                                                                                                                                                                                                                                                                                                                               !appl_9 <- kl_Test `pseq` (appl_8 `pseq` klCons kl_Test appl_8)+                                                                                                                                                                                                                                                                                                                                               appl_9 `pseq` klCons (Core.Types.Atom (Core.Types.UnboundSym "if")) appl_9)))+                                                                                                                                                                                                                                                                              let !appl_10 = Atom Nil+                                                                                                                                                                                                                                                                              !appl_11 <- kl_V4199 `pseq` (appl_10 `pseq` klCons kl_V4199 appl_10)+                                                                                                                                                                                                                                                                              !appl_12 <- appl_11 `pseq` klCons (ApplC (wrapNamed "hd" hd)) appl_11+                                                                                                                                                                                                                                                                              let !appl_13 = Atom Nil+                                                                                                                                                                                                                                                                              !appl_14 <- appl_12 `pseq` (appl_13 `pseq` klCons appl_12 appl_13)+                                                                                                                                                                                                                                                                              !appl_15 <- appl_14 `pseq` klCons (ApplC (wrapNamed "hd" hd)) appl_14+                                                                                                                                                                                                                                                                              let !appl_16 = Atom Nil+                                                                                                                                                                                                                                                                              !appl_17 <- kl_V4199 `pseq` (appl_16 `pseq` klCons kl_V4199 appl_16)+                                                                                                                                                                                                                                                                              !appl_18 <- appl_17 `pseq` klCons (ApplC (wrapNamed "tl" tl)) appl_17+                                                                                                                                                                                                                                                                              let !appl_19 = Atom Nil+                                                                                                                                                                                                                                                                              !appl_20 <- appl_18 `pseq` (appl_19 `pseq` klCons appl_18 appl_19)+                                                                                                                                                                                                                                                                              !appl_21 <- appl_20 `pseq` klCons (ApplC (wrapNamed "hd" hd)) appl_20+                                                                                                                                                                                                                                                                              let !appl_22 = Atom Nil+                                                                                                                                                                                                                                                                              !appl_23 <- appl_21 `pseq` (appl_22 `pseq` klCons appl_21 appl_22)+                                                                                                                                                                                                                                                                              !appl_24 <- appl_15 `pseq` (appl_23 `pseq` klCons appl_15 appl_23)+                                                                                                                                                                                                                                                                              !appl_25 <- appl_24 `pseq` klCons (ApplC (wrapNamed "shen.pair" kl_shen_pair)) appl_24+                                                                                                                                                                                                                                                                              !appl_26 <- kl_V4197 `pseq` (appl_25 `pseq` (kl_Placeholder `pseq` kl_shen_syntax kl_V4197 appl_25 kl_Placeholder))+                                                                                                                                                                                                                                                                              !appl_27 <- kl_RunOn `pseq` (kl_Placeholder `pseq` (appl_26 `pseq` kl_shen_insert_runon kl_RunOn kl_Placeholder appl_26))+                                                                                                                                                                                                                                                                              appl_27 `pseq` applyWrapper appl_3 [appl_27])))+                                                                                                                                                                                                              let !appl_28 = Atom Nil+                                                                                                                                                                                                              !appl_29 <- kl_V4199 `pseq` (appl_28 `pseq` klCons kl_V4199 appl_28)+                                                                                                                                                                                                              !appl_30 <- appl_29 `pseq` klCons (ApplC (wrapNamed "hd" hd)) appl_29+                                                                                                                                                                                                              let !appl_31 = Atom Nil+                                                                                                                                                                                                              !appl_32 <- appl_30 `pseq` (appl_31 `pseq` klCons appl_30 appl_31)+                                                                                                                                                                                                              !appl_33 <- appl_32 `pseq` klCons (ApplC (wrapNamed "tl" tl)) appl_32+                                                                                                                                                                                                              let !appl_34 = Atom Nil+                                                                                                                                                                                                              !appl_35 <- kl_V4199 `pseq` (appl_34 `pseq` klCons kl_V4199 appl_34)+                                                                                                                                                                                                              !appl_36 <- appl_35 `pseq` klCons (ApplC (wrapNamed "tl" tl)) appl_35+                                                                                                                                                                                                              let !appl_37 = Atom Nil+                                                                                                                                                                                                              !appl_38 <- appl_36 `pseq` (appl_37 `pseq` klCons appl_36 appl_37)+                                                                                                                                                                                                              !appl_39 <- appl_38 `pseq` klCons (ApplC (wrapNamed "hd" hd)) appl_38+                                                                                                                                                                                                              let !appl_40 = Atom Nil+                                                                                                                                                                                                              !appl_41 <- appl_39 `pseq` (appl_40 `pseq` klCons appl_39 appl_40)+                                                                                                                                                                                                              !appl_42 <- appl_33 `pseq` (appl_41 `pseq` klCons appl_33 appl_41)+                                                                                                                                                                                                              !appl_43 <- appl_42 `pseq` klCons (ApplC (wrapNamed "shen.pair" kl_shen_pair)) appl_42+                                                                                                                                                                                                              !appl_44 <- kl_V4198 `pseq` (appl_43 `pseq` (kl_V4200 `pseq` kl_shen_syntax kl_V4198 appl_43 kl_V4200))+                                                                                                                                                                                                              appl_44 `pseq` applyWrapper appl_2 [appl_44])))+                                                                                                                                        !appl_45 <- kl_gensym (Core.Types.Atom (Core.Types.UnboundSym "shen.place"))+                                                                                                                                        appl_45 `pseq` applyWrapper appl_1 [appl_45])))+                                                                         let !appl_46 = Atom Nil+                                                                         !appl_47 <- kl_V4199 `pseq` (appl_46 `pseq` klCons kl_V4199 appl_46)+                                                                         !appl_48 <- appl_47 `pseq` klCons (ApplC (wrapNamed "hd" hd)) appl_47+                                                                         let !appl_49 = Atom Nil+                                                                         !appl_50 <- appl_48 `pseq` (appl_49 `pseq` klCons appl_48 appl_49)+                                                                         !appl_51 <- appl_50 `pseq` klCons (ApplC (wrapNamed "cons?" consP)) appl_50+                                                                         let !appl_52 = Atom Nil+                                                                         !appl_53 <- kl_V4199 `pseq` (appl_52 `pseq` klCons kl_V4199 appl_52)+                                                                         !appl_54 <- appl_53 `pseq` klCons (ApplC (wrapNamed "hd" hd)) appl_53+                                                                         let !appl_55 = Atom Nil+                                                                         !appl_56 <- appl_54 `pseq` (appl_55 `pseq` klCons appl_54 appl_55)+                                                                         !appl_57 <- appl_56 `pseq` klCons (ApplC (wrapNamed "hd" hd)) appl_56+                                                                         let !appl_58 = Atom Nil+                                                                         !appl_59 <- appl_57 `pseq` (appl_58 `pseq` klCons appl_57 appl_58)+                                                                         !appl_60 <- appl_59 `pseq` klCons (ApplC (wrapNamed "cons?" consP)) appl_59+                                                                         let !appl_61 = Atom Nil+                                                                         !appl_62 <- appl_60 `pseq` (appl_61 `pseq` klCons appl_60 appl_61)+                                                                         !appl_63 <- appl_51 `pseq` (appl_62 `pseq` klCons appl_51 appl_62)+                                                                         !appl_64 <- appl_63 `pseq` klCons (Core.Types.Atom (Core.Types.UnboundSym "and")) appl_63+                                                                         appl_64 `pseq` applyWrapper appl_0 [appl_64]++kl_shen_decons :: Core.Types.KLValue ->+                  Core.Types.KLContext Core.Types.Env Core.Types.KLValue+kl_shen_decons (!kl_V4202) = do !kl_if_0 <- let pat_cond_1 kl_V4202 kl_V4202h kl_V4202t = do !kl_if_2 <- let pat_cond_3 = do !kl_if_4 <- let pat_cond_5 kl_V4202t kl_V4202th kl_V4202tt = do !kl_if_6 <- let pat_cond_7 kl_V4202tt kl_V4202tth kl_V4202ttt = do let !appl_8 = Atom Nil+                                                                                                                                                                                                                                                                !kl_if_9 <- appl_8 `pseq` (kl_V4202tth `pseq` eq appl_8 kl_V4202tth)+                                                                                                                                                                                                                                                                !kl_if_10 <- case kl_if_9 of+                                                                                                                                                                                                                                                                                 Atom (B (True)) -> do let !appl_11 = Atom Nil+                                                                                                                                                                                                                                                                                                       !kl_if_12 <- appl_11 `pseq` (kl_V4202ttt `pseq` eq appl_11 kl_V4202ttt)+                                                                                                                                                                                                                                                                                                       case kl_if_12 of+                                                                                                                                                                                                                                                                                                           Atom (B (True)) -> do return (Atom (B True))+                                                                                                                                                                                                                                                                                                           Atom (B (False)) -> do do return (Atom (B False))+                                                                                                                                                                                                                                                                                                           _ -> throwError "if: expected boolean"+                                                                                                                                                                                                                                                                                 Atom (B (False)) -> do do return (Atom (B False))+                                                                                                                                                                                                                                                                                 _ -> throwError "if: expected boolean"+                                                                                                                                                                                                                                                                case kl_if_10 of+                                                                                                                                                                                                                                                                    Atom (B (True)) -> do return (Atom (B True))+                                                                                                                                                                                                                                                                    Atom (B (False)) -> do do return (Atom (B False))+                                                                                                                                                                                                                                                                    _ -> throwError "if: expected boolean"+                                                                                                                                                                                                             pat_cond_13 = do do return (Atom (B False))+                                                                                                                                                                                                          in case kl_V4202tt of+                                                                                                                                                                                                                 !(kl_V4202tt@(Cons (!kl_V4202tth)+                                                                                                                                                                                                                                    (!kl_V4202ttt))) -> pat_cond_7 kl_V4202tt kl_V4202tth kl_V4202ttt+                                                                                                                                                                                                                 _ -> pat_cond_13+                                                                                                                                                                                             case kl_if_6 of+                                                                                                                                                                                                 Atom (B (True)) -> do return (Atom (B True))+                                                                                                                                                                                                 Atom (B (False)) -> do do return (Atom (B False))+                                                                                                                                                                                                 _ -> throwError "if: expected boolean"+                                                                                                                                             pat_cond_14 = do do return (Atom (B False))+                                                                                                                                          in case kl_V4202t of+                                                                                                                                                 !(kl_V4202t@(Cons (!kl_V4202th)+                                                                                                                                                                   (!kl_V4202tt))) -> pat_cond_5 kl_V4202t kl_V4202th kl_V4202tt+                                                                                                                                                 _ -> pat_cond_14+                                                                                                                             case kl_if_4 of+                                                                                                                                 Atom (B (True)) -> do return (Atom (B True))+                                                                                                                                 Atom (B (False)) -> do do return (Atom (B False))+                                                                                                                                 _ -> throwError "if: expected boolean"+                                                                                                             pat_cond_15 = do do return (Atom (B False))+                                                                                                          in case kl_V4202h of+                                                                                                                 kl_V4202h@(Atom (UnboundSym "cons")) -> pat_cond_3+                                                                                                                 kl_V4202h@(ApplC (PL "cons"+                                                                                                                                      _)) -> pat_cond_3+                                                                                                                 kl_V4202h@(ApplC (Func "cons"+                                                                                                                                        _)) -> pat_cond_3+                                                                                                                 _ -> pat_cond_15+                                                                                             case kl_if_2 of+                                                                                                 Atom (B (True)) -> do return (Atom (B True))+                                                                                                 Atom (B (False)) -> do do return (Atom (B False))+                                                                                                 _ -> throwError "if: expected boolean"+                                                pat_cond_16 = do do return (Atom (B False))+                                             in case kl_V4202 of+                                                    !(kl_V4202@(Cons (!kl_V4202h)+                                                                     (!kl_V4202t))) -> pat_cond_1 kl_V4202 kl_V4202h kl_V4202t+                                                    _ -> pat_cond_16+                                case kl_if_0 of+                                    Atom (B (True)) -> do !appl_17 <- kl_V4202 `pseq` tl kl_V4202+                                                          !appl_18 <- appl_17 `pseq` hd appl_17+                                                          let !appl_19 = Atom Nil+                                                          appl_18 `pseq` (appl_19 `pseq` klCons appl_18 appl_19)+                                    Atom (B (False)) -> do !kl_if_20 <- let pat_cond_21 kl_V4202 kl_V4202h kl_V4202t = do !kl_if_22 <- let pat_cond_23 = do !kl_if_24 <- let pat_cond_25 kl_V4202t kl_V4202th kl_V4202tt = do !kl_if_26 <- let pat_cond_27 kl_V4202tt kl_V4202tth kl_V4202ttt = do let !appl_28 = Atom Nil+                                                                                                                                                                                                                                                                                                   !kl_if_29 <- appl_28 `pseq` (kl_V4202ttt `pseq` eq appl_28 kl_V4202ttt)+                                                                                                                                                                                                                                                                                                   case kl_if_29 of+                                                                                                                                                                                                                                                                                                       Atom (B (True)) -> do return (Atom (B True))+                                                                                                                                                                                                                                                                                                       Atom (B (False)) -> do do return (Atom (B False))+                                                                                                                                                                                                                                                                                                       _ -> throwError "if: expected boolean"+                                                                                                                                                                                                                                               pat_cond_30 = do do return (Atom (B False))+                                                                                                                                                                                                                                            in case kl_V4202tt of+                                                                                                                                                                                                                                                   !(kl_V4202tt@(Cons (!kl_V4202tth)+                                                                                                                                                                                                                                                                      (!kl_V4202ttt))) -> pat_cond_27 kl_V4202tt kl_V4202tth kl_V4202ttt+                                                                                                                                                                                                                                                   _ -> pat_cond_30+                                                                                                                                                                                                                              case kl_if_26 of+                                                                                                                                                                                                                                  Atom (B (True)) -> do return (Atom (B True))+                                                                                                                                                                                                                                  Atom (B (False)) -> do do return (Atom (B False))+                                                                                                                                                                                                                                  _ -> throwError "if: expected boolean"+                                                                                                                                                                             pat_cond_31 = do do return (Atom (B False))+                                                                                                                                                                          in case kl_V4202t of+                                                                                                                                                                                 !(kl_V4202t@(Cons (!kl_V4202th)+                                                                                                                                                                                                   (!kl_V4202tt))) -> pat_cond_25 kl_V4202t kl_V4202th kl_V4202tt+                                                                                                                                                                                 _ -> pat_cond_31+                                                                                                                                                            case kl_if_24 of+                                                                                                                                                                Atom (B (True)) -> do return (Atom (B True))+                                                                                                                                                                Atom (B (False)) -> do do return (Atom (B False))+                                                                                                                                                                _ -> throwError "if: expected boolean"+                                                                                                                                           pat_cond_32 = do do return (Atom (B False))+                                                                                                                                        in case kl_V4202h of+                                                                                                                                               kl_V4202h@(Atom (UnboundSym "cons")) -> pat_cond_23+                                                                                                                                               kl_V4202h@(ApplC (PL "cons"+                                                                                                                                                                    _)) -> pat_cond_23+                                                                                                                                               kl_V4202h@(ApplC (Func "cons"+                                                                                                                                                                      _)) -> pat_cond_23+                                                                                                                                               _ -> pat_cond_32+                                                                                                                          case kl_if_22 of+                                                                                                                              Atom (B (True)) -> do return (Atom (B True))+                                                                                                                              Atom (B (False)) -> do do return (Atom (B False))+                                                                                                                              _ -> throwError "if: expected boolean"+                                                                            pat_cond_33 = do do return (Atom (B False))+                                                                         in case kl_V4202 of+                                                                                !(kl_V4202@(Cons (!kl_V4202h)+                                                                                                 (!kl_V4202t))) -> pat_cond_21 kl_V4202 kl_V4202h kl_V4202t+                                                                                _ -> pat_cond_33+                                                           case kl_if_20 of+                                                               Atom (B (True)) -> do !appl_34 <- kl_V4202 `pseq` tl kl_V4202+                                                                                     !appl_35 <- appl_34 `pseq` hd appl_34+                                                                                     !appl_36 <- kl_V4202 `pseq` tl kl_V4202+                                                                                     !appl_37 <- appl_36 `pseq` tl appl_36+                                                                                     !appl_38 <- appl_37 `pseq` hd appl_37+                                                                                     !appl_39 <- appl_38 `pseq` kl_shen_decons appl_38+                                                                                     appl_35 `pseq` (appl_39 `pseq` klCons appl_35 appl_39)+                                                               Atom (B (False)) -> do do return kl_V4202+                                                               _ -> throwError "if: expected boolean"+                                    _ -> throwError "if: expected boolean"++kl_shen_insert_runon :: Core.Types.KLValue ->+                        Core.Types.KLValue ->+                        Core.Types.KLValue ->+                        Core.Types.KLContext Core.Types.Env Core.Types.KLValue+kl_shen_insert_runon (!kl_V4217) (!kl_V4218) (!kl_V4219) = do !kl_if_0 <- let pat_cond_1 kl_V4219 kl_V4219h kl_V4219t = do !kl_if_2 <- let pat_cond_3 = do !kl_if_4 <- let pat_cond_5 kl_V4219t kl_V4219th kl_V4219tt = do !kl_if_6 <- let pat_cond_7 kl_V4219tt kl_V4219tth kl_V4219ttt = do let !appl_8 = Atom Nil+                                                                                                                                                                                                                                                                                              !kl_if_9 <- appl_8 `pseq` (kl_V4219ttt `pseq` eq appl_8 kl_V4219ttt)+                                                                                                                                                                                                                                                                                              !kl_if_10 <- case kl_if_9 of+                                                                                                                                                                                                                                                                                                               Atom (B (True)) -> do !kl_if_11 <- kl_V4219tth `pseq` (kl_V4218 `pseq` eq kl_V4219tth kl_V4218)+                                                                                                                                                                                                                                                                                                                                     case kl_if_11 of+                                                                                                                                                                                                                                                                                                                                         Atom (B (True)) -> do return (Atom (B True))+                                                                                                                                                                                                                                                                                                                                         Atom (B (False)) -> do do return (Atom (B False))+                                                                                                                                                                                                                                                                                                                                         _ -> throwError "if: expected boolean"+                                                                                                                                                                                                                                                                                                               Atom (B (False)) -> do do return (Atom (B False))+                                                                                                                                                                                                                                                                                                               _ -> throwError "if: expected boolean"+                                                                                                                                                                                                                                                                                              case kl_if_10 of+                                                                                                                                                                                                                                                                                                  Atom (B (True)) -> do return (Atom (B True))+                                                                                                                                                                                                                                                                                                  Atom (B (False)) -> do do return (Atom (B False))+                                                                                                                                                                                                                                                                                                  _ -> throwError "if: expected boolean"+                                                                                                                                                                                                                                           pat_cond_12 = do do return (Atom (B False))+                                                                                                                                                                                                                                        in case kl_V4219tt of+                                                                                                                                                                                                                                               !(kl_V4219tt@(Cons (!kl_V4219tth)+                                                                                                                                                                                                                                                                  (!kl_V4219ttt))) -> pat_cond_7 kl_V4219tt kl_V4219tth kl_V4219ttt+                                                                                                                                                                                                                                               _ -> pat_cond_12+                                                                                                                                                                                                                           case kl_if_6 of+                                                                                                                                                                                                                               Atom (B (True)) -> do return (Atom (B True))+                                                                                                                                                                                                                               Atom (B (False)) -> do do return (Atom (B False))+                                                                                                                                                                                                                               _ -> throwError "if: expected boolean"+                                                                                                                                                                           pat_cond_13 = do do return (Atom (B False))+                                                                                                                                                                        in case kl_V4219t of+                                                                                                                                                                               !(kl_V4219t@(Cons (!kl_V4219th)+                                                                                                                                                                                                 (!kl_V4219tt))) -> pat_cond_5 kl_V4219t kl_V4219th kl_V4219tt+                                                                                                                                                                               _ -> pat_cond_13+                                                                                                                                                           case kl_if_4 of+                                                                                                                                                               Atom (B (True)) -> do return (Atom (B True))+                                                                                                                                                               Atom (B (False)) -> do do return (Atom (B False))+                                                                                                                                                               _ -> throwError "if: expected boolean"+                                                                                                                                           pat_cond_14 = do do return (Atom (B False))+                                                                                                                                        in case kl_V4219h of+                                                                                                                                               kl_V4219h@(Atom (UnboundSym "shen.pair")) -> pat_cond_3+                                                                                                                                               kl_V4219h@(ApplC (PL "shen.pair"+                                                                                                                                                                    _)) -> pat_cond_3+                                                                                                                                               kl_V4219h@(ApplC (Func "shen.pair"+                                                                                                                                                                      _)) -> pat_cond_3+                                                                                                                                               _ -> pat_cond_14+                                                                                                                           case kl_if_2 of+                                                                                                                               Atom (B (True)) -> do return (Atom (B True))+                                                                                                                               Atom (B (False)) -> do do return (Atom (B False))+                                                                                                                               _ -> throwError "if: expected boolean"+                                                                              pat_cond_15 = do do return (Atom (B False))+                                                                           in case kl_V4219 of+                                                                                  !(kl_V4219@(Cons (!kl_V4219h)+                                                                                                   (!kl_V4219t))) -> pat_cond_1 kl_V4219 kl_V4219h kl_V4219t+                                                                                  _ -> pat_cond_15+                                                              case kl_if_0 of+                                                                  Atom (B (True)) -> do return kl_V4217+                                                                  Atom (B (False)) -> do let pat_cond_16 kl_V4219 kl_V4219h kl_V4219t = do let !appl_17 = ApplC (Func "lambda" (Context (\(!kl_Z) -> do kl_V4217 `pseq` (kl_V4218 `pseq` (kl_Z `pseq` kl_shen_insert_runon kl_V4217 kl_V4218 kl_Z)))))+                                                                                                                                           appl_17 `pseq` (kl_V4219 `pseq` kl_map appl_17 kl_V4219)+                                                                                             pat_cond_18 = do do return kl_V4219+                                                                                          in case kl_V4219 of+                                                                                                 !(kl_V4219@(Cons (!kl_V4219h)+                                                                                                                  (!kl_V4219t))) -> pat_cond_16 kl_V4219 kl_V4219h kl_V4219t+                                                                                                 _ -> pat_cond_18+                                                                  _ -> throwError "if: expected boolean"++kl_shen_strip_pathname :: Core.Types.KLValue ->+                          Core.Types.KLContext Core.Types.Env Core.Types.KLValue+kl_shen_strip_pathname (!kl_V4225) = do !appl_0 <- kl_V4225 `pseq` kl_elementP (Core.Types.Atom (Core.Types.Str ".")) kl_V4225+                                        !kl_if_1 <- appl_0 `pseq` kl_not appl_0+                                        case kl_if_1 of+                                            Atom (B (True)) -> do return kl_V4225+                                            Atom (B (False)) -> do let pat_cond_2 kl_V4225 kl_V4225h kl_V4225t = do kl_V4225t `pseq` kl_shen_strip_pathname kl_V4225t+                                                                       pat_cond_3 = do do let !aw_4 = Core.Types.Atom (Core.Types.UnboundSym "shen.f_error")+                                                                                          applyWrapper aw_4 [ApplC (wrapNamed "shen.strip-pathname" kl_shen_strip_pathname)]+                                                                    in case kl_V4225 of+                                                                           !(kl_V4225@(Cons (!kl_V4225h)+                                                                                            (!kl_V4225t))) -> pat_cond_2 kl_V4225 kl_V4225h kl_V4225t+                                                                           _ -> pat_cond_3+                                            _ -> throwError "if: expected boolean"++kl_shen_recursive_descent :: Core.Types.KLValue ->+                             Core.Types.KLValue ->+                             Core.Types.KLValue ->+                             Core.Types.KLContext Core.Types.Env Core.Types.KLValue+kl_shen_recursive_descent (!kl_V4229) (!kl_V4230) (!kl_V4231) = do let pat_cond_0 kl_V4229 kl_V4229h kl_V4229t = do let !appl_1 = ApplC (Func "lambda" (Context (\(!kl_Test) -> do let !appl_2 = ApplC (Func "lambda" (Context (\(!kl_Action) -> do let !appl_3 = ApplC (Func "lambda" (Context (\(!kl_Else) -> do !appl_4 <- kl_V4229h `pseq` kl_concat (Core.Types.Atom (Core.Types.UnboundSym "Parse_")) kl_V4229h+                                                                                                                                                                                                                                                                                                                   let !appl_5 = Atom Nil+                                                                                                                                                                                                                                                                                                                   !appl_6 <- appl_5 `pseq` klCons (ApplC (PL "fail" kl_fail)) appl_5+                                                                                                                                                                                                                                                                                                                   !appl_7 <- kl_V4229h `pseq` kl_concat (Core.Types.Atom (Core.Types.UnboundSym "Parse_")) kl_V4229h+                                                                                                                                                                                                                                                                                                                   let !appl_8 = Atom Nil+                                                                                                                                                                                                                                                                                                                   !appl_9 <- appl_7 `pseq` (appl_8 `pseq` klCons appl_7 appl_8)+                                                                                                                                                                                                                                                                                                                   !appl_10 <- appl_6 `pseq` (appl_9 `pseq` klCons appl_6 appl_9)+                                                                                                                                                                                                                                                                                                                   !appl_11 <- appl_10 `pseq` klCons (ApplC (wrapNamed "=" eq)) appl_10+                                                                                                                                                                                                                                                                                                                   let !appl_12 = Atom Nil+                                                                                                                                                                                                                                                                                                                   !appl_13 <- appl_11 `pseq` (appl_12 `pseq` klCons appl_11 appl_12)+                                                                                                                                                                                                                                                                                                                   !appl_14 <- appl_13 `pseq` klCons (ApplC (wrapNamed "not" kl_not)) appl_13+                                                                                                                                                                                                                                                                                                                   let !appl_15 = Atom Nil+                                                                                                                                                                                                                                                                                                                   !appl_16 <- kl_Else `pseq` (appl_15 `pseq` klCons kl_Else appl_15)+                                                                                                                                                                                                                                                                                                                   !appl_17 <- kl_Action `pseq` (appl_16 `pseq` klCons kl_Action appl_16)+                                                                                                                                                                                                                                                                                                                   !appl_18 <- appl_14 `pseq` (appl_17 `pseq` klCons appl_14 appl_17)+                                                                                                                                                                                                                                                                                                                   !appl_19 <- appl_18 `pseq` klCons (Core.Types.Atom (Core.Types.UnboundSym "if")) appl_18+                                                                                                                                                                                                                                                                                                                   let !appl_20 = Atom Nil+                                                                                                                                                                                                                                                                                                                   !appl_21 <- appl_19 `pseq` (appl_20 `pseq` klCons appl_19 appl_20)+                                                                                                                                                                                                                                                                                                                   !appl_22 <- kl_Test `pseq` (appl_21 `pseq` klCons kl_Test appl_21)+                                                                                                                                                                                                                                                                                                                   !appl_23 <- appl_4 `pseq` (appl_22 `pseq` klCons appl_4 appl_22)+                                                                                                                                                                                                                                                                                                                   appl_23 `pseq` klCons (Core.Types.Atom (Core.Types.UnboundSym "let")) appl_23)))+                                                                                                                                                                                                                                                    let !appl_24 = Atom Nil+                                                                                                                                                                                                                                                    !appl_25 <- appl_24 `pseq` klCons (ApplC (PL "fail" kl_fail)) appl_24+                                                                                                                                                                                                                                                    appl_25 `pseq` applyWrapper appl_3 [appl_25])))+                                                                                                                                                                                   !appl_26 <- kl_V4229h `pseq` kl_concat (Core.Types.Atom (Core.Types.UnboundSym "Parse_")) kl_V4229h+                                                                                                                                                                                   !appl_27 <- kl_V4229t `pseq` (appl_26 `pseq` (kl_V4231 `pseq` kl_shen_syntax kl_V4229t appl_26 kl_V4231))+                                                                                                                                                                                   appl_27 `pseq` applyWrapper appl_2 [appl_27])))+                                                                                                                    let !appl_28 = Atom Nil+                                                                                                                    !appl_29 <- kl_V4230 `pseq` (appl_28 `pseq` klCons kl_V4230 appl_28)+                                                                                                                    !appl_30 <- kl_V4229h `pseq` (appl_29 `pseq` klCons kl_V4229h appl_29)+                                                                                                                    appl_30 `pseq` applyWrapper appl_1 [appl_30]+                                                                       pat_cond_31 = do do let !aw_32 = Core.Types.Atom (Core.Types.UnboundSym "shen.f_error")+                                                                                           applyWrapper aw_32 [ApplC (wrapNamed "shen.recursive_descent" kl_shen_recursive_descent)]+                                                                    in case kl_V4229 of+                                                                           !(kl_V4229@(Cons (!kl_V4229h)+                                                                                            (!kl_V4229t))) -> pat_cond_0 kl_V4229 kl_V4229h kl_V4229t+                                                                           _ -> pat_cond_31++kl_shen_variable_match :: Core.Types.KLValue ->+                          Core.Types.KLValue ->+                          Core.Types.KLValue ->+                          Core.Types.KLContext Core.Types.Env Core.Types.KLValue+kl_shen_variable_match (!kl_V4235) (!kl_V4236) (!kl_V4237) = do let pat_cond_0 kl_V4235 kl_V4235h kl_V4235t = do let !appl_1 = ApplC (Func "lambda" (Context (\(!kl_Test) -> do let !appl_2 = ApplC (Func "lambda" (Context (\(!kl_Action) -> do let !appl_3 = ApplC (Func "lambda" (Context (\(!kl_Else) -> do let !appl_4 = Atom Nil+                                                                                                                                                                                                                                                                                                                !appl_5 <- kl_Else `pseq` (appl_4 `pseq` klCons kl_Else appl_4)+                                                                                                                                                                                                                                                                                                                !appl_6 <- kl_Action `pseq` (appl_5 `pseq` klCons kl_Action appl_5)+                                                                                                                                                                                                                                                                                                                !appl_7 <- kl_Test `pseq` (appl_6 `pseq` klCons kl_Test appl_6)+                                                                                                                                                                                                                                                                                                                appl_7 `pseq` klCons (Core.Types.Atom (Core.Types.UnboundSym "if")) appl_7)))+                                                                                                                                                                                                                                                 let !appl_8 = Atom Nil+                                                                                                                                                                                                                                                 !appl_9 <- appl_8 `pseq` klCons (ApplC (PL "fail" kl_fail)) appl_8+                                                                                                                                                                                                                                                 appl_9 `pseq` applyWrapper appl_3 [appl_9])))+                                                                                                                                                                                !appl_10 <- kl_V4235h `pseq` kl_concat (Core.Types.Atom (Core.Types.UnboundSym "Parse_")) kl_V4235h+                                                                                                                                                                                let !appl_11 = Atom Nil+                                                                                                                                                                                !appl_12 <- kl_V4236 `pseq` (appl_11 `pseq` klCons kl_V4236 appl_11)+                                                                                                                                                                                !appl_13 <- appl_12 `pseq` klCons (ApplC (wrapNamed "hd" hd)) appl_12+                                                                                                                                                                                let !appl_14 = Atom Nil+                                                                                                                                                                                !appl_15 <- appl_13 `pseq` (appl_14 `pseq` klCons appl_13 appl_14)+                                                                                                                                                                                !appl_16 <- appl_15 `pseq` klCons (ApplC (wrapNamed "hd" hd)) appl_15+                                                                                                                                                                                let !appl_17 = Atom Nil+                                                                                                                                                                                !appl_18 <- kl_V4236 `pseq` (appl_17 `pseq` klCons kl_V4236 appl_17)+                                                                                                                                                                                !appl_19 <- appl_18 `pseq` klCons (ApplC (wrapNamed "hd" hd)) appl_18+                                                                                                                                                                                let !appl_20 = Atom Nil+                                                                                                                                                                                !appl_21 <- appl_19 `pseq` (appl_20 `pseq` klCons appl_19 appl_20)+                                                                                                                                                                                !appl_22 <- appl_21 `pseq` klCons (ApplC (wrapNamed "tl" tl)) appl_21+                                                                                                                                                                                let !appl_23 = Atom Nil+                                                                                                                                                                                !appl_24 <- kl_V4236 `pseq` (appl_23 `pseq` klCons kl_V4236 appl_23)+                                                                                                                                                                                !appl_25 <- appl_24 `pseq` klCons (ApplC (wrapNamed "shen.hdtl" kl_shen_hdtl)) appl_24+                                                                                                                                                                                let !appl_26 = Atom Nil+                                                                                                                                                                                !appl_27 <- appl_25 `pseq` (appl_26 `pseq` klCons appl_25 appl_26)+                                                                                                                                                                                !appl_28 <- appl_22 `pseq` (appl_27 `pseq` klCons appl_22 appl_27)+                                                                                                                                                                                !appl_29 <- appl_28 `pseq` klCons (ApplC (wrapNamed "shen.pair" kl_shen_pair)) appl_28+                                                                                                                                                                                !appl_30 <- kl_V4235t `pseq` (appl_29 `pseq` (kl_V4237 `pseq` kl_shen_syntax kl_V4235t appl_29 kl_V4237))+                                                                                                                                                                                let !appl_31 = Atom Nil+                                                                                                                                                                                !appl_32 <- appl_30 `pseq` (appl_31 `pseq` klCons appl_30 appl_31)+                                                                                                                                                                                !appl_33 <- appl_16 `pseq` (appl_32 `pseq` klCons appl_16 appl_32)+                                                                                                                                                                                !appl_34 <- appl_10 `pseq` (appl_33 `pseq` klCons appl_10 appl_33)+                                                                                                                                                                                !appl_35 <- appl_34 `pseq` klCons (Core.Types.Atom (Core.Types.UnboundSym "let")) appl_34+                                                                                                                                                                                appl_35 `pseq` applyWrapper appl_2 [appl_35])))+                                                                                                                 let !appl_36 = Atom Nil+                                                                                                                 !appl_37 <- kl_V4236 `pseq` (appl_36 `pseq` klCons kl_V4236 appl_36)+                                                                                                                 !appl_38 <- appl_37 `pseq` klCons (ApplC (wrapNamed "hd" hd)) appl_37+                                                                                                                 let !appl_39 = Atom Nil+                                                                                                                 !appl_40 <- appl_38 `pseq` (appl_39 `pseq` klCons appl_38 appl_39)+                                                                                                                 !appl_41 <- appl_40 `pseq` klCons (ApplC (wrapNamed "cons?" consP)) appl_40+                                                                                                                 appl_41 `pseq` applyWrapper appl_1 [appl_41]+                                                                    pat_cond_42 = do do let !aw_43 = Core.Types.Atom (Core.Types.UnboundSym "shen.f_error")+                                                                                        applyWrapper aw_43 [ApplC (wrapNamed "shen.variable-match" kl_shen_variable_match)]+                                                                 in case kl_V4235 of+                                                                        !(kl_V4235@(Cons (!kl_V4235h)+                                                                                         (!kl_V4235t))) -> pat_cond_0 kl_V4235 kl_V4235h kl_V4235t+                                                                        _ -> pat_cond_42++kl_shen_terminalP :: Core.Types.KLValue ->+                     Core.Types.KLContext Core.Types.Env Core.Types.KLValue+kl_shen_terminalP (!kl_V4247) = do let pat_cond_0 kl_V4247 kl_V4247h kl_V4247t = do return (Atom (B False))+                                       pat_cond_1 = do !kl_if_2 <- kl_V4247 `pseq` kl_variableP kl_V4247+                                                       case kl_if_2 of+                                                           Atom (B (True)) -> do return (Atom (B False))+                                                           Atom (B (False)) -> do do return (Atom (B True))+                                                           _ -> throwError "if: expected boolean"+                                    in case kl_V4247 of+                                           !(kl_V4247@(Cons (!kl_V4247h)+                                                            (!kl_V4247t))) -> pat_cond_0 kl_V4247 kl_V4247h kl_V4247t+                                           _ -> pat_cond_1++kl_shen_jump_streamP :: Core.Types.KLValue ->+                        Core.Types.KLContext Core.Types.Env Core.Types.KLValue+kl_shen_jump_streamP (!kl_V4253) = do let pat_cond_0 = do return (Atom (B True))+                                          pat_cond_1 = do do return (Atom (B False))+                                       in case kl_V4253 of+                                              kl_V4253@(Atom (UnboundSym "_")) -> pat_cond_0+                                              kl_V4253@(ApplC (PL "_" _)) -> pat_cond_0+                                              kl_V4253@(ApplC (Func "_" _)) -> pat_cond_0+                                              _ -> pat_cond_1++kl_shen_check_stream :: Core.Types.KLValue ->+                        Core.Types.KLValue ->+                        Core.Types.KLValue ->+                        Core.Types.KLContext Core.Types.Env Core.Types.KLValue+kl_shen_check_stream (!kl_V4257) (!kl_V4258) (!kl_V4259) = do let pat_cond_0 kl_V4257 kl_V4257h kl_V4257t = do let !appl_1 = ApplC (Func "lambda" (Context (\(!kl_Test) -> do let !appl_2 = ApplC (Func "lambda" (Context (\(!kl_Action) -> do let !appl_3 = ApplC (Func "lambda" (Context (\(!kl_Else) -> do let !appl_4 = Atom Nil+                                                                                                                                                                                                                                                                                                              !appl_5 <- kl_Else `pseq` (appl_4 `pseq` klCons kl_Else appl_4)+                                                                                                                                                                                                                                                                                                              !appl_6 <- kl_Action `pseq` (appl_5 `pseq` klCons kl_Action appl_5)+                                                                                                                                                                                                                                                                                                              !appl_7 <- kl_Test `pseq` (appl_6 `pseq` klCons kl_Test appl_6)+                                                                                                                                                                                                                                                                                                              appl_7 `pseq` klCons (Core.Types.Atom (Core.Types.UnboundSym "if")) appl_7)))+                                                                                                                                                                                                                                               let !appl_8 = Atom Nil+                                                                                                                                                                                                                                               !appl_9 <- appl_8 `pseq` klCons (ApplC (PL "fail" kl_fail)) appl_8+                                                                                                                                                                                                                                               appl_9 `pseq` applyWrapper appl_3 [appl_9])))+                                                                                                                                                                              let !appl_10 = Atom Nil+                                                                                                                                                                              !appl_11 <- kl_V4258 `pseq` (appl_10 `pseq` klCons kl_V4258 appl_10)+                                                                                                                                                                              !appl_12 <- appl_11 `pseq` klCons (ApplC (wrapNamed "hd" hd)) appl_11+                                                                                                                                                                              let !appl_13 = Atom Nil+                                                                                                                                                                              !appl_14 <- appl_12 `pseq` (appl_13 `pseq` klCons appl_12 appl_13)+                                                                                                                                                                              !appl_15 <- appl_14 `pseq` klCons (ApplC (wrapNamed "tl" tl)) appl_14+                                                                                                                                                                              let !appl_16 = Atom Nil+                                                                                                                                                                              !appl_17 <- kl_V4258 `pseq` (appl_16 `pseq` klCons kl_V4258 appl_16)+                                                                                                                                                                              !appl_18 <- appl_17 `pseq` klCons (ApplC (wrapNamed "shen.hdtl" kl_shen_hdtl)) appl_17+                                                                                                                                                                              let !appl_19 = Atom Nil+                                                                                                                                                                              !appl_20 <- appl_18 `pseq` (appl_19 `pseq` klCons appl_18 appl_19)+                                                                                                                                                                              !appl_21 <- appl_15 `pseq` (appl_20 `pseq` klCons appl_15 appl_20)+                                                                                                                                                                              !appl_22 <- appl_21 `pseq` klCons (ApplC (wrapNamed "shen.pair" kl_shen_pair)) appl_21+                                                                                                                                                                              !appl_23 <- kl_V4257t `pseq` (appl_22 `pseq` (kl_V4259 `pseq` kl_shen_syntax kl_V4257t appl_22 kl_V4259))+                                                                                                                                                                              appl_23 `pseq` applyWrapper appl_2 [appl_23])))+                                                                                                               let !appl_24 = Atom Nil+                                                                                                               !appl_25 <- kl_V4258 `pseq` (appl_24 `pseq` klCons kl_V4258 appl_24)+                                                                                                               !appl_26 <- appl_25 `pseq` klCons (ApplC (wrapNamed "hd" hd)) appl_25+                                                                                                               let !appl_27 = Atom Nil+                                                                                                               !appl_28 <- appl_26 `pseq` (appl_27 `pseq` klCons appl_26 appl_27)+                                                                                                               !appl_29 <- appl_28 `pseq` klCons (ApplC (wrapNamed "cons?" consP)) appl_28+                                                                                                               let !appl_30 = Atom Nil+                                                                                                               !appl_31 <- kl_V4258 `pseq` (appl_30 `pseq` klCons kl_V4258 appl_30)+                                                                                                               !appl_32 <- appl_31 `pseq` klCons (ApplC (wrapNamed "hd" hd)) appl_31+                                                                                                               let !appl_33 = Atom Nil+                                                                                                               !appl_34 <- appl_32 `pseq` (appl_33 `pseq` klCons appl_32 appl_33)+                                                                                                               !appl_35 <- appl_34 `pseq` klCons (ApplC (wrapNamed "hd" hd)) appl_34+                                                                                                               let !appl_36 = Atom Nil+                                                                                                               !appl_37 <- appl_35 `pseq` (appl_36 `pseq` klCons appl_35 appl_36)+                                                                                                               !appl_38 <- kl_V4257h `pseq` (appl_37 `pseq` klCons kl_V4257h appl_37)+                                                                                                               !appl_39 <- appl_38 `pseq` klCons (ApplC (wrapNamed "=" eq)) appl_38+                                                                                                               let !appl_40 = Atom Nil+                                                                                                               !appl_41 <- appl_39 `pseq` (appl_40 `pseq` klCons appl_39 appl_40)+                                                                                                               !appl_42 <- appl_29 `pseq` (appl_41 `pseq` klCons appl_29 appl_41)+                                                                                                               !appl_43 <- appl_42 `pseq` klCons (Core.Types.Atom (Core.Types.UnboundSym "and")) appl_42+                                                                                                               appl_43 `pseq` applyWrapper appl_1 [appl_43]+                                                                  pat_cond_44 = do do let !aw_45 = Core.Types.Atom (Core.Types.UnboundSym "shen.f_error")+                                                                                      applyWrapper aw_45 [ApplC (wrapNamed "shen.check_stream" kl_shen_check_stream)]+                                                               in case kl_V4257 of+                                                                      !(kl_V4257@(Cons (!kl_V4257h)+                                                                                       (!kl_V4257t))) -> pat_cond_0 kl_V4257 kl_V4257h kl_V4257t+                                                                      _ -> pat_cond_44++kl_shen_jump_stream :: Core.Types.KLValue ->+                       Core.Types.KLValue ->+                       Core.Types.KLValue ->+                       Core.Types.KLContext Core.Types.Env Core.Types.KLValue+kl_shen_jump_stream (!kl_V4263) (!kl_V4264) (!kl_V4265) = do let pat_cond_0 kl_V4263 kl_V4263h kl_V4263t = do let !appl_1 = ApplC (Func "lambda" (Context (\(!kl_Test) -> do let !appl_2 = ApplC (Func "lambda" (Context (\(!kl_Action) -> do let !appl_3 = ApplC (Func "lambda" (Context (\(!kl_Else) -> do let !appl_4 = Atom Nil+                                                                                                                                                                                                                                                                                                             !appl_5 <- kl_Else `pseq` (appl_4 `pseq` klCons kl_Else appl_4)+                                                                                                                                                                                                                                                                                                             !appl_6 <- kl_Action `pseq` (appl_5 `pseq` klCons kl_Action appl_5)+                                                                                                                                                                                                                                                                                                             !appl_7 <- kl_Test `pseq` (appl_6 `pseq` klCons kl_Test appl_6)+                                                                                                                                                                                                                                                                                                             appl_7 `pseq` klCons (Core.Types.Atom (Core.Types.UnboundSym "if")) appl_7)))+                                                                                                                                                                                                                                              let !appl_8 = Atom Nil+                                                                                                                                                                                                                                              !appl_9 <- appl_8 `pseq` klCons (ApplC (PL "fail" kl_fail)) appl_8+                                                                                                                                                                                                                                              appl_9 `pseq` applyWrapper appl_3 [appl_9])))+                                                                                                                                                                             let !appl_10 = Atom Nil+                                                                                                                                                                             !appl_11 <- kl_V4264 `pseq` (appl_10 `pseq` klCons kl_V4264 appl_10)+                                                                                                                                                                             !appl_12 <- appl_11 `pseq` klCons (ApplC (wrapNamed "hd" hd)) appl_11+                                                                                                                                                                             let !appl_13 = Atom Nil+                                                                                                                                                                             !appl_14 <- appl_12 `pseq` (appl_13 `pseq` klCons appl_12 appl_13)+                                                                                                                                                                             !appl_15 <- appl_14 `pseq` klCons (ApplC (wrapNamed "tl" tl)) appl_14+                                                                                                                                                                             let !appl_16 = Atom Nil+                                                                                                                                                                             !appl_17 <- kl_V4264 `pseq` (appl_16 `pseq` klCons kl_V4264 appl_16)+                                                                                                                                                                             !appl_18 <- appl_17 `pseq` klCons (ApplC (wrapNamed "shen.hdtl" kl_shen_hdtl)) appl_17+                                                                                                                                                                             let !appl_19 = Atom Nil+                                                                                                                                                                             !appl_20 <- appl_18 `pseq` (appl_19 `pseq` klCons appl_18 appl_19)+                                                                                                                                                                             !appl_21 <- appl_15 `pseq` (appl_20 `pseq` klCons appl_15 appl_20)+                                                                                                                                                                             !appl_22 <- appl_21 `pseq` klCons (ApplC (wrapNamed "shen.pair" kl_shen_pair)) appl_21+                                                                                                                                                                             !appl_23 <- kl_V4263t `pseq` (appl_22 `pseq` (kl_V4265 `pseq` kl_shen_syntax kl_V4263t appl_22 kl_V4265))+                                                                                                                                                                             appl_23 `pseq` applyWrapper appl_2 [appl_23])))+                                                                                                              let !appl_24 = Atom Nil+                                                                                                              !appl_25 <- kl_V4264 `pseq` (appl_24 `pseq` klCons kl_V4264 appl_24)+                                                                                                              !appl_26 <- appl_25 `pseq` klCons (ApplC (wrapNamed "hd" hd)) appl_25+                                                                                                              let !appl_27 = Atom Nil+                                                                                                              !appl_28 <- appl_26 `pseq` (appl_27 `pseq` klCons appl_26 appl_27)+                                                                                                              !appl_29 <- appl_28 `pseq` klCons (ApplC (wrapNamed "cons?" consP)) appl_28+                                                                                                              appl_29 `pseq` applyWrapper appl_1 [appl_29]+                                                                 pat_cond_30 = do do let !aw_31 = Core.Types.Atom (Core.Types.UnboundSym "shen.f_error")+                                                                                     applyWrapper aw_31 [ApplC (wrapNamed "shen.jump_stream" kl_shen_jump_stream)]+                                                              in case kl_V4263 of+                                                                     !(kl_V4263@(Cons (!kl_V4263h)+                                                                                      (!kl_V4263t))) -> pat_cond_0 kl_V4263 kl_V4263h kl_V4263t+                                                                     _ -> pat_cond_30++kl_shen_semantics :: Core.Types.KLValue ->+                     Core.Types.KLContext Core.Types.Env Core.Types.KLValue+kl_shen_semantics (!kl_V4267) = do let !appl_0 = Atom Nil+                                   !kl_if_1 <- appl_0 `pseq` (kl_V4267 `pseq` eq appl_0 kl_V4267)+                                   case kl_if_1 of+                                       Atom (B (True)) -> do return (Atom Nil)+                                       Atom (B (False)) -> do !kl_if_2 <- kl_V4267 `pseq` kl_shen_grammar_symbolP kl_V4267+                                                              case kl_if_2 of+                                                                  Atom (B (True)) -> do !appl_3 <- kl_V4267 `pseq` kl_concat (Core.Types.Atom (Core.Types.UnboundSym "Parse_")) kl_V4267+                                                                                        let !appl_4 = Atom Nil+                                                                                        !appl_5 <- appl_3 `pseq` (appl_4 `pseq` klCons appl_3 appl_4)+                                                                                        appl_5 `pseq` klCons (ApplC (wrapNamed "shen.hdtl" kl_shen_hdtl)) appl_5+                                                                  Atom (B (False)) -> do !kl_if_6 <- kl_V4267 `pseq` kl_variableP kl_V4267+                                                                                         case kl_if_6 of+                                                                                             Atom (B (True)) -> do kl_V4267 `pseq` kl_concat (Core.Types.Atom (Core.Types.UnboundSym "Parse_")) kl_V4267+                                                                                             Atom (B (False)) -> do let pat_cond_7 kl_V4267 kl_V4267h kl_V4267t = do let !appl_8 = ApplC (Func "lambda" (Context (\(!kl_Z) -> do kl_Z `pseq` kl_shen_semantics kl_Z)))+                                                                                                                                                                     appl_8 `pseq` (kl_V4267 `pseq` kl_map appl_8 kl_V4267)+                                                                                                                        pat_cond_9 = do do return kl_V4267+                                                                                                                     in case kl_V4267 of+                                                                                                                            !(kl_V4267@(Cons (!kl_V4267h)+                                                                                                                                             (!kl_V4267t))) -> pat_cond_7 kl_V4267 kl_V4267h kl_V4267t+                                                                                                                            _ -> pat_cond_9+                                                                                             _ -> throwError "if: expected boolean"+                                                                  _ -> throwError "if: expected boolean"+                                       _ -> throwError "if: expected boolean"++kl_shen_snd_or_fail :: Core.Types.KLValue ->+                       Core.Types.KLContext Core.Types.Env Core.Types.KLValue+kl_shen_snd_or_fail (!kl_V4275) = do !kl_if_0 <- let pat_cond_1 kl_V4275 kl_V4275h kl_V4275t = do !kl_if_2 <- let pat_cond_3 kl_V4275t kl_V4275th kl_V4275tt = do let !appl_4 = Atom Nil+                                                                                                                                                                  !kl_if_5 <- appl_4 `pseq` (kl_V4275tt `pseq` eq appl_4 kl_V4275tt)+                                                                                                                                                                  case kl_if_5 of+                                                                                                                                                                      Atom (B (True)) -> do return (Atom (B True))+                                                                                                                                                                      Atom (B (False)) -> do do return (Atom (B False))+                                                                                                                                                                      _ -> throwError "if: expected boolean"+                                                                                                                  pat_cond_6 = do do return (Atom (B False))+                                                                                                               in case kl_V4275t of+                                                                                                                      !(kl_V4275t@(Cons (!kl_V4275th)+                                                                                                                                        (!kl_V4275tt))) -> pat_cond_3 kl_V4275t kl_V4275th kl_V4275tt+                                                                                                                      _ -> pat_cond_6+                                                                                                  case kl_if_2 of+                                                                                                      Atom (B (True)) -> do return (Atom (B True))+                                                                                                      Atom (B (False)) -> do do return (Atom (B False))+                                                                                                      _ -> throwError "if: expected boolean"+                                                     pat_cond_7 = do do return (Atom (B False))+                                                  in case kl_V4275 of+                                                         !(kl_V4275@(Cons (!kl_V4275h)+                                                                          (!kl_V4275t))) -> pat_cond_1 kl_V4275 kl_V4275h kl_V4275t+                                                         _ -> pat_cond_7+                                     case kl_if_0 of+                                         Atom (B (True)) -> do !appl_8 <- kl_V4275 `pseq` tl kl_V4275+                                                               appl_8 `pseq` hd appl_8+                                         Atom (B (False)) -> do do kl_fail+                                         _ -> throwError "if: expected boolean"++kl_fail :: Core.Types.KLContext Core.Types.Env Core.Types.KLValue+kl_fail = do return (Core.Types.Atom (Core.Types.UnboundSym "shen.fail!"))++kl_shen_pair :: Core.Types.KLValue ->+                Core.Types.KLValue ->+                Core.Types.KLContext Core.Types.Env Core.Types.KLValue+kl_shen_pair (!kl_V4278) (!kl_V4279) = do let !appl_0 = Atom Nil+                                          !appl_1 <- kl_V4279 `pseq` (appl_0 `pseq` klCons kl_V4279 appl_0)+                                          kl_V4278 `pseq` (appl_1 `pseq` klCons kl_V4278 appl_1)++kl_shen_hdtl :: Core.Types.KLValue ->+                Core.Types.KLContext Core.Types.Env Core.Types.KLValue+kl_shen_hdtl (!kl_V4281) = do !appl_0 <- kl_V4281 `pseq` tl kl_V4281+                              appl_0 `pseq` hd appl_0++kl_LBExclRB :: Core.Types.KLValue ->+               Core.Types.KLContext Core.Types.Env Core.Types.KLValue+kl_LBExclRB (!kl_V4289) = do !kl_if_0 <- let pat_cond_1 kl_V4289 kl_V4289h kl_V4289t = do !kl_if_2 <- let pat_cond_3 kl_V4289t kl_V4289th kl_V4289tt = do let !appl_4 = Atom Nil+                                                                                                                                                          !kl_if_5 <- appl_4 `pseq` (kl_V4289tt `pseq` eq appl_4 kl_V4289tt)+                                                                                                                                                          case kl_if_5 of+                                                                                                                                                              Atom (B (True)) -> do return (Atom (B True))+                                                                                                                                                              Atom (B (False)) -> do do return (Atom (B False))+                                                                                                                                                              _ -> throwError "if: expected boolean"+                                                                                                          pat_cond_6 = do do return (Atom (B False))+                                                                                                       in case kl_V4289t of+                                                                                                              !(kl_V4289t@(Cons (!kl_V4289th)+                                                                                                                                (!kl_V4289tt))) -> pat_cond_3 kl_V4289t kl_V4289th kl_V4289tt+                                                                                                              _ -> pat_cond_6+                                                                                          case kl_if_2 of+                                                                                              Atom (B (True)) -> do return (Atom (B True))+                                                                                              Atom (B (False)) -> do do return (Atom (B False))+                                                                                              _ -> throwError "if: expected boolean"+                                             pat_cond_7 = do do return (Atom (B False))+                                          in case kl_V4289 of+                                                 !(kl_V4289@(Cons (!kl_V4289h)+                                                                  (!kl_V4289t))) -> pat_cond_1 kl_V4289 kl_V4289h kl_V4289t+                                                 _ -> pat_cond_7+                             case kl_if_0 of+                                 Atom (B (True)) -> do let !appl_8 = Atom Nil+                                                       !appl_9 <- kl_V4289 `pseq` hd kl_V4289+                                                       let !appl_10 = Atom Nil+                                                       !appl_11 <- appl_9 `pseq` (appl_10 `pseq` klCons appl_9 appl_10)+                                                       appl_8 `pseq` (appl_11 `pseq` klCons appl_8 appl_11)+                                 Atom (B (False)) -> do do kl_fail+                                 _ -> throwError "if: expected boolean"++kl_LBeRB :: Core.Types.KLValue ->+            Core.Types.KLContext Core.Types.Env Core.Types.KLValue+kl_LBeRB (!kl_V4295) = do !kl_if_0 <- let pat_cond_1 kl_V4295 kl_V4295h kl_V4295t = do !kl_if_2 <- let pat_cond_3 kl_V4295t kl_V4295th kl_V4295tt = do let !appl_4 = Atom Nil+                                                                                                                                                       !kl_if_5 <- appl_4 `pseq` (kl_V4295tt `pseq` eq appl_4 kl_V4295tt)+                                                                                                                                                       case kl_if_5 of+                                                                                                                                                           Atom (B (True)) -> do return (Atom (B True))+                                                                                                                                                           Atom (B (False)) -> do do return (Atom (B False))+                                                                                                                                                           _ -> throwError "if: expected boolean"+                                                                                                       pat_cond_6 = do do return (Atom (B False))+                                                                                                    in case kl_V4295t of+                                                                                                           !(kl_V4295t@(Cons (!kl_V4295th)+                                                                                                                             (!kl_V4295tt))) -> pat_cond_3 kl_V4295t kl_V4295th kl_V4295tt+                                                                                                           _ -> pat_cond_6+                                                                                       case kl_if_2 of+                                                                                           Atom (B (True)) -> do return (Atom (B True))+                                                                                           Atom (B (False)) -> do do return (Atom (B False))+                                                                                           _ -> throwError "if: expected boolean"+                                          pat_cond_7 = do do return (Atom (B False))+                                       in case kl_V4295 of+                                              !(kl_V4295@(Cons (!kl_V4295h)+                                                               (!kl_V4295t))) -> pat_cond_1 kl_V4295 kl_V4295h kl_V4295t+                                              _ -> pat_cond_7+                          case kl_if_0 of+                              Atom (B (True)) -> do !appl_8 <- kl_V4295 `pseq` hd kl_V4295+                                                    let !appl_9 = Atom Nil+                                                    let !appl_10 = Atom Nil+                                                    !appl_11 <- appl_9 `pseq` (appl_10 `pseq` klCons appl_9 appl_10)+                                                    appl_8 `pseq` (appl_11 `pseq` klCons appl_8 appl_11)+                              Atom (B (False)) -> do do let !aw_12 = Core.Types.Atom (Core.Types.UnboundSym "shen.f_error")+                                                        applyWrapper aw_12 [ApplC (wrapNamed "<e>" kl_LBeRB)]+                              _ -> throwError "if: expected boolean"++expr4 :: Core.Types.KLContext Core.Types.Env Core.Types.KLValue+expr4 = do (do return (Core.Types.Atom (Core.Types.Str "Copyright (c) 2015, Mark Tarver\n\nAll rights reserved.\n\nRedistribution and use in source and binary forms, with or without\nmodification, are permitted provided that the following conditions are met:\n1. Redistributions of source code must retain the above copyright\n   notice, this list of conditions and the following disclaimer.\n2. Redistributions in binary form must reproduce the above copyright\n   notice, this list of conditions and the following disclaimer in the\n   documentation and/or other materials provided with the distribution.\n3. The name of Mark Tarver may not be used to endorse or promote products\n   derived from this software without specific prior written permission.\n\nTHIS SOFTWARE IS PROVIDED BY Mark Tarver ''AS IS'' AND ANY\nEXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED\nWARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE\nDISCLAIMED. IN NO EVENT SHALL Mark Tarver BE LIABLE FOR ANY\nDIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES\n(INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;\nLOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND\nON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT\n(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS\nSOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE."))) `catchError` (\(!kl_E) -> do return (Core.Types.Atom (Core.Types.Str "E")))
Shentong/Bootstrap.hs view
@@ -4,10 +4,10 @@ module Bootstrap where  import Environment-import Primitives+import Core.Primitives import Backend.Utils-import Types-import Utils+import Core.Types+import Core.Utils import Wrap import Backend.FunctionTable import Backend.Toplevel
+ Shentong/Core/Primitives.hs view
@@ -0,0 +1,444 @@+{-# LANGUAGE FlexibleContexts #-}+{-# LANGUAGE OverloadedStrings #-}+{-# LANGUAGE Rank2Types #-}+{-# LANGUAGE ScopedTypeVariables #-}+{-# LANGUAGE TypeFamilies #-}+{-# LANGUAGE ViewPatterns #-}++module Core.Primitives where++import Control.Applicative+import Control.Exception+import Control.Monad.Except+import Control.Monad.ST+import Control.Monad.Trans+import qualified Data.ByteString.Lazy as BL+import Data.Char hiding (isSymbol)+import Data.List+import Data.Monoid+import qualified Data.Text as T+import qualified Data.Text.IO as T+import Data.Time.Clock.POSIX+import qualified Data.Vector as V+import qualified Data.Vector.Mutable as MV+import System.CPUTime+import System.IO+import Core.Types+import Core.Utils++{-+intern: maps a string containing a symbol to a symbol+intern : string --> symbol+-}+intern :: KLValue -> KLContext s KLValue+intern = internFn+    where internFn (Atom (Str s)) = return (Atom (UnboundSym s))+          internFn _ = throwError "intern: requires a string argument."++{-+pos: given a natural number 0...n and a string S returns the nth unit string in S+pos : string --> number --> string+-}+pos :: KLValue -> KLValue -> KLContext s KLValue+pos = posFn+    where posFn (Atom (Str s)) (Atom (N (KI n))) = st s (fromIntegral n)+          posFn _ _ = throwError "pos s n: s must be a string, n an integer"+          st s n+            | 0 <= n && n < T.length s =+              return $ Atom . Str . T.singleton $ T.index s n+            | otherwise =+                throwError $ "pos s n: must have n < length s, n: " +                <> (T.pack (show n)) <> ", s: " <> s++{-+tlstr: returns all but the first unit string of a string+tlstr : string --> string+-}+tlstr :: KLValue -> KLContext s KLValue +tlstr = tlstrFn+    where tlstrFn (Atom (Str s)) = return (Atom . Str $ T.tail s)+          tlstrFn _ = throwError "tlstr: first parameter must be a string."++{-+cn:concatenate two strings+cn : string --> string --> string+-}+cn :: KLValue -> KLValue -> KLContext s KLValue+cn = cnFn+    where cnFn (Atom (Str s1)) (Atom (Str s2)) = return (Atom . Str $ s1 <> s2)+          cnFn v1 v2 = throwError "cn: both parameters must be a string."++{-+str: maps any atom to a string+str : Atom --> string+-}+str :: KLValue -> KLContext s KLValue+str = strFn+    where strFn s@(Atom (Str _)) = return s+          strFn (Atom (UnboundSym s)) = return (Atom (Str s))+          strFn (Atom (B b)) = return (Atom (Str bs))+              where bs | b         = "true"+                       | otherwise = "false"+          strFn (Atom (N n)) = return (Atom (Str s))+              where s = case n of+                      KI i -> T.pack $ show i+                      KD d -> T.pack $ show d+          strFn (ApplC (Func name _)) = return $ (Atom (Str name))+          strFn (ApplC (PL name _)) = return $ (Atom (Str name))+          strFn v = throwError "str : first parameter must be an atom."++{-+string?: test for strings+string? : Lit --> boolean+-}+stringP :: KLValue -> KLContext s KLValue+stringP = stringPFn+    where stringPFn (Atom (Str _)) = return (Atom (B True))+          stringPFn _ = return (Atom (B False))++{-+n->string: maps a code point in decimal to the corresponding unit string+n->string : number --> string+-}+nToString :: KLValue -> KLContext s KLValue+nToString = nToStringFn+    where nToStringFn (Atom (N (KI (fromIntegral -> n))))+            | 0 <= n && n <= 127 = return (Atom (Str . T.singleton $ chr n))+            | otherwise = throwError "n->string: needs an ASCII code point"+          nToStringFn _ = throwError "n->string: needs an ASCII code point"++{-+string->n: maps a unit string to the corresponding decimal+string->n : string --> number+-}+stringToN :: KLValue -> KLContext s KLValue+stringToN = stringToNFn+    where stringToNFn (Atom (Str str)) =+            return (Atom (N (KI . toInteger $ ord (T.head str))))+          stringToNFn v = throwError "string->n: first parameter must be an ASCII code point."+                          +{-+set: assigns a value to a symbol	+-}+klSet :: KLValue -> KLValue -> KLContext Env KLValue+klSet = setFn+  where setFn (Atom (UnboundSym sym)) klv = do+          insertSymbol sym klv+          return klv+        setFn _ _ = throwError "set: first parameter must be a symbol"++{-+value: retrieves the value of a symbol+-}+value :: KLValue -> KLContext Env KLValue+value = valueFn+  where valueFn (Atom (UnboundSym sym)) = symbolRef sym+        valueFn _ = throwError "value: first parameter must be a symbol."++{-+simple-error: calls an throwError+simple-error : string --> throwError+-}+simpleError :: KLValue -> KLContext s KLValue+simpleError = simpleErrorFn+  where simpleErrorFn (Atom (Str str)) =+          throwError str+        simpleErrorFn v1 =+          throwError "simple-error: first parameter must be a string."++{-+error-to-string: maps an throwError to a string+error-to-string : throwError --> string+-}+errorToString :: KLValue -> KLContext s KLValue+errorToString = errorToStringFn+  where errorToStringFn (Excep e) = return (Atom (Str e))+        errorToStringFn _ =+            throwError "error-to-string: first parameter must be an throwError."++{-+cons: add an element to the front of a list+cons : A --> (list A) --> (list A)+-}+klCons :: KLValue -> KLValue -> KLContext s KLValue+klCons = consFn+  where consFn v1 v2 = return (Cons v1 v2)+          +{-+hd: take the head of a list+hd : (list A) --> A+-}        +hd :: KLValue -> KLContext s KLValue+hd = hdFn+  where hdFn (Cons v _) = return v+        hdFn v = throwError "hd: first parameter must be a list."++{-+tl: return the tail of a list+tl : (list A) --> (list A)+-}+tl :: KLValue -> KLContext s KLValue+tl = tlFn+  where tlFn (Cons _ v) = return v+        tlFn v = throwError "tl: first parameter must be a list."++{-+cons?: test for non-empty list+cons? : A --> boolean+-}+consP :: KLValue -> KLContext s KLValue+consP = consPFn+  where consPFn (Cons _ _) = return (Atom (B True))+        consPFn _ = return (Atom (B False))++eqCore :: KLValue -> KLValue -> Bool+eqCore (ApplC (Func n _)) (Atom (UnboundSym n')) = n == n'+eqCore (ApplC (Func n _)) (ApplC (Func n' _)) = n == n'+eqCore (ApplC (PL n _)) (ApplC (PL n' _)) = n == n'+eqCore (ApplC (PL n _)) (Atom (UnboundSym n'))   = n == n'+eqCore (Atom (UnboundSym n')) (ApplC (Func n _)) = n == n'+eqCore (Atom (UnboundSym n')) (ApplC (PL n _))   = n == n'+eqCore (Atom (UnboundSym "true")) (Atom (B True)) = True+eqCore (Atom (UnboundSym "false")) (Atom (B False)) = True+eqCore (Atom (B True)) (Atom (UnboundSym "true")) = True+eqCore (Atom (B False)) (Atom (UnboundSym "false")) = True+eqCore (Atom a1) (Atom a2) = a1 == a2+eqCore (Cons v1 v2) (Cons v3 v4) = eqCore v1 v3 && eqCore v2 v4+eqCore (Vec v1) (Vec v2) = V.length v1 == V.length v2 && +   V.foldl' (\acc (x,y) -> acc && eqCore x y) True (V.zip v1 v2)+eqCore _ _ = False++{-+=: equality+A --> A --> boolean+-}+eq :: KLValue -> KLValue -> KLContext s KLValue+eq v1 v2 = return $ Atom (B (eqCore v1 v2))++{-+type: labels the type of an expression+(type X A) : A+-}+typeA :: KLValue -> KLValue -> KLContext s KLValue+typeA v _ = return v++{-+absvector: a vector in the native platform, indexed from 0 to n inclusive+absvector : integer --> vector+-}+absvector :: KLValue -> KLContext s KLValue+absvector = absvectorFn+  where absvectorFn (Atom (N (KI (fromIntegral -> n))))+          | n >= 0 = return (Vec $ V.replicate n (Atom (N (KI 0)))) -- 0 was Atom Nil+          | otherwise = throwError "absvector n: must have n >= 0."+        absvectorFn v =+          throwError "absvector: first parameter must be a positive integer"++{-+address->: destructively assign a value to a vector address+address-> : E -> integer -> vector -> vector+-}+addressTo :: KLValue -> KLValue -> KLValue -> KLContext s KLValue+addressTo = addressToFn+  where addressToFn (Vec vec) (Atom (N (KI (fromIntegral -> n)))) val+          | n >= 0 && n < V.length vec = return (Vec v')+          | otherwise =+              throwError "address-> n e v : n must be within range of v."+          where v' = runST $ do+                  mv <- V.unsafeThaw vec+                  MV.unsafeWrite mv n val+                  V.unsafeFreeze mv+        addressToFn _ _ _ =+          throwError "address->: requires a vector, positive integer, and element"+        {-# INLINE addressToFn #-}+{-# INLINE addressTo #-}++{-+<-address: retrieve a value from a vector address+<-address: vector -> integer -> value+-}+addressFrom :: KLValue -> KLValue -> KLContext s KLValue+addressFrom = addressFromFn+  where addressFromFn (Vec v) (Atom (N (KI (fromIntegral -> n))))+          | n >= 0 && n < V.length v = return ((V.!) v n)+          | otherwise = throwError "address<- n v: n must be within range of v."+        addressFromFn v n =+            throwError "<-address: requires a positive integer and vector"+            +{-+absvector? : Atom --> boolean+-}+absvectorP :: KLValue -> KLContext s KLValue+absvectorP = absvectorPFn+  where absvectorPFn (Vec v) = return (Atom (B True))+        absvectorPFn _ = return (Atom (B False))++{-+write-byte: write an unsigned 8 bit byte to a stream+write-byte : number --> (stream out) --> number+-}+writeByte :: KLValue -> KLValue -> KLContext s KLValue+writeByte = writeByteFn+  where writeByteFn num@(Atom (N (KI n))) (OutStream h) +          | 0 <= n && n <= 255 = liftIO $ do+            BL.hPut h (BL.singleton (fromInteger n))+            hFlush h+            return num+          | otherwise = throwError "write-byte n: must have 0 <= n <= 255."+        writeByteFn v1 v2 =+          throwError "write-byte: takes an integer and a (stream out)."++{-+read-byte: read an unsigned 8 bit byte from a stream+read-byte : (stream in) --> number+-}+readByte :: KLValue -> KLContext s KLValue+readByte = readByteFn+  where readByteFn (InStream stream) = do+          byte <- liftIO $ BL.hGet stream 1+          if BL.null byte then+              return (Atom (N (KI (-1))))+          else+              return (Atom (N (KI (toInteger (BL.head byte)))))+        readByteFn _ = throwError "read-byte: takes a (stream in)."+           +{-+open: open a stream+open : path --> direction (D) --> stream D+-}+openStream :: KLValue -> KLValue -> KLContext Env KLValue+openStream = openStreamFn+  where openStreamFn (Atom (Str path)) (Atom (UnboundSym "in")) =+            symbolRef "*home-directory*" >>= dir path ReadMode . getPath+        openStreamFn (Atom (Str path)) (Atom (UnboundSym "out")) =+            symbolRef "*home-directory*" >>= dir path WriteMode . getPath+        openStreamFn _ _ = throwError "open: requires filepath, in/out"                           +                           +        getPath (Atom (Str p)) = p+        getPath _ = "."++        toggleMode ReadMode = InStream+        toggleMode WriteMode = OutStream++        tryToOpenFile path mode = try $ openBinaryFile (T.unpack path) mode++        dir path mode homeDir = do         +          h <- liftIO $ tryToOpenFile (homeDir <> path) mode+          case h of+            Left (err :: IOException) -> throwError (T.pack $ show err)+            Right h  -> return (toggleMode mode h)++{-+close: close a stream+close : (stream D) --> (list B)+-}+closeStream :: KLValue -> KLContext s KLValue+closeStream = closeStreamFn+  where closeStreamFn (OutStream h) = do+          liftIO $ hClose h+          return (Atom Nil)+        closeStreamFn (InStream h) = do+          liftIO $ hClose h+          return (Atom Nil)+        closeStreamFn _ = throwError "close: takes a (stream D) as input."++{-+get-time: get the run/real time+get-time : symbol --> number+-}+getTime :: KLValue -> KLContext s KLValue+getTime = getTimeFn+  where seconds t = fromInteger (round t)+        picoseconds t = fromInteger t * 1e-12++        getTimeFn (Atom (UnboundSym "unix")) = do+          t <- liftIO getPOSIXTime+          return (Atom (N (KI (seconds t))))+        getTimeFn (Atom (UnboundSym "run")) = do+          t <- liftIO getCPUTime+          return (Atom (N (KD (picoseconds t))))+        getTimeFn _ =+          throwError "get-time: expects symbol 'real' or 'unix' as input."++binopTemplate :: ErrorMsg -> (forall a. (Num a, Fractional a) => a -> a -> a) ->+                 KLValue -> KLValue -> KLContext s KLValue+binopTemplate _ fn (Atom (N n1)) (Atom (N n2)) = return $ Atom (N (n1 `fn` n2))+binopTemplate e _ _ _ = throwError e++{-++: addition++ : number --> number --> number+-}+add :: KLValue -> KLValue -> KLContext s KLValue+add = addFn+  where addFn = binopTemplate "+: expects two numbers as input" (+)+            +{-+-: subtraction+- : number --> number --> number+-}+subtract :: KLValue -> KLValue -> KLContext s KLValue+subtract = subtractFn+  where subtractFn = binopTemplate "-: expects two numbers as input" (-)++{-+*: subtraction+* : number --> number --> number+-}+multiply :: KLValue -> KLValue -> KLContext s KLValue+multiply = multiplyFn+  where multiplyFn = binopTemplate "*: expects two numbers as input" (*)++{-+/: division+/ : number --> number --> number+-}+divide :: KLValue -> KLValue -> KLContext s KLValue+divide = divideFn+  where divideFn = binopTemplate "/: expects two numbers as input" (/)++compareTemplate :: ErrorMsg -> (forall a. (Ord a) => a -> a -> Bool) ->+                   KLValue -> KLValue -> KLContext s KLValue+compareTemplate _ fn (Atom (N n1)) (Atom (N n2)) = return (Atom (B (n1 `fn` n2)))+compareTemplate errorMsg _ v1 v2 = throwError errorMsg++{-+>: greater than+> : number --> number --> boolean+-}+greaterThan :: KLValue -> KLValue -> KLContext s KLValue+greaterThan = greaterThanFn+  where greaterThanFn = compareTemplate ">: expects two numbers." (>)++{-+<: less than+< : number --> number --> boolean+-}+lessThan :: KLValue -> KLValue -> KLContext s KLValue+lessThan = lessThanFn+  where lessThanFn = compareTemplate "<: expects two numbers" (<)+        +{-+>=: greater than or equal to+>= : number --> number --> boolean+-}+greaterThanOrEqualTo :: KLValue -> KLValue -> KLContext s KLValue+greaterThanOrEqualTo = greaterThanOrEqualToFn+  where greaterThanOrEqualToFn = compareTemplate ">=: expects two numbers" (>=)++{-        +<=: less than or equal to+<= : number --> number --> boolean+-}+lessThanOrEqualTo :: KLValue -> KLValue -> KLContext s KLValue+lessThanOrEqualTo = lessThanOrEqualToFn+  where lessThanOrEqualToFn = compareTemplate "<=: expects two numbers" (<=)+        +{-+number?	number test+A --> boolean+-}+numberP :: KLValue -> KLContext s KLValue+numberP = numberPFn+  where numberPFn (Atom (N _)) = return (Atom (B True))+        numberPFn _ = return (Atom (B False))
+ Shentong/Core/Types.hs view
@@ -0,0 +1,176 @@+{-# LANGUAGE DeriveDataTypeable #-}+{-# LANGUAGE DeriveGeneric #-}+{-# LANGUAGE FlexibleInstances #-}+{-# LANGUAGE MultiParamTypeClasses #-}+{-# LANGUAGE OverloadedStrings #-}+{-# LANGUAGE Rank2Types #-}++module Core.Types where++import Control.Applicative+import Control.Monad.Except+import Control.Monad.State+import Data.Data+import Data.Generics.Uniplate.Data+import Data.HashMap as HM+import Data.IORef+import qualified Data.Text as T+import Data.Vector as V hiding ((++))+import System.IO++type Symbol = T.Text+type ErrorMsg = T.Text+type ParamList = [Symbol]++data SExpr = Lit !Atom+           | Sym {-# UNPACK #-} !Symbol+           | Freeze !SExpr+           | Let !Symbol !SExpr !SExpr+           | Lambda {-# UNPACK #-} !Symbol !SExpr+           | If !SExpr !SExpr !SExpr+           | And !SExpr !SExpr+           | Or !SExpr !SExpr+           | Cond ![(SExpr,SExpr)]+           | Appl ![SExpr]+           | TrapError !SExpr !SExpr+           | EmptyList+             deriving (Data, Show, Typeable)++type DeBruijn = Int+type Bindings = [(DeBruijn, KLValue)]++data RSExpr = RLit !Atom+            | RDeBruijn {-# UNPACK #-} !DeBruijn+            | RFreeze !RSExpr+            | RLambda {-# UNPACK #-} !DeBruijn !RSExpr+            | RIf !RSExpr !RSExpr !RSExpr+            | RApplDir !(IORef ApplContext) ![RSExpr]+            | RApplForm !RSExpr ![RSExpr]+            | RTrapError !RSExpr !RSExpr+            | REmptyList++data KLNumber = KI !Integer+              | KD {-# UNPACK #-} !Double+                deriving (Data, Show, Typeable)++instance Eq KLNumber where+    (KI n1) == (KI n2) = n1 == n2+    (KI n1) == (KD n2) = realToFrac n1 == n2+    (KD n1) == (KI n2) = n1 == realToFrac n2+    (KD n1) == (KD n2) = n1 == n2++instance Ord KLNumber where+    compare (KI n1) (KI n2) = compare n1 n2+    compare (KI n1) (KD n2) = compare (realToFrac n1) n2+    compare (KD n1) (KI n2) = compare n1 (realToFrac n2)+    compare (KD n1) (KD n2) = compare n1 n2++instance Num KLNumber where+    (KI n1) + (KI n2) = KI $ n1 + n2+    (KD n1) + (KD n2) = KD $ n1 + n2+    (KD n1) + (KI n2) = KD $ n1 + realToFrac n2+    (KI n1) + (KD n2) = KD $ realToFrac n1 + n2++    (KI n1) * (KI n2) = KI $ n1 * n2+    (KD n1) * (KD n2) = KD $ n1 * n2+    (KD n1) * (KI n2) = KD $ n1 * realToFrac n2+    (KI n1) * (KD n2) = KD $ realToFrac n1 * n2++    (KI n1) - (KI n2) = KI $ n1 - n2+    (KD n1) - (KD n2) = KD $ n1 - n2+    (KD n1) - (KI n2) = KD $ n1 - realToFrac n2+    (KI n1) - (KD n2) = KD $ realToFrac n1 - n2++    abs (KI n) = KI $ abs n+    abs (KD n) = KD $ abs n++    signum (KI n) = KI $ signum n+    signum (KD n) = KD $ signum n++    fromInteger = KI++instance Fractional KLNumber where+    (KI n1) / (KI n2) = KD $ realToFrac n1 / realToFrac n2+    (KD n1) / (KD n2) = KD $ n1 / n2+    (KD n1) / (KI n2) = KD $ n1 / realToFrac n2+    (KI n1) / (KD n2) = KD $ realToFrac n1 / n2++    fromRational r = KD $ fromRational r    +                                   +data Atom = UnboundSym {-# UNPACK #-} !Symbol+          | B !Bool+          | Nil+          | N !KLNumber+          | Str {-# UNPACK #-} !T.Text+            deriving (Data, Eq, Show, Typeable)+ +data TopLevel = Defun {-# UNPACK #-} !Symbol !ParamList !SExpr+              | SE !SExpr+                deriving Show++data KLValue = Atom !Atom+             | Cons !KLValue !KLValue+             | Excep {-# UNPACK #-} !ErrorMsg+             | ApplC !ApplContext+             | InStream !Handle+             | OutStream !Handle+             | Vec {-# UNPACK #-} !(Vector KLValue)+             deriving (Show)++data ApplContext = Func Symbol Function+                 | PL Symbol (KLContext Env KLValue)+                 | Malformed ErrorMsg++instance Show ApplContext where+    show (Func name _) = "<function " ++ T.unpack name ++ ">"+    show (PL name _) = "<function " ++ T.unpack name ++ ">"+    show (Malformed e) = "<function, malformed, message : " ++ T.unpack e ++ ">"++data Function = Context (KLValue -> KLContext Env KLValue)+              | PartialApp (KLValue -> Function)++data Env = Env {  symbolTable :: Map Symbol KLValue+                , functionTable :: Map Symbol (IORef ApplContext) }++newtype KLContext s a = KLContext {+      runKLC :: forall r. (a -> s -> IO r)+             -> (ErrorMsg -> s -> IO r)+             -> s+             -> IO r+    }++instance Monad (KLContext s) where+    (>>=)  = klcBind+    return = klcReturn++klcBind :: KLContext s a -> (a -> KLContext s b) -> KLContext s b+klcBind m f = KLContext go+  where go sk fk s = runKLC m (\a s' -> runKLC (f a) sk fk s') fk s+        +klcReturn :: a -> KLContext s a+klcReturn a = KLContext go+  where go sk _ s = sk a s+        +instance Applicative (KLContext s) where+    pure = return+    (<*>) = ap++instance Functor (KLContext s) where+    fmap f (KLContext m) = KLContext (\sk fk s -> m (sk . f) fk s)++instance MonadState s (KLContext s) where+    get = KLContext (\sk _ s -> sk s s)+    put s = KLContext (\sk _ _ -> sk () s)++liftIO' m = KLContext $ \sk fk s -> do+              x <- m+              sk x s+{-# INLINE liftIO' #-}++instance MonadIO (KLContext s) where+    liftIO = liftIO'++instance MonadError ErrorMsg (KLContext s) where+    throwError e = KLContext (\_ fk s -> fk e s)+    catchError m h = KLContext (\sk fk s -> runKLC m sk (h' sk fk) s)+        where h' sk fk e s = let KLContext m = h e in m sk fk s
+ Shentong/Core/Utils.hs view
@@ -0,0 +1,100 @@+{-# LANGUAGE BangPatterns #-}+{-# LANGUAGE FlexibleContexts #-}+{-# LANGUAGE OverloadedStrings #-}++module Core.Utils where++import Control.Applicative+import Control.Monad.Except+import Control.Monad.State+import Data.HashMap as HM+import Data.IORef+import Data.Maybe+import Data.Monoid+import qualified Data.Vector as V+import qualified Data.Text as T+import qualified Data.Text.IO as T+import Prelude as P+import Core.Types++exceptionV :: ErrorMsg -> KLValue -> KLContext s a+exceptionV e v = throwError e'+    where e' = e <> " " <> (T.pack $ show v)++stubFunction :: Symbol -> KLContext s ApplContext+stubFunction name = return (Malformed msg)+    where msg = "function " <> name <> " is not defined"++functionRef :: Symbol -> KLContext Env (IORef ApplContext)+functionRef name = do+  st <- get+  case HM.lookup name (functionTable st) of+    Just ref -> return ref+    Nothing  -> do+      stubFunction name >>= insertFunction name+      functionRef name++symbolRef :: Symbol -> KLContext Env KLValue+symbolRef name = do+  st <- get+  case HM.lookup name (symbolTable st) of+    Just v  -> return v+    Nothing -> throwError "name not found in symbol table."++insertFunction :: Symbol -> ApplContext -> KLContext Env ()+insertFunction name f = do+  st <- get+  case HM.lookup name (functionTable st) of+    Just ref -> liftIO $ writeIORef ref $! f+    Nothing  -> do+      ref <- liftIO $ newIORef $! f+      put $ st { functionTable = HM.insert name ref (functionTable st) }++insertSymbol :: Symbol -> KLValue -> KLContext Env ()+insertSymbol name v = do+  st <- get+  put $ st { symbolTable = HM.insert name v (symbolTable st) }++addVal :: Int -> Bindings -> KLValue -> Bindings+addVal i vals v = replace vals+  where replace (p@(i',_) : is') +          | i == i'   = (i,v) : is'+          | otherwise = p : replace is'+        replace [] = [(i,v)]++lookupVal :: DeBruijn -> Bindings -> KLContext Env KLValue+lookupVal i vals = maybe err return (P.lookup i vals)+    where err = throwError "value not found in bindings list"++fromIORef :: MonadIO m => IORef a -> m a+fromIORef = liftIO . readIORef++{-# SPECIALISE fromIORef :: IORef ApplContext -> KLContext Env ApplContext #-}++applyStep :: Function -> KLValue -> ApplContext+applyStep (PartialApp f) v = Func "curried" (f v)+applyStep (Context f) v = PL "thunk" (f v)++mapM' :: Monad m => (a -> m b) -> [a] -> m [b]+mapM' _ []     = return []+mapM' f (x:xs) = do+  y  <- f x+  ys <- y `seq` mapM' f xs+  return (y:ys)++{-# SPECIALISE mapM' :: (RSExpr -> KLContext Env KLValue) -> [RSExpr] -> KLContext Env [KLValue] #-}++checkForBooleans :: Atom -> KLValue+checkForBooleans (UnboundSym "true")  = Atom (B True)+checkForBooleans (UnboundSym "false") = Atom (B False)  +checkForBooleans a = Atom a++apply :: ApplContext -> [KLValue] -> KLContext Env KLValue+apply (Malformed e) _ = throwError e+apply (PL _ c) [] = c+apply f      [] = return (ApplC f)+apply (Func _ f) (v:vs) = apply (applyStep f v) vs+apply f _ +  | Func name _ <- f = throwError $ name <> ": too many arguments"+  | PL name _ <- f   = throwError $ name <> ": too many arguments"+
Shentong/Environment.hs view
@@ -10,10 +10,10 @@ import Data.Traversable hiding (mapM) import qualified Data.Vector as V import Interpreter.Interpreter-import Primitives+import Core.Primitives import System.IO-import Types-import Utils+import Core.Types+import Core.Utils import Wrap  valueToTopLevel :: KLValue -> KLContext Env TopLevel@@ -105,7 +105,7 @@               ("close", wrap closeStream),               ("get-time", wrap getTime),               ("+", wrap add),-              ("-", wrap Primitives.subtract),+              ("-", wrap Core.Primitives.subtract),               ("*", wrap multiply),               ("/", wrap divide),               (">", wrap greaterThan),
Shentong/Interpreter/AST.hs view
@@ -8,8 +8,8 @@ import Control.Monad.State import Data.Generics.Uniplate.Operations import Data.Traversable-import Types-import Utils+import Core.Types+import Core.Utils  reduceSExpr :: ParamList -> SExpr -> KLContext Env RSExpr reduceSExpr args body = markBoundVars args (bakeFreeVars args body)
Shentong/Interpreter/Interpreter.hs view
@@ -6,8 +6,8 @@ import Interpreter.AST import Control.Monad.Except import Data.IORef-import Types-import Utils+import Core.Types+import Core.Utils  evalTopLevel :: TopLevel -> KLContext Env KLValue evalTopLevel (SE se) = reduceSExpr [] se >>= eval []
− Shentong/Primitives.hs
@@ -1,444 +0,0 @@-{-# LANGUAGE FlexibleContexts #-}-{-# LANGUAGE OverloadedStrings #-}-{-# LANGUAGE Rank2Types #-}-{-# LANGUAGE ScopedTypeVariables #-}-{-# LANGUAGE TypeFamilies #-}-{-# LANGUAGE ViewPatterns #-}--module Primitives where--import Control.Applicative-import Control.Exception-import Control.Monad.Except-import Control.Monad.ST-import Control.Monad.Trans-import qualified Data.ByteString.Lazy as BL-import Data.Char hiding (isSymbol)-import Data.List-import Data.Monoid-import qualified Data.Text as T-import qualified Data.Text.IO as T-import Data.Time.Clock.POSIX-import qualified Data.Vector as V-import qualified Data.Vector.Mutable as MV-import System.CPUTime-import System.IO-import Types-import Utils--{--intern: maps a string containing a symbol to a symbol-intern : string --> symbol--}-intern :: KLValue -> KLContext s KLValue-intern = internFn-    where internFn (Atom (Str s)) = return (Atom (UnboundSym s))-          internFn _ = throwError "intern: requires a string argument."--{--pos: given a natural number 0...n and a string S returns the nth unit string in S-pos : string --> number --> string--}-pos :: KLValue -> KLValue -> KLContext s KLValue-pos = posFn-    where posFn (Atom (Str s)) (Atom (N (KI n))) = st s (fromIntegral n)-          posFn _ _ = throwError "pos s n: s must be a string, n an integer"-          st s n-            | 0 <= n && n < T.length s =-              return $ Atom . Str . T.singleton $ T.index s n-            | otherwise =-                throwError $ "pos s n: must have n < length s, n: " -                <> (T.pack (show n)) <> ", s: " <> s--{--tlstr: returns all but the first unit string of a string-tlstr : string --> string--}-tlstr :: KLValue -> KLContext s KLValue -tlstr = tlstrFn-    where tlstrFn (Atom (Str s)) = return (Atom . Str $ T.tail s)-          tlstrFn _ = throwError "tlstr: first parameter must be a string."--{--cn:concatenate two strings-cn : string --> string --> string--}-cn :: KLValue -> KLValue -> KLContext s KLValue-cn = cnFn-    where cnFn (Atom (Str s1)) (Atom (Str s2)) = return (Atom . Str $ s1 <> s2)-          cnFn v1 v2 = throwError "cn: both parameters must be a string."--{--str: maps any atom to a string-str : Atom --> string--}-str :: KLValue -> KLContext s KLValue-str = strFn-    where strFn s@(Atom (Str _)) = return s-          strFn (Atom (UnboundSym s)) = return (Atom (Str s))-          strFn (Atom (B b)) = return (Atom (Str bs))-              where bs | b         = "true"-                       | otherwise = "false"-          strFn (Atom (N n)) = return (Atom (Str s))-              where s = case n of-                      KI i -> T.pack $ show i-                      KD d -> T.pack $ show d-          strFn (ApplC (Func name _)) = return $ (Atom (Str name))-          strFn (ApplC (PL name _)) = return $ (Atom (Str name))-          strFn v = throwError "str : first parameter must be an atom."--{--string?: test for strings-string? : Lit --> boolean--}-stringP :: KLValue -> KLContext s KLValue-stringP = stringPFn-    where stringPFn (Atom (Str _)) = return (Atom (B True))-          stringPFn _ = return (Atom (B False))--{--n->string: maps a code point in decimal to the corresponding unit string-n->string : number --> string--}-nToString :: KLValue -> KLContext s KLValue-nToString = nToStringFn-    where nToStringFn (Atom (N (KI (fromIntegral -> n))))-            | 0 <= n && n <= 127 = return (Atom (Str . T.singleton $ chr n))-            | otherwise = throwError "n->string: needs an ASCII code point"-          nToStringFn _ = throwError "n->string: needs an ASCII code point"--{--string->n: maps a unit string to the corresponding decimal-string->n : string --> number--}-stringToN :: KLValue -> KLContext s KLValue-stringToN = stringToNFn-    where stringToNFn (Atom (Str str)) =-            return (Atom (N (KI . toInteger $ ord (T.head str))))-          stringToNFn v = throwError "string->n: first parameter must be an ASCII code point."-                          -{--set: assigns a value to a symbol	--}-klSet :: KLValue -> KLValue -> KLContext Env KLValue-klSet = setFn-  where setFn (Atom (UnboundSym sym)) klv = do-          insertSymbol sym klv-          return klv-        setFn _ _ = throwError "set: first parameter must be a symbol"--{--value: retrieves the value of a symbol--}-value :: KLValue -> KLContext Env KLValue-value = valueFn-  where valueFn (Atom (UnboundSym sym)) = symbolRef sym-        valueFn _ = throwError "value: first parameter must be a symbol."--{--simple-error: calls an throwError-simple-error : string --> throwError--}-simpleError :: KLValue -> KLContext s KLValue-simpleError = simpleErrorFn-  where simpleErrorFn (Atom (Str str)) =-          throwError str-        simpleErrorFn v1 =-          throwError "simple-error: first parameter must be a string."--{--error-to-string: maps an throwError to a string-error-to-string : throwError --> string--}-errorToString :: KLValue -> KLContext s KLValue-errorToString = errorToStringFn-  where errorToStringFn (Excep e) = return (Atom (Str e))-        errorToStringFn _ =-            throwError "error-to-string: first parameter must be an throwError."--{--cons: add an element to the front of a list-cons : A --> (list A) --> (list A)--}-klCons :: KLValue -> KLValue -> KLContext s KLValue-klCons = consFn-  where consFn v1 v2 = return (Cons v1 v2)-          -{--hd: take the head of a list-hd : (list A) --> A--}        -hd :: KLValue -> KLContext s KLValue-hd = hdFn-  where hdFn (Cons v _) = return v-        hdFn v = throwError "hd: first parameter must be a list."--{--tl: return the tail of a list-tl : (list A) --> (list A)--}-tl :: KLValue -> KLContext s KLValue-tl = tlFn-  where tlFn (Cons _ v) = return v-        tlFn v = throwError "tl: first parameter must be a list."--{--cons?: test for non-empty list-cons? : A --> boolean--}-consP :: KLValue -> KLContext s KLValue-consP = consPFn-  where consPFn (Cons _ _) = return (Atom (B True))-        consPFn _ = return (Atom (B False))--eqCore :: KLValue -> KLValue -> Bool-eqCore (ApplC (Func n _)) (Atom (UnboundSym n')) = n == n'-eqCore (ApplC (Func n _)) (ApplC (Func n' _)) = n == n'-eqCore (ApplC (PL n _)) (ApplC (PL n' _)) = n == n'-eqCore (ApplC (PL n _)) (Atom (UnboundSym n'))   = n == n'-eqCore (Atom (UnboundSym n')) (ApplC (Func n _)) = n == n'-eqCore (Atom (UnboundSym n')) (ApplC (PL n _))   = n == n'-eqCore (Atom (UnboundSym "true")) (Atom (B True)) = True-eqCore (Atom (UnboundSym "false")) (Atom (B False)) = True-eqCore (Atom (B True)) (Atom (UnboundSym "true")) = True-eqCore (Atom (B False)) (Atom (UnboundSym "false")) = True-eqCore (Atom a1) (Atom a2) = a1 == a2-eqCore (Cons v1 v2) (Cons v3 v4) = eqCore v1 v3 && eqCore v2 v4-eqCore (Vec v1) (Vec v2) = V.length v1 == V.length v2 && -   V.foldl' (\acc (x,y) -> acc && eqCore x y) True (V.zip v1 v2)-eqCore _ _ = False--{--=: equality-A --> A --> boolean--}-eq :: KLValue -> KLValue -> KLContext s KLValue-eq v1 v2 = return $ Atom (B (eqCore v1 v2))--{--type: labels the type of an expression-(type X A) : A--}-typeA :: KLValue -> KLValue -> KLContext s KLValue-typeA v _ = return v--{--absvector: a vector in the native platform, indexed from 0 to n inclusive-absvector : integer --> vector--}-absvector :: KLValue -> KLContext s KLValue-absvector = absvectorFn-  where absvectorFn (Atom (N (KI (fromIntegral -> n))))-          | n >= 0 = return (Vec $ V.replicate n (Atom (N (KI 0)))) -- 0 was Atom Nil-          | otherwise = throwError "absvector n: must have n >= 0."-        absvectorFn v =-          throwError "absvector: first parameter must be a positive integer"--{--address->: destructively assign a value to a vector address-address-> : E -> integer -> vector -> vector--}-addressTo :: KLValue -> KLValue -> KLValue -> KLContext s KLValue-addressTo = addressToFn-  where addressToFn (Vec vec) (Atom (N (KI (fromIntegral -> n)))) val-          | n >= 0 && n < V.length vec = return (Vec v')-          | otherwise =-              throwError "address-> n e v : n must be within range of v."-          where v' = runST $ do-                  mv <- V.unsafeThaw vec-                  MV.unsafeWrite mv n val-                  V.unsafeFreeze mv-        addressToFn _ _ _ =-          throwError "address->: requires a vector, positive integer, and element"-        {-# INLINE addressToFn #-}-{-# INLINE addressTo #-}--{--<-address: retrieve a value from a vector address-<-address: vector -> integer -> value--}-addressFrom :: KLValue -> KLValue -> KLContext s KLValue-addressFrom = addressFromFn-  where addressFromFn (Vec v) (Atom (N (KI (fromIntegral -> n))))-          | n >= 0 && n < V.length v = return ((V.!) v n)-          | otherwise = throwError "address<- n v: n must be within range of v."-        addressFromFn v n =-            throwError "<-address: requires a positive integer and vector"-            -{--absvector? : Atom --> boolean--}-absvectorP :: KLValue -> KLContext s KLValue-absvectorP = absvectorPFn-  where absvectorPFn (Vec v) = return (Atom (B True))-        absvectorPFn _ = return (Atom (B False))--{--write-byte: write an unsigned 8 bit byte to a stream-write-byte : number --> (stream out) --> number--}-writeByte :: KLValue -> KLValue -> KLContext s KLValue-writeByte = writeByteFn-  where writeByteFn num@(Atom (N (KI n))) (OutStream h) -          | 0 <= n && n <= 255 = liftIO $ do-            BL.hPut h (BL.singleton (fromInteger n))-            hFlush h-            return num-          | otherwise = throwError "write-byte n: must have 0 <= n <= 255."-        writeByteFn v1 v2 =-          throwError "write-byte: takes an integer and a (stream out)."--{--read-byte: read an unsigned 8 bit byte from a stream-read-byte : (stream in) --> number--}-readByte :: KLValue -> KLContext s KLValue-readByte = readByteFn-  where readByteFn (InStream stream) = do-          byte <- liftIO $ BL.hGet stream 1-          if BL.null byte then-              return (Atom (N (KI (-1))))-          else-              return (Atom (N (KI (toInteger (BL.head byte)))))-        readByteFn _ = throwError "read-byte: takes a (stream in)."-           -{--open: open a stream-open : path --> direction (D) --> stream D--}-openStream :: KLValue -> KLValue -> KLContext Env KLValue-openStream = openStreamFn-  where openStreamFn (Atom (Str path)) (Atom (UnboundSym "in")) =-            symbolRef "*home-directory*" >>= dir path ReadMode . getPath-        openStreamFn (Atom (Str path)) (Atom (UnboundSym "out")) =-            symbolRef "*home-directory*" >>= dir path WriteMode . getPath-        openStreamFn _ _ = throwError "open: requires filepath, in/out"                           -                           -        getPath (Atom (Str p)) = p-        getPath _ = "."--        toggleMode ReadMode = InStream-        toggleMode WriteMode = OutStream--        tryToOpenFile path mode = try $ openBinaryFile (T.unpack path) mode--        dir path mode homeDir = do         -          h <- liftIO $ tryToOpenFile (homeDir <> path) mode-          case h of-            Left (err :: IOException) -> throwError (T.pack $ show err)-            Right h  -> return (toggleMode mode h)--{--close: close a stream-close : (stream D) --> (list B)--}-closeStream :: KLValue -> KLContext s KLValue-closeStream = closeStreamFn-  where closeStreamFn (OutStream h) = do-          liftIO $ hClose h-          return (Atom Nil)-        closeStreamFn (InStream h) = do-          liftIO $ hClose h-          return (Atom Nil)-        closeStreamFn _ = throwError "close: takes a (stream D) as input."--{--get-time: get the run/real time-get-time : symbol --> number--}-getTime :: KLValue -> KLContext s KLValue-getTime = getTimeFn-  where seconds t = fromInteger (round t)-        picoseconds t = fromInteger t * 1e-12--        getTimeFn (Atom (UnboundSym "unix")) = do-          t <- liftIO getPOSIXTime-          return (Atom (N (KI (seconds t))))-        getTimeFn (Atom (UnboundSym "run")) = do-          t <- liftIO getCPUTime-          return (Atom (N (KD (picoseconds t))))-        getTimeFn _ =-          throwError "get-time: expects symbol 'real' or 'unix' as input."--binopTemplate :: ErrorMsg -> (forall a. (Num a, Fractional a) => a -> a -> a) ->-                 KLValue -> KLValue -> KLContext s KLValue-binopTemplate _ fn (Atom (N n1)) (Atom (N n2)) = return $ Atom (N (n1 `fn` n2))-binopTemplate e _ _ _ = throwError e--{--+: addition-+ : number --> number --> number--}-add :: KLValue -> KLValue -> KLContext s KLValue-add = addFn-  where addFn = binopTemplate "+: expects two numbers as input" (+)-            -{---: subtraction-- : number --> number --> number--}-subtract :: KLValue -> KLValue -> KLContext s KLValue-subtract = subtractFn-  where subtractFn = binopTemplate "-: expects two numbers as input" (-)--{--*: subtraction-* : number --> number --> number--}-multiply :: KLValue -> KLValue -> KLContext s KLValue-multiply = multiplyFn-  where multiplyFn = binopTemplate "*: expects two numbers as input" (*)--{--/: division-/ : number --> number --> number--}-divide :: KLValue -> KLValue -> KLContext s KLValue-divide = divideFn-  where divideFn = binopTemplate "/: expects two numbers as input" (/)--compareTemplate :: ErrorMsg -> (forall a. (Ord a) => a -> a -> Bool) ->-                   KLValue -> KLValue -> KLContext s KLValue-compareTemplate _ fn (Atom (N n1)) (Atom (N n2)) = return (Atom (B (n1 `fn` n2)))-compareTemplate errorMsg _ v1 v2 = throwError errorMsg--{-->: greater than-> : number --> number --> boolean--}-greaterThan :: KLValue -> KLValue -> KLContext s KLValue-greaterThan = greaterThanFn-  where greaterThanFn = compareTemplate ">: expects two numbers." (>)--{--<: less than-< : number --> number --> boolean--}-lessThan :: KLValue -> KLValue -> KLContext s KLValue-lessThan = lessThanFn-  where lessThanFn = compareTemplate "<: expects two numbers" (<)-        -{-->=: greater than or equal to->= : number --> number --> boolean--}-greaterThanOrEqualTo :: KLValue -> KLValue -> KLContext s KLValue-greaterThanOrEqualTo = greaterThanOrEqualToFn-  where greaterThanOrEqualToFn = compareTemplate ">=: expects two numbers" (>=)--{-        -<=: less than or equal to-<= : number --> number --> boolean--}-lessThanOrEqualTo :: KLValue -> KLValue -> KLContext s KLValue-lessThanOrEqualTo = lessThanOrEqualToFn-  where lessThanOrEqualToFn = compareTemplate "<=: expects two numbers" (<=)-        -{--number?	number test-A --> boolean--}-numberP :: KLValue -> KLContext s KLValue-numberP = numberPFn-  where numberPFn (Atom (N _)) = return (Atom (B True))-        numberPFn _ = return (Atom (B False))
Shentong/Shen.hs view
@@ -1,6 +1,6 @@ import Bootstrap import Environment-import Types+import Core.Types  main :: IO () main = do
− Shentong/Types.hs
@@ -1,176 +0,0 @@-{-# LANGUAGE DeriveDataTypeable #-}-{-# LANGUAGE DeriveGeneric #-}-{-# LANGUAGE FlexibleInstances #-}-{-# LANGUAGE MultiParamTypeClasses #-}-{-# LANGUAGE OverloadedStrings #-}-{-# LANGUAGE Rank2Types #-}--module Types where--import Control.Applicative-import Control.Monad.Except-import Control.Monad.State-import Data.Data-import Data.Generics.Uniplate.Data-import Data.HashMap as HM-import Data.IORef-import qualified Data.Text as T-import Data.Vector as V hiding ((++))-import System.IO--type Symbol = T.Text-type ErrorMsg = T.Text-type ParamList = [Symbol]--data SExpr = Lit !Atom-           | Sym {-# UNPACK #-} !Symbol-           | Freeze !SExpr-           | Let !Symbol !SExpr !SExpr-           | Lambda {-# UNPACK #-} !Symbol !SExpr-           | If !SExpr !SExpr !SExpr-           | And !SExpr !SExpr-           | Or !SExpr !SExpr-           | Cond ![(SExpr,SExpr)]-           | Appl ![SExpr]-           | TrapError !SExpr !SExpr-           | EmptyList-             deriving (Data, Show, Typeable)--type DeBruijn = Int-type Bindings = [(DeBruijn, KLValue)]--data RSExpr = RLit !Atom-            | RDeBruijn {-# UNPACK #-} !DeBruijn-            | RFreeze !RSExpr-            | RLambda {-# UNPACK #-} !DeBruijn !RSExpr-            | RIf !RSExpr !RSExpr !RSExpr-            | RApplDir !(IORef ApplContext) ![RSExpr]-            | RApplForm !RSExpr ![RSExpr]-            | RTrapError !RSExpr !RSExpr-            | REmptyList--data KLNumber = KI !Integer-              | KD {-# UNPACK #-} !Double-                deriving (Data, Show, Typeable)--instance Eq KLNumber where-    (KI n1) == (KI n2) = n1 == n2-    (KI n1) == (KD n2) = realToFrac n1 == n2-    (KD n1) == (KI n2) = n1 == realToFrac n2-    (KD n1) == (KD n2) = n1 == n2--instance Ord KLNumber where-    compare (KI n1) (KI n2) = compare n1 n2-    compare (KI n1) (KD n2) = compare (realToFrac n1) n2-    compare (KD n1) (KI n2) = compare n1 (realToFrac n2)-    compare (KD n1) (KD n2) = compare n1 n2--instance Num KLNumber where-    (KI n1) + (KI n2) = KI $ n1 + n2-    (KD n1) + (KD n2) = KD $ n1 + n2-    (KD n1) + (KI n2) = KD $ n1 + realToFrac n2-    (KI n1) + (KD n2) = KD $ realToFrac n1 + n2--    (KI n1) * (KI n2) = KI $ n1 * n2-    (KD n1) * (KD n2) = KD $ n1 * n2-    (KD n1) * (KI n2) = KD $ n1 * realToFrac n2-    (KI n1) * (KD n2) = KD $ realToFrac n1 * n2--    (KI n1) - (KI n2) = KI $ n1 - n2-    (KD n1) - (KD n2) = KD $ n1 - n2-    (KD n1) - (KI n2) = KD $ n1 - realToFrac n2-    (KI n1) - (KD n2) = KD $ realToFrac n1 - n2--    abs (KI n) = KI $ abs n-    abs (KD n) = KD $ abs n--    signum (KI n) = KI $ signum n-    signum (KD n) = KD $ signum n--    fromInteger = KI--instance Fractional KLNumber where-    (KI n1) / (KI n2) = KD $ realToFrac n1 / realToFrac n2-    (KD n1) / (KD n2) = KD $ n1 / n2-    (KD n1) / (KI n2) = KD $ n1 / realToFrac n2-    (KI n1) / (KD n2) = KD $ realToFrac n1 / n2--    fromRational r = KD $ fromRational r    -                                   -data Atom = UnboundSym {-# UNPACK #-} !Symbol-          | B !Bool-          | Nil-          | N !KLNumber-          | Str {-# UNPACK #-} !T.Text-            deriving (Data, Eq, Show, Typeable)- -data TopLevel = Defun {-# UNPACK #-} !Symbol !ParamList !SExpr-              | SE !SExpr-                deriving Show--data KLValue = Atom !Atom-             | Cons !KLValue !KLValue-             | Excep {-# UNPACK #-} !ErrorMsg-             | ApplC !ApplContext-             | InStream !Handle-             | OutStream !Handle-             | Vec {-# UNPACK #-} !(Vector KLValue)-             deriving (Show)--data ApplContext = Func Symbol Function-                 | PL Symbol (KLContext Env KLValue)-                 | Malformed ErrorMsg--instance Show ApplContext where-    show (Func name _) = "<function " ++ T.unpack name ++ ">"-    show (PL name _) = "<function " ++ T.unpack name ++ ">"-    show (Malformed e) = "<function, malformed, message : " ++ T.unpack e ++ ">"--data Function = Context (KLValue -> KLContext Env KLValue)-              | PartialApp (KLValue -> Function)--data Env = Env {  symbolTable :: Map Symbol KLValue-                , functionTable :: Map Symbol (IORef ApplContext) }--newtype KLContext s a = KLContext {-      runKLC :: forall r. (a -> s -> IO r)-             -> (ErrorMsg -> s -> IO r)-             -> s-             -> IO r-    }--instance Monad (KLContext s) where-    (>>=)  = klcBind-    return = klcReturn--klcBind :: KLContext s a -> (a -> KLContext s b) -> KLContext s b-klcBind m f = KLContext go-  where go sk fk s = runKLC m (\a s' -> runKLC (f a) sk fk s') fk s-        -klcReturn :: a -> KLContext s a-klcReturn a = KLContext go-  where go sk _ s = sk a s-        -instance Applicative (KLContext s) where-    pure = return-    (<*>) = ap--instance Functor (KLContext s) where-    fmap f (KLContext m) = KLContext (\sk fk s -> m (sk . f) fk s)--instance MonadState s (KLContext s) where-    get = KLContext (\sk _ s -> sk s s)-    put s = KLContext (\sk _ _ -> sk () s)--liftIO' m = KLContext $ \sk fk s -> do-              x <- m-              sk x s-{-# INLINE liftIO' #-}--instance MonadIO (KLContext s) where-    liftIO = liftIO'--instance MonadError ErrorMsg (KLContext s) where-    throwError e = KLContext (\_ fk s -> fk e s)-    catchError m h = KLContext (\sk fk s -> runKLC m sk (h' sk fk) s)-        where h' sk fk e s = let KLContext m = h e in m sk fk s
− Shentong/Utils.hs
@@ -1,100 +0,0 @@-{-# LANGUAGE BangPatterns #-}-{-# LANGUAGE FlexibleContexts #-}-{-# LANGUAGE OverloadedStrings #-}--module Utils where--import Control.Applicative-import Control.Monad.Except-import Control.Monad.State-import Data.HashMap as HM-import Data.IORef-import Data.Maybe-import Data.Monoid-import qualified Data.Vector as V-import qualified Data.Text as T-import qualified Data.Text.IO as T-import Prelude as P-import Types--exceptionV :: ErrorMsg -> KLValue -> KLContext s a-exceptionV e v = throwError e'-    where e' = e <> " " <> (T.pack $ show v)--stubFunction :: Symbol -> KLContext s ApplContext-stubFunction name = return (Malformed msg)-    where msg = "function " <> name <> " is not defined"--functionRef :: Symbol -> KLContext Env (IORef ApplContext)-functionRef name = do-  st <- get-  case HM.lookup name (functionTable st) of-    Just ref -> return ref-    Nothing  -> do-      stubFunction name >>= insertFunction name-      functionRef name--symbolRef :: Symbol -> KLContext Env KLValue-symbolRef name = do-  st <- get-  case HM.lookup name (symbolTable st) of-    Just v  -> return v-    Nothing -> throwError "name not found in symbol table."--insertFunction :: Symbol -> ApplContext -> KLContext Env ()-insertFunction name f = do-  st <- get-  case HM.lookup name (functionTable st) of-    Just ref -> liftIO $ writeIORef ref $! f-    Nothing  -> do-      ref <- liftIO $ newIORef $! f-      put $ st { functionTable = HM.insert name ref (functionTable st) }--insertSymbol :: Symbol -> KLValue -> KLContext Env ()-insertSymbol name v = do-  st <- get-  put $ st { symbolTable = HM.insert name v (symbolTable st) }--addVal :: Int -> Bindings -> KLValue -> Bindings-addVal i vals v = replace vals-  where replace (p@(i',_) : is') -          | i == i'   = (i,v) : is'-          | otherwise = p : replace is'-        replace [] = [(i,v)]--lookupVal :: DeBruijn -> Bindings -> KLContext Env KLValue-lookupVal i vals = maybe err return (P.lookup i vals)-    where err = throwError "value not found in bindings list"--fromIORef :: MonadIO m => IORef a -> m a-fromIORef = liftIO . readIORef--{-# SPECIALISE fromIORef :: IORef ApplContext -> KLContext Env ApplContext #-}--applyStep :: Function -> KLValue -> ApplContext-applyStep (PartialApp f) v = Func "curried" (f v)-applyStep (Context f) v = PL "thunk" (f v)--mapM' :: Monad m => (a -> m b) -> [a] -> m [b]-mapM' _ []     = return []-mapM' f (x:xs) = do-  y  <- f x-  ys <- y `seq` mapM' f xs-  return (y:ys)--{-# SPECIALISE mapM' :: (RSExpr -> KLContext Env KLValue) -> [RSExpr] -> KLContext Env [KLValue] #-}--checkForBooleans :: Atom -> KLValue-checkForBooleans (UnboundSym "true")  = Atom (B True)-checkForBooleans (UnboundSym "false") = Atom (B False)  -checkForBooleans a = Atom a--apply :: ApplContext -> [KLValue] -> KLContext Env KLValue-apply (Malformed e) _ = throwError e-apply (PL _ c) [] = c-apply f      [] = return (ApplC f)-apply (Func _ f) (v:vs) = apply (applyStep f v) vs-apply f _ -  | Func name _ <- f = throwError $ name <> ": too many arguments"-  | PL name _ <- f   = throwError $ name <> ": too many arguments"-
Shentong/Wrap.hs view
@@ -4,7 +4,7 @@  module Wrap where -import Types+import Core.Types  class Wrappable a where   wrap :: a -> Function
shentong.cabal view
@@ -1,5 +1,5 @@ name:             shentong-version:          0.3.1+version:          0.3.2 author:           Mark Thom license:          BSD3 license-file:     LICENSE@@ -34,8 +34,13 @@       -fno-warn-name-shadowing       -fno-full-laziness   hs-source-dirs:  Shentong-  other-modules:   Bootstrap, Environment, Primitives, Types, Utils, Wrap, Interpreter.Interpreter,-                   Interpreter.AST, Backend.Core, Backend.Declarations, Backend.FunctionTable,-                   Backend.Load, Backend.LoadShen, Backend.Macros, Backend.PortInfo, Backend.Prolog,-                   Backend.Reader, Backend.Sequent, Backend.Sys, Backend.TStar, Backend.Toplevel,-                   Backend.Track, Backend.Types, Backend.Utils, Backend.Writer, Backend.Yacc+  other-modules:   Bootstrap, Environment, Core.Primitives,+                   Core.Types, Core.Utils, Wrap,+                   Interpreter.Interpreter, Interpreter.AST,+                   Backend.Core, Backend.Declarations,+                   Backend.FunctionTable, Backend.Load,+                   Backend.LoadShen, Backend.Macros, Backend.PortInfo,+                   Backend.Prolog, Backend.Reader, Backend.Sequent,+                   Backend.Sys, Backend.TStar, Backend.Toplevel,+                   Backend.Track, Backend.Types, Backend.Utils,+                   Backend.Writer, Backend.Yacc